

• AWS Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# AWS Systems Manager Change Calendar
<a name="systems-manager-change-calendar"></a>

Change Calendar（AWS Systems Manager 中的一项工具）让您能够设置可以或不可以在 AWS 账户中执行指定操作（例如在 [Systems Manager Automation](systems-manager-automation.md) 运行手册中）的日期和时间范围。在 Change Calendar 中，这些范围称为*事件*。在您创建 Change Calendar 条目时，您将创建类型 `ChangeCalendar` 的 [Systems Manager 文档](documents.md) 在 Change Calendar 中，文档以纯文本格式存储 [iCalendar 2.0](https://icalendar.org/) 数据。您添加到 Change Calendar 条目的事件将成为该文档的一部分。要开始使用 Change Calendar，请打开 [Systems Manager 控制台](https://console.aws.amazon.com//systems-manager/change-calendar)。在导航窗格中，请选择 **Change Calendar**。

您可以在 Systems Manager 控制台中创建日历及其事件。您还可以导入从受支持的第三方日历提供程序导出的 iCalendar (`.ics`) 文件，以将其事件添加到您的日历。受支持的提供程序包括 Google 日历、Microsoft Outlook 和 iCloud 日历。

Change Calendar 条目可以是以下两种类型之一：

**`DEFAULT_OPEN`**，即 Open by default (预设情况下打开)  
默认情况下，除日历事件期间外，所有操作都可以运行。在事件期间，`DEFAULT_OPEN` 日历的状态为 `CLOSED`，且事件被阻止运行。

**`DEFAULT_CLOSED`**，即 Closed by default (预设情况下关闭)  
默认情况下，除日历事件期间外，所有操作都被阻止运行。在事件期间，`DEFAULT_CLOSED` 日历的状态为 `OPEN`，且操作被允许运行。

您可以选择将所有计划的自动化工作流程、维护时段和 State Manager 关联自动添加到日历中。您也可以从日历显示中删除其中任何一种单独类型。

## 谁应该使用 Change Calendar？
<a name="systems-manager-change-calendar-who"></a>

**Change Manager 可用性变更**  
自 2025 年 11 月 7 日起，AWS Systems Manager Change Manager 将不再向新客户开放。如果想要使用 Change Manager，请在该日期之前注册。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [AWS Systems Manager Change Manager 可用性变更](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html)。
+ 执行以下操作类型的 AWS 客户：
  + 创建或运行自动化运行手册。
  + 在 Change Manager 中创建更改请求。
  + 运行维护时段。
  + 在 State Manager 中创建关联。

  Automation、Change Manager、Maintenance Windows、和State Manager都是 AWS Systems Manager 中的工具。通过将这些工具与 Change Calendar 集成在一起，您可以根据与每个操作类型关联的更改日历的当前状态，来允许或阻止这些操作类型。
+ 负责维护 Systems Manager 托管式节点配置的一致性、稳定性和功能性的管理员。

## 的优势Change Calendar
<a name="systems-manager-change-calendar-benefits"></a>

以下是 Change Calendar 的一些优势。
+ **在应用更改之前进行审核**

  Change Calendar 条目可以帮助确保在应用对环境可能会造成破坏的更改之前对其进行审核。
+ **仅在合适时间应用更改**

  Change Calendar 条目有助于在事件期间保持环境稳定。例如，在您预期会有大量资源需求（例如在会议或公共营销促销期间）时，可以创建一个 Change Calendar 条目来阻止更改。当您预计管理员只能提供有限的支持（例如在度假或假期）时，日历条目也可以阻止更改。在管理员提供的支持有限，无法对失败的操作或部署进行故障排除时，您可以使用日历条目允许在一天或一周中的特定时间以外进行更改。
+ **获取日历当前或之后的状态**

  您可以运行 Systems Manager `GetCalendarState` API 操作，显示日历的当前状态、在指定时间的状态或下次计划日历状态更改的时间。
**注意**  
`GetCalendarState` API 的配额为每秒 10 个请求。有关 Systems Manager 配额的更多信息，请参阅*《Amazon Web Services 一般参考》*中的 [Systems Manager 服务配额](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm)。
+ 

**EventBridge 支持**  
支持此 Systems Manager 工具作为 Amazon EventBridge 规则中的一个*事件*类型。有关更多信息，请参阅 [使用 Amazon EventBridge 监控 Systems Manager 事件](monitoring-eventbridge-events.md) 和 [引用：Amazon EventBridge 事件模式和 Systems Manager 类型](reference-eventbridge-events.md)。

**Topics**
+ [谁应该使用 Change Calendar？](#systems-manager-change-calendar-who)
+ [的优势Change Calendar](#systems-manager-change-calendar-benefits)
+ [设置 Change Calendar](systems-manager-change-calendar-prereqs.md)
+ [使用 Change Calendar](systems-manager-change-calendar-working.md)
+ [向自动化运行手册添加 Change Calendar 依赖关系](systems-manager-change-calendar-automations.md)
+ [排除 Change Calendar 问题](change-calendar-troubleshooting.md)

# 设置 Change Calendar
<a name="systems-manager-change-calendar-prereqs"></a>

使用 Change Calendar（AWS Systems Manager 中的一项工具）前请完成以下操作。

## 安装最新的命令行工具
<a name="change-calendar-prereqs-tools"></a>

安装最新的命令行工具，以获取有关日历状态的信息。


| 要求 | 说明 | 
| --- | --- | 
|  AWS CLI  |  （可选）要使用 AWS Command Line Interface (AWS CLI) 获取有关日历状态的信息，请在本地计算机上安装 AWS CLI 的最新版本。 有关如何安装或升级 CLI 的更多信息，请参阅 *AWS Command Line Interface 用户指南*中的[安装、更新和卸载 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)。  | 
|  AWS Tools for PowerShell  |  （可选）要使用 Tools for PowerShell 获取有关日历状态的信息，请在本地计算机上安装 Tools for PowerShell 的最新版本。 有关如何安装或升级 Tools for PowerShell 的更多信息，请参阅 *AWS Tools for PowerShell 用户指南*中的[安装 AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html)。  | 

## 设置权限
<a name="change-calendar-prereqs-permissions"></a>

如果已为您的用户、组或角色分配了管理员权限，则您对 Change Calendar 有完全访问权。如果您没有管理员权限，则管理员必须通过向您的用户、组或角色分配 `AmazonSSMFullAccess` 托管策略或分配提供必要权限的策略，来向您授予权限。

使用 Change Calendar 需要以下权限。

**Change Calendar 条目**  
要创建、更新或删除 Change Calendar 条目（包括在条目中添加和删除事件），附加到用户、组或角色的策略必须允许执行以下操作：  
+ `ssm:CreateDocument`
+ `ssm:DeleteDocument`
+ `ssm:DescribeDocument`
+ `ssm:DescribeDocumentPermission`
+ `ssm:GetCalendar`
+ `ssm:ListDocuments`
+ `ssm:ModifyDocumentPermission`
+ `ssm:PutCalendar`
+ `ssm:UpdateDocument`
+ `ssm:UpdateDocumentDefaultVersion`

**日历状态**  
要获取有关日历当前或之后状态的信息，附加到用户、组或角色的策略必须允许执行以下操作：  
+ `ssm:GetCalendarState`

**操作事件**  
要查看操作事件，例如维护时段、关联和计划的自动化，附加到用户、组或角色的策略必须允许执行以下操作：  
+ `ssm:DescribeMaintenanceWindows`
+ `ssm:DescribeMaintenanceWindowExecution`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:ListAssociations`

**注意**  
由您的账户以外的账户拥有（即该账户创建）的 Change Calendar 条目为只读，即使它们与您的账户共享也是如此。维护时段、State Manager 关联和自动化不会共享。

# 使用 Change Calendar
<a name="systems-manager-change-calendar-working"></a>

您可以使用 AWS Systems Manager 控制台添加、管理或删除 Change Calendar（AWS Systems Manager 中的一项工具）条目。您还可以从受支持的第三方日历提供程序导入事件，方法是导入从源日历导出的 iCalendar (`.ics`) 文件。而且，您也可以使用 `GetCalendarState` API 操作或 `get-calendar-state` AWS Command Line Interface (AWS CLI) 命令在特定时间获取有关 Change Calendar 状态的信息。

**Topics**
+ [创建更改日历](change-calendar-create.md)
+ [在 Change Calendar 中创建和管理事件](change-calendar-events.md)
+ [导入和管理来自第三方日历的事件](third-party-events.md)
+ [更新更改日历](change-calendar-update.md)
+ [共享更改日历](change-calendar-share.md)
+ [删除更改日历](change-calendar-delete.md)
+ [获取更改日历的状态](change-calendar-getstate.md)

# 创建更改日历
<a name="change-calendar-create"></a>

在 Change Calendar（AWS Systems Manager 中的一项工具）中创建条目时，您要用到使用 `text` 格式的 Systems Manager 文档（SSM 文档）。

**创建更改日历**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **Change Calendar**。

1. 选择 **Create calendar（创建日历）**。

   –或者–

   如果 **Change Calendar** 主页首先打开，则选择 **Create change calendar**（创建更改日历）。

1. 在 **Create calendar (创建日历)** 页面上的 **Calendar details (日历详细信息)** 中，输入日历条目的名称。日历条目名称可以包含字母、数字、句点、短划线和下划线。名称应该足够具体，以便一目了然地确定日历条目的用途。例如，**support-off-hours**。创建日历条目后，您将无法更新此名称。

1. （可选）对于 **Description**（描述），输入日历条目的描述。

1. （可选）在 **Import calendar (导入日历)** 区域中，选择 **Choose file (选择文件)**，以选择您从第三方日历提供程序导出的 iCalendar (`.ics`) 文件。导入该文件会将其事件添加到您的日历中。

   受支持的提供程序包括 Google 日历、Microsoft Outlook 和 iCloud 日历。

   有关更多信息，请参阅 [从第三方日历提供程序导入事件](change-calendar-import.md)。

1. 在 **Calendar type (日历类型)** 中，选择以下选项之一。
   + **Open by default (预设情况下打开)** - 日历处于打开状态（自动化操作可以运行，直到事件开始），然后在关联事件的持续时间内关闭。
   + **Closed by default (预设情况下关闭)** - 日历处于关闭状态（自动化操作无法运行，直到事件开始），但在关联事件的持续时间内打开。

1. （可选）在**变更管理事件**中，选择**向日历添加变更管理事件**。此选项会在您的月度日历显示中显示所有的计划维护时段、State Manager 关联、自动化工作流程和 Change Manager 变更请求。
**提示**  
如果稍后要从日历显示中永久移除这些事件类型，请编辑日历，清除此复选框，然后选择**保存**。

1. 选择 **Create calendar（创建日历）**。

   创建日历条目后，Systems Manager 将在 **Change Calendar** 列表中显示您的日历条目。列显示日历版本和日历拥有者的 AWS 账户 编号。在创建或导入至少一个事件之前，您的日历条目无法阻止或允许任何操作。有关创建事件的信息，请参阅 [创建Change Calendar 事件](change-calendar-create-event.md)。有关导入事件的信息，请参阅 [从第三方日历提供程序导入事件](change-calendar-import.md)。

# 在 Change Calendar 中创建和管理事件
<a name="change-calendar-events"></a>

在 AWS Systems Manager Change Calendar 中创建日历后，可以创建、更新和删除打开或关闭的日历中包含的事件。Change Calendar 是 AWS Systems Manager 中的一项工具。

**提示**  
作为直接在 Systems Manager 控制台中创建事件的替代方法，您可以从受支持的第三方日历应用程序导入 iCalendar (`.ics`) 文件。有关信息，请参阅[导入和管理来自第三方日历的事件](third-party-events.md)。

**Topics**
+ [创建Change Calendar 事件](change-calendar-create-event.md)
+ [更新 Change Calendar 事件](change-calendar-update-event.md)
+ [删除 Change Calendar 事件](change-calendar-delete-event.md)

# 创建Change Calendar 事件
<a name="change-calendar-create-event"></a>

在向 Change Calendar（AWS Systems Manager 中的一项工具）中的条目添加事件时，您要指定暂停日历条目默认操作的时间段。例如，如果日历条目类型为预设情况下关闭，则日历在事件期间可以更改。（或者，您可以创建一个咨询活动，该活动仅在日历上发挥信息作用。）

目前，您只能使用控制台创建 Change Calendar 事件。事件将添加到您在创建 Change Calendar 条目时创建的 Change Calendar 文档中。

**创建 Change Calendar 事件**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **Change Calendar**。

1. 在日历的列表中，请选择要向其添加事件的日历条目的名称。

1. 在日历条目的详细信息页面上，选择 **Create event (创建事件)**。

1. 在 **Create scheduled event (创建计划事件)** 页面的 **Event details (事件详细信息)** 中，输入事件的显示名称。事件名称可以包含字母、数字、句点、短划线和下划线。名称应该足够具体，以便确定事件的用途。例如，**nighttime-hours**。

1. 对于 **Description**（描述），输入事件的描述。例如，**The support team isn't available during these hours**。

1. （可选）如果您希望此事件仅作为视觉通知或提醒，请选择 **Advisory**（咨询）复选框。咨询事件在您的日历上不起任何功能作用。它们仅为查看日历的用户提供信息。

1. 对于 **Event start date**（事件开始日期），以 `MM/DD/YYYY` 格式输入或选择开始事件的日期，并以 `hh:mm:ss` 格式（小时、分钟和秒）输入在指定日期开始事件的时间。

1. 对于 **Event end date**（事件结束日期），以 `MM/DD/YYYY` 格式输入或选择结束事件的日期，并以 `hh:mm:ss` 格式（小时、分钟和秒）输入在指定日期结束事件的时间。

1. 在 **Schedule time zone**（计划时区）中，选择应用于事件开始和结束时间的时区。您可以输入城市名称或不同于格林威治标准时间 (GMT) 的时区的一部分，以便更快地查找时区。默认值为协调世界时 (UTC)。

1. （可选）要创建每天、每周或每月重复的事件，请启用 **Recurrence**（重复），然后指定重复的频率和可选的结束日期。

1. 选择 **Create scheduled event (创建计划事件)**。新事件将添加到您的日历条目中，并显示在日历条目详细信息页面的 **Events (事件)** 选项卡上。

# 更新 Change Calendar 事件
<a name="change-calendar-update-event"></a>

按照以下过程在 AWS Systems Manager 控制台中更新 Change Calendar 事件。Change Calendar 是 AWS Systems Manager 中的一项工具。

**更新 Change Calendar 事件**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **Change Calendar**。

1. 在日历的列表中，请选择要编辑其事件的日历条目的名称。

1. 在日历条目的详细信息页面上，选择 **Events (事件)**。

1. 在日历页面中，选择要编辑的事件。
**提示**  
使用左上角的按钮可向后或向前移动一年，或者向后或向前移动一个月。如果需要，请通过从右上角的列表中选择正确的时区来更改时区。

1. 在 **Event details**（事件详细信息）中，请选择 **Edit**（编辑）。

   要更改事件名称和描述，请添加或替换当前文本值。

1. 要更改 **Event start date**（事件开始日期）值，请选择当前的开始日期，然后从日历中选择一个新日期。要更改开始时间，请选择当前开始时间，然后从列表中选择一个新时间。

1. 要更改 **Event end date**（事件结束日期）值，请选择当前日期，然后从日历中选择一个新的结束日期。要更改结束时间，请选择当前结束时间，然后从列表中选择一个新时间。

1. 要更改 **Schedule time zone**（计划时区）值，请选择应用于事件开始和结束时间的时区。您可以输入城市名称或不同于格林威治标准时间 (GMT) 的时区的一部分，以便更快地查找时区。默认值为协调世界时 (UTC)。

1. （可选）如果您希望此事件仅作为视觉通知或提醒，请选择 **Advisory**（咨询）复选框。咨询事件在您的日历上不起任何功能作用。它们仅为查看日历的用户提供信息。

1. 选择**保存**。您的更改将显示在日历条目详细信息页面的 **Events (事件)** 选项卡上。选择您更新的事件以查看更改。

# 删除 Change Calendar 事件
<a name="change-calendar-delete-event"></a>

您可以使用 AWS 管理控制台，在 Change Calendar（AWS Systems Manager 中的一项工具）中逐个删除事件。

**提示**  
如果您在创建日历时选择了**向日历添加变更管理事件**，则可以执行以下操作：  
要在日历显示中*暂时*隐藏变更管理事件类型，请为每月预览顶部的类型选择 **X**。
要从日历显示中*永久*移除这些类型，请编辑日历，清除**向日历添加变更管理事件**复选框，然后选择**保存**。从日历显示中移除类型并不会将其从您的账户中删除。

**删除 Change Calendar 事件**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **Change Calendar**。

1. 在日历的列表中，请选择要删除其事件的日历条目的名称。

1. 在日历条目的详细信息页面上，选择 **Events (事件)**。

1. 在日历页面中，选择要删除的事件。
**提示**  
使用左上角的按钮可将日历向后或向前移动一年，或者向后或向前移动一个月。如果需要，请通过从右上角的列表中选择正确的时区来更改时区。

1. 在 **Event details (事件详细信息)** 页面上，选择 **Delete (删除)**。当系统提示您确认是否要删除该事件时，请选择 **Confirm**（确认）。

# 导入和管理来自第三方日历的事件
<a name="third-party-events"></a>

作为直接在 AWS Systems Manager 控制台中，创建事件的替代方法，您可以从受支持的第三方日历应用程序导入 iCalendar (`.ics`) 文件。日历可以同时包含导入的事件和您在 Change Calendar（AWS Systems Manager 中的一项工具）中创建的事件。

**开始前的准备工作**  
在尝试导入日历文件之前，请查看以下要求和约束：

日历文件格式  
只支持有效的 iCalendar 文件 (`.ics`)。

受支持的日历提供程序  
仅支持从以下第三方日历提供程序导出的 `.ics` 文件：  
+ Google 日历（[导出说明](https://support.google.com/calendar/answer/37111)）
+ Microsoft Outlook（[导出说明](https://support.microsoft.com/en-us/office/export-an-outlook-calendar-to-google-calendar-662fa3bb-0794-4b18-add8-9968b665f4e6)）
+ iCloud 日历（[导出指令](https://support.apple.com/guide/calendar/import-or-export-calendars-icl1023/mac)）

文件大小  
您可以导入任意数量的有效 `.ics` 文件。但是，每个日历的所有导入文件的总大小不能超过 64KB。  
要最小化 `.ics` 文件的大小，请确保只导出有关日历条目的基本详细信息。如有必要，请减少用于导出的时间段的长度。

时区  
除了日历名称、日历提供程序和至少一个事件之外，导出的 `.ics` 文件还应指明日历的时区。如果没有，或者在确定时区时出现问题，系统将在您导入文件后提示您指定一个时区。

重复性事件限制  
您导出的 `.ics` 文件可以包含重复性事件。但是，如果曾在源日历中删除过某一重复性事件的一次或多次发生，则导入将失败。

**Topics**
+ [从第三方日历提供程序导入事件](change-calendar-import.md)
+ [更新来自第三方日历提供程序的所有事件](change-calendar-import-add-remove.md)
+ [删除从第三方日历导入的所有事件](change-calendar-delete-ics.md)

# 从第三方日历提供程序导入事件
<a name="change-calendar-import"></a>

可以使用以下过程从受支持的第三方日历应用程序导入 iCalendar (`.ics`) 文件。该文件中包含的事件将合并到您打开或关闭的日历的规则中。您可以将文件导入自己使用 Change Calendar（AWS Systems Manager 中的一项工具）创建的新日历或现有日历。

导入 `.ics` 文件后，可以使用 Change Calendar 界面从该文件中删除单个事件。有关信息，请参阅[删除 Change Calendar 事件](change-calendar-delete-event.md)。您还可以通过删除 `.ics` 文件，来删除源日历中的所有事件。有关信息，请参阅[删除从第三方日历导入的所有事件](change-calendar-delete-ics.md)。

**从第三方日历提供程序导入事件**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，请选择 **Change Calendar**。

1. 要从新日历开始，请选择 **Create calendar (创建日历)**。在 **Import calendar (导入日历)** 区域中，选择 **Choose file (选择文件)**。有关创建新日历的其他步骤的信息，请参阅 [创建更改日历](change-calendar-create.md)。

   –或者–

   要将第三方事件导入到现有日历中，请选择现有日历的名称，以将其打开。

1. 请选择 **Actions, Edit**（操作、编辑），然后在 **Import calendar**（导入日历）区域中，请选择 **Choose file**（选择文件）。

1. 在您的本地计算机上，导航到已导出的 `.ics` 文件，并选择该文件。

1. 如果出现提示，对于 **Select a time zone (选择时区)**，请选择哪一个时区适用于该日历。

1. 选择**保存**。

# 更新来自第三方日历提供程序的所有事件
<a name="change-calendar-import-add-remove"></a>

如果在导入源日历的 iCalendar `.ics` 文件后，向源日历中添加了多个事件，或从其中删除了多个事件，则可以将这些更改反映在 Change Calendar 中。首先，重新导出源日历，再将新文件导入 Change Calendar（AWS Systems Manager 中的一项工具）。更改日历中的事件将被更新，以反映较新文件的内容。

**更新来自第三方日历提供程序的所有事件**

1. 在您的第三方日历中，只要您希望将某些事件反映在 Change Calendar 中，即可添加或删除这些事件，然后将该日历重新导出到新 `.ics` 文件。

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，请选择 **Change Calendar**。

1. 从日历列表中，选择日历名称。

1. 选择**选择文件**，然后导航到替换 `.ics` 文件，并选择该文件。

1. 为了响应有关覆盖现有文件的通知，请选择 **Confirm (确认)**。

# 删除从第三方日历导入的所有事件
<a name="change-calendar-delete-ics"></a>

如果您不再希望将从第三方提供程序导入的任何事件包含在日历中，则可删除已导入的 iCalendar `.ics` 文件。

**删除从第三方日历导入的所有事件**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，请选择 **Change Calendar**。

1. 从日历列表中，选择日历名称。

1. 在 **Import calendar (导入日历)** 区域中的 **My imported calendars (我导入的日历)** 下，找到导入日历的名称，然后选择其卡片中的 **X**。

1. 选择**保存**。

# 更新更改日历
<a name="change-calendar-update"></a>

您可以更新更改日历的描述，但不能更新其名称。尽管您可以更改日历的默认状态，但请注意，这会反转更改操作在与该日历关联的事件期间的行为。例如，如果您将日历的状态从 **Open by default (预设情况下打开)** 更改为 **Closed by default (预设情况下关闭)**，则当创建了关联事件的用户不希望进行更改时，可能会在事件期间发生不希望的更改。

在更新更改日历时，您要编辑在创建该条目时创建的 Change Calendar 文档。Change Calendar 是 AWS Systems Manager 中的一项工具。

**更新更改日历**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **Change Calendar**。

1. 在日历的列表中，请选择要更新的日历的名称。

1. 在日历的详细信息页面上，请选择 **Actions, Edit**（操作、编辑）。

1. 在 **Description (描述)** 中，您可以更改描述文本。您不能编辑更改日历的名称。

1. 要更改日历状态，请在 **Calendar type (日历类型)** 中选择其他值。请注意，这会反转更改操作在与该日历关联的事件期间的行为。在更改日历类型之前，您应与其他 Change Calendar 用户验证并确保更改日历类型不会在其已创建的事件期间导致不希望的更改。
   + **Open by default (预设情况下打开)** - 日历处于打开状态（自动化操作可以运行，直到事件开始），然后在关联事件的持续时间内关闭。
   + **Closed by default (预设情况下关闭)** - 日历处于关闭状态（自动化操作无法运行，直到事件启动），但在关联事件的持续时间内打开。

1. 选择**保存**。

   在至少添加一个事件之前，您的日历无法阻止或允许任何操作。有关如何添加事件的信息，请参阅 [创建Change Calendar 事件](change-calendar-create-event.md)。

# 共享更改日历
<a name="change-calendar-share"></a>

您可以使用 AWS Systems Manager 控制台，在 Change Calendar（AWS Systems Manager 中的一项工具）中与其他 AWS 账户共享日历。共享日历时，日历对于共享账户中的用户为只读。维护时段、State Manager 关联和自动化不会共享。

**共享更改日历**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **Change Calendar**。

1. 在日历的列表中，请选择要共享的日历的名称。

1. 在日历的详细信息页面上，请选择 **Sharing**（共享）选项卡。

1. 依次选择 **Actions, Share**（操作、共享）。

1. 在 **Share calendar (共享日历)** 中，对于 **Account ID (账户 ID)**，输入有效 AWS 账户 的 ID 号，然后选择 **Share (共享)**。

   共享账户的用户可以读取更改日历，但他们不能进行更改。

# 删除更改日历
<a name="change-calendar-delete"></a>

您可以使用 Systems Manager 控制台或 AWS Command Line Interface（AWS CLI），在 Change Calendar（AWS Systems Manager 中的一项工具）中删除日历。删除更改日历会删除所有关联的事件。

**删除更改日历**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **Change Calendar**。

1. 在日历的列表中，请选择要删除的日历的名称。

1. 在日历的详细信息页面上，请选择 **Actions, Delete**（操作、删除）。当系统提示您确认是否要删除日历时，选择 **Delete (删除)**。

# 获取更改日历的状态
<a name="change-calendar-getstate"></a>

您可以在 Change Calendar（AWS Systems Manager 中的一项工具）中获取日历的整体状态或者日历在特定时间的状态。您还可以显示日历状态下次从 `OPEN` 更改为 `CLOSED`（或反之）的时间。

**注意**  
有关将 Change Calendar 与 Amazon EventBridge 集成以自动监控日历状态变化的信息，请参阅[Change Calendar 与 Amazon EventBridge 集成](monitoring-systems-manager-event-examples.md#change-calendar-eventbridge-integration)。EventBridge 集成在日历状态转换时提供事件驱动的通知，补充基于轮询的 `GetCalendarState` API 操作方法。

您只能使用 `GetCalendarState` API 操作完成此任务。本节中的过程使用 AWS Command Line Interface (AWS CLI)。

**获取更改日历的状态**
+ 运行以下命令，以显示一个或多个日历在特定时间的状态。`--calendar-names` 参数是必需项，但 `--at-time` 是可选项。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ Linux & macOS ]

  ```
  aws ssm get-calendar-state \
      --calendar-names "Calendar_name_or_document_ARN_1" "Calendar_name_or_document_ARN_2" \
      --at-time "ISO_8601_time_format"
  ```

  示例如下：

  ```
  aws ssm get-calendar-state \
      --calendar-names "arn:aws:ssm:us-east-2:123456789012:document/MyChangeCalendarDocument" "arn:aws:ssm:us-east-2:123456789012:document/SupportOffHours" \
      --at-time "2020-07-30T11:05:14-0700"
  ```

------
#### [ Windows ]

  ```
  aws ssm get-calendar-state ^
      --calendar-names "Calendar_name_or_document_ARN_1" "Calendar_name_or_document_ARN_2" ^
      --at-time "ISO_8601_time_format"
  ```

  示例如下：

  ```
  aws ssm get-calendar-state ^
      --calendar-names "arn:aws:ssm:us-east-2:123456789012:document/MyChangeCalendarDocument" "arn:aws:ssm:us-east-2:123456789012:document/SupportOffHours" ^
      --at-time "2020-07-30T11:05:14-0700"
  ```

------

  此命令会返回如下信息。

  ```
  {
      "State": "OPEN",
      "AtTime": "2020-07-30T16:18:18Z",
      "NextTransitionTime": "2020-07-31T00:00:00Z"
  }
  ```

  结果显示指定日历条目（由您的账户拥有或与您的账户共享）在 `--at-time` 的值所指定时间的日历状态（无论日历的类型为 `DEFAULT_OPEN` 还是 `DEFAULT_CLOSED`），以及下一次转换的时间。如果您不添加 `--at-time` 参数，则使用当前时间。
**注意**  
如果在一个请求中指定了多个日历，则仅当该请求中的所有日历都处于打开状态时，该命令才会返回 `OPEN` 的状态。如果该请求中的一个或多个日历处于关闭状态，则返回的状态为 `CLOSED`。

# 向自动化运行手册添加 Change Calendar 依赖关系
<a name="systems-manager-change-calendar-automations"></a>

要让 Automation 操作遵循 Change Calendar（AWS Systems Manager 中的一项工具），请在使用 [`aws:assertAwsResourceProperty`](automation-action-assertAwsResourceProperty.md) 操作的 Automation 运行手册中添加一个步骤。将该操作配置为运行 `GetCalendarState` 以验证指定的日历条目是否处于所需状态（`OPEN` 或 `CLOSED`）。只有在日历状态为 `OPEN` 时才允许自动化运行手册继续执行下一步。以下是基于 YAML 的示例，摘录了只有当日历状态与在 `DesiredValues` 中指定的状态 `OPEN` 匹配时，才能继续到下一步 `LaunchInstance` 的自动化运行手册。

示例如下：

```
mainSteps:
  - name: MyCheckCalendarStateStep
    action: 'aws:assertAwsResourceProperty'
    inputs:
      Service: ssm
      Api: GetCalendarState
      CalendarNames: ["arn:aws:ssm:us-east-2:123456789012:document/SaleDays"]
      PropertySelector: '$.State'
      DesiredValues:
      - OPEN
    description: "Use GetCalendarState to determine whether a calendar is open or closed."
    nextStep: LaunchInstance
  - name: LaunchInstance
    action: 'aws:executeScript'
    inputs:
      Runtime: python3.11 
...
```

# 排除 Change Calendar 问题
<a name="change-calendar-troubleshooting"></a>

利用以下信息，帮助排查Change Calendar（AWS Systems Manager 中的一项工具）出现的问题。

**Topics**
+ [“Calendar import failed (日历导入失败)”错误](#change-manager-troubleshooting-1)

## “Calendar import failed (日历导入失败)”错误
<a name="change-manager-troubleshooting-1"></a>

**问题**：在导入 iCalendar (`.ics`) 文件时，系统报告日历导入失败。
+ **解决方案 1** – 确保您导入的是从受支持的第三方日历提供程序导出的文件，受支持的第三方日历提供程序包括以下几个：
  + Google 日历（[导出说明](https://support.google.com/calendar/answer/37111)）
  + Microsoft Outlook（[导出说明](https://support.microsoft.com/en-us/office/export-an-outlook-calendar-to-google-calendar-662fa3bb-0794-4b18-add8-9968b665f4e6)）
  + iCloud 日历（[导出指令](https://support.apple.com/guide/calendar/import-or-export-calendars-icl1023/mac)）
+ **解决方案 2** – 如果源日历包含任何重复性事件，请确保没有取消或删除该事件的任何一次发生。目前，Change Calendar 不支持导入发生单次取消的重复性事件。要解决该问题，请从源日历中删除重复性事件，重新导出日历，再将该日历重新导入到 Change Calendar 中，然后使用 Change Calendar 界面添加该重复性事件。有关信息，请参阅[创建Change Calendar 事件](change-calendar-create-event.md)。
+ **解决方案 3** – 确保源日历至少包含一个事件。上载 `.ics` 不包含事件的文件不会成功。
+ **解决方案 4** – 如果系统报告导入因 `.ics` 过大而失败，请确保只导出有关日历条目的基本详细信息。如有必要，请减少用于导出的时间段的长度。
+ **解决方案 5** – 如果 Change Calendar 无法确定您导出的日历的时区，则当您尝试从 **Events (事件)** 选项卡中导入该日历时，您可能会收到以下消息：“Calendar import failed. Change Calendar couldn't locate a valid time zone.（日历导入失败，找不到有效时区。） 您可以从 Edit (编辑) 菜单中导入该日历。在本例中，请选择 **Actions (操作)、Edit (编辑)**，然后尝试从 **Edit calendar (编辑日历)** 页面导入该文件。
+ **解决方案 6** – 请勿编辑 `.ics` 文件，然后再导入。尝试修改文件的内容可能会损坏日历数据。如果您在尝试导入之前修改了文件，则请再次从源日历导出日历，然后重新尝试上载。