

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# `AWSPremiumSupport-PostgreSQLWorkloadReview`
<a name="automation-aws-postgresqlworkloadreview"></a>

 **Description** 

 `AWSPremiumSupport-PostgreSQLWorkloadReview` Runbook 會擷取 Amazon Relational Database Service (Amazon RDS) PostgreSQL 資料庫用量統計資料的多個快照。An 支援 [Proactive Services](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/) 專家需要擷取的統計資料才能執行操作審查。系統會使用一組自訂 SQL 和 shell 指令碼來收集統計資料。這些指令碼會下載到 中由此 Runbook 建立 AWS 帳戶 的臨時 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。Runbook 要求您使用包含使用者名稱和密碼金鑰/值對的 AWS Secrets Manager 秘密來提供登入資料。使用者名稱必須具有查詢標準 PostgreSQL 統計資料檢視和函數的許可。

 此 Runbook AWS 帳戶 會自動使用 AWS CloudFormation 堆疊在 中建立下列 AWS 資源。您可以使用 CloudFormation 主控台監控堆疊建立。
+ 在 VPC 的私有子網路中啟動的虛擬私有雲端 (VPC) 和 Amazon EC2 執行個體，可使用 NAT 閘道選擇性連線至網際網路。
+ 連接至暫時 Amazon EC2 執行個體的 AWS Identity and Access Management (IAM) 角色，具有擷取 Secrets Manager 秘密值的許可。此角色也提供許可，將檔案上傳至您選擇的 Amazon Simple Storage Service (Amazon S3) 儲存貯體，以及選擇性地上傳至 支援 案例。
+ VPC 對等互連，允許資料庫執行個體與暫時 Amazon EC2 執行個體之間進行連線。
+ 連接到暫時 VPC 的 Systems Manager、Secrets Manager 和 Amazon S3 VPC 端點。
+ 具有已註冊任務的維護時段，可定期啟動和停止暫時 Amazon EC2 執行個體、執行資料收集指令碼，以及將檔案上傳至 Amazon S3 儲存貯體。維護時段也會建立 IAM 角色，提供執行已註冊任務的許可。

 當 Runbook 完成時，會刪除用於建立必要 AWS 資源的 CloudFormation 堆疊，並將報告上傳到您選擇的 Amazon S3 儲存貯體，以及選擇性的 支援 案例。

**注意**  
根據預設，會保留暫時 Amazon EC2 執行個體的根 Amazon EBS 磁碟區。您可以將 `EbsVolumeDeleteOnTermination` 參數設定為 來覆寫此選項`true`。

 **先決條件** 
+  **Enterprise Support 訂閱** 此 Runbook 和 Proactive Services 工作負載診斷和檢閱需要 Enterprise Support 訂閱。使用此 Runbook 之前，請聯絡您的技術客戶經理 (TAM) 或專家 TAM (STAM) 以取得指示。如需詳細資訊，請參閱 [支援 Proactive Services](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/)。
+  **帳戶和 AWS 區域 配額** 請確定您尚未達到在此執行手冊的帳戶和區域中可建立的 Amazon EC2 執行個體或 VPCs 數量上限。如果您需要請求提高限制，請參閱[服務提高限制表單](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase/)。
+  **資料庫組態** 

  1. 您在 `DatabaseName` 參數中指定的資料庫應設定 `pg_stat_statements` 延伸模組。如果您尚未在 `pg_stat_statements`中設定 `shared_preload_libraries`，則必須編輯資料庫參數群組中的值，並套用變更。變更 參數`shared_preload_libraries`需要重新啟動資料庫執行個體。如需詳細資訊，請參閱[使用參數群組](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)。`pg_stat_statements` 將 新增至 `shared_preload_libraries`會新增一些效能額外負荷。不過，這對於追蹤個別陳述式的效能很有用。如需 `pg_stat_statements`延伸模組的詳細資訊，請參閱 [PostgreSQL 文件](https://www.postgresql.org/docs/10/pgstatstatements.html)。如果您未設定`pg_stat_statements`延伸模組，或延伸模組不存在於用於統計資料收集的資料庫中，則不會在操作檢閱中顯示陳述式層級分析。

  1. 確定 `track_counts`和 `track_activities` 參數未關閉。如果在資料庫參數群組中關閉這些參數，則無法使用有意義的統計資料。變更這些參數需要您重新啟動資料庫執行個體。如需詳細資訊，請參閱[在 Amazon RDS for PostgreSQL 資料庫執行個體上使用參數](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Parameters.html)。

  1. 如果 `track_io_timing` 參數已關閉，則操作檢閱中不會包含 I/O 層級統計資料。變更 `track_io_timing` 需要您重新啟動資料庫執行個體，並會根據資料庫執行個體工作負載產生額外的效能額外負荷。儘管關鍵工作負載的效能額外負荷，此參數仍提供每個查詢的 I/O 時間相關實用資訊。

 **帳單和費用** 此自動化執行期間， AWS 帳戶 將針對暫時 Amazon EC2 執行個體、相關聯的 Amazon EBS 磁碟區、NAT 閘道和傳輸的資料，向您收取相關費用。根據預設，此 Runbook 會建立 `t3.micro` Amazon Linux 2 執行個體來收集統計資料。Runbook 會在步驟之間啟動和停止執行個體，以降低成本。

 **資料安全和控管** 此 Runbook 會透過查詢 [PostgreSQL 統計資料檢視和函數來收集統計資料](https://www.postgresql.org/docs/current/monitoring-stats.html)。請確定 `SecretId` 參數中提供的登入資料僅允許統計資料檢視和函數的唯讀許可。在自動化過程中，集合指令碼會上傳到您的 Amazon S3 儲存貯體，並且可以位於 中`s3://amzn-s3-demo-bucket/automation execution id/queries/`。

這些指令碼會收集 AWS 專家用來檢閱物件層級關鍵效能指標的資料。指令碼會收集資料表名稱、結構描述名稱和索引名稱等資訊。如果其中任何一種資訊包含敏感資訊，例如收入指標、使用者名稱、電子郵件地址或任何其他個人身分識別資訊，我們建議您停止此工作負載檢閱。請聯絡您的 AWS TAM 以討論工作負載檢閱的替代方法。

請確定您擁有必要的核准和許可，以共用此自動化所收集的統計資料和中繼資料 AWS。

 **安全考量** 如果您將 `UpdateRdsSecurityGroup` 參數設定為 `yes`，則 Runbook 會更新與資料庫執行個體相關聯的安全群組，以允許來自暫時 Amazon EC2 執行個體私有 IP 地址的傳入流量。

如果您將 `UpdateRdsRouteTable` 參數設定為 `yes`，則 Runbook 會更新與資料庫執行個體正在執行之子網路相關聯的路由表，以允許透過 VPC 對等互連將流量傳送至暫時 Amazon EC2 執行個體。

 **使用者建立** 若要允許集合指令碼連線至 Amazon RDS 資料庫，您必須設定具有讀取統計資料檢視許可的使用者。然後，您必須將登入資料存放在 Secrets Manager 中。建議您為此自動化建立新的專用使用者。建立個別使用者可讓您稽核和追蹤此自動化執行的活動。

1. 建立新的使用者。

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "CREATE USER <user_name> PASSWORD '<password>';"`

1. 請確定此使用者只能進行唯讀連線。

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "ALTER USER <user_name> SET default_transaction_read_only=true;"`

1. 設定使用者層級限制。

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "ALTER USER <user_name> SET work_mem=4096;"`

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "ALTER USER <user_name> SET statement_timeout=10000;"`

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "ALTER USER <user_name> SET idle_in_transaction_session_timeout=60000;"`

1. 將`pg_monitor`許可授予新使用者，使其可以存取資料庫統計資料。（此`pg_monitor`角色是 `pg_read_all_settings`、 `pg_read_all_stats`和 的成員`pg_stat_scan_table`。)

   `psql -h <database_connection_endpoint> -p <database_port> -U <admin_user> -c "GRANT pg_monitor to <user_name>;"`

 **此 Systems Manager Automation 新增至暫時 Amazon EC2 執行個體描述檔的許可** 下列許可會新增至與暫時 Amazon EC2 執行個體相關聯的 IAM 角色。`AmazonSSMManagedInstanceCore` 受管政策也會與 IAM 角色建立關聯，以允許 Systems Manager 管理 Amazon EC2 執行個體。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ec2:DescribeTags"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/automation-execution-id/*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-id",
            "Effect": "Allow"
        },
        {
            "Action": [
                "support:AddAttachmentsToSet",
                "support:AddCommunicationToCase",
                "support:DescribeCases"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

 **此 Systems Manager Automation 新增至暫時維護時段的許可** 下列許可會自動新增至與維護 Windows 任務相關聯的 IAM 角色。維護 Windows 任務會啟動、停止命令，並將命令傳送至暫時 Amazon EC2 執行個體。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:GetAutomationExecution",
                "ssm:ListCommands",
                "ssm:ListCommandInvocations",
                "ssm:GetCommandInvocation",
                "ssm:GetCalendarState",
                "ssm:CancelCommand",
                "ec2:DescribeInstanceStatus"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ssm:SendCommand",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ssm:StartAutomationExecution"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/temporary-instance-id",
                "arn:aws:ssm:*:*:document/AWS-RunShellScript",
                "arn:aws:ssm:*:*:document/AWS-StopEC2Instance",
                "arn:aws:ssm:*:*:document/AWS-StartEC2Instance",
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        },
        {
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "ssm.amazonaws.com"
                },
                "ArnLike": {
                    "iam:AssociatedResourceARN": "arn:aws:ssm:*:*:document/AWS-*"
                }
            },
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/SSM-*",
            "Effect": "Allow"
        }
    ]
}
```

------

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-PostgreSQLWorkloadReview) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

資料庫

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ DBInstanceIdentifier

  類型：字串

  描述：（必要） 資料庫執行個體的 ID。
+ DatabaseName

  類型：字串

  描述：（必要） 資料庫執行個體上託管的資料庫名稱。
+ SecretId

  類型：字串

  描述：（必要） Secrets Manager 秘密的 ARN，其中包含使用者名稱和密碼金鑰值對。 CloudFormation 堆疊會建立具有此 ARN `GetSecretValue`操作許可的 IAM 政策。登入資料用於允許臨時執行個體收集資料庫統計資料。請聯絡您的 TAM 或 STAM 以討論最低必要許可。
+ 確認

  類型：字串

  描述：（必要） **yes** 如果您確認此 Runbook 會在您的帳戶中建立臨時資源，以從資料庫執行個體收集統計資料，請輸入 。我們建議您先聯絡您的 TAM 或 STAM，再執行此自動化。
+ SupportCase

  類型：字串

  描述：（選用） TAM 或 STAM 提供的 支援 案例編號。如果提供， Runbook 會更新案例並連接收集的資料。此選項需要暫時 Amazon EC2 執行個體具備網際網路連線，才能存取 支援 API 端點。您必須將 `AllowVpcInternetAccess` 參數設定為 `true`。案例主旨必須包含片語 `AWSPremiumSupport-PostgreSQLWorkloadReview`。
+ S3BucketName

  類型：字串

  描述：（必要） 帳戶中您要上傳自動化所收集的資料的 Amazon S3 儲存貯體名稱。確認儲存貯體政策不會將任何不必要的讀取或寫入許可授予不需要存取儲存貯體內容的主體。基於此自動化目的，我們建議您建立新的暫時 Amazon S3 儲存貯體。Runbook 提供 `s3:PutObject` API 操作的許可給連接到暫時 Amazon EC2 執行個體的 IAM 角色。上傳的檔案將位於 。 `s3://bucket name/automation execution id/`
+ InstanceType

  類型：字串

  描述：（選用） 將執行自訂 SQL 和 shell 指令碼的暫時 Amazon EC2 執行個體類型。

  有效值：t2.micro \$1 t2.small \$1 t2.medium \$1 t2.large \$1 t3.micro \$1 t3.small \$1 t3.medium \$1 t3.large 

  預設：t3.micro
+ VpcCidr

  類型：字串

  描述：（選用） 新 VPC CIDR 表示法中的 IP 地址範圍 （例如，`172.31.0.0/16`)。請確定您選取的 CIDR 不重疊或符合任何與資料庫執行個體連線的現有 VPC。您可以建立的最小 VPC 使用 /28 子網路遮罩，而最大的 VPC 使用 /16 子網路遮罩。

  預設：172.31.0.0/16
+ StackResourcesNamePrefix

  類型：字串

  描述：（選用） CloudFormation 堆疊資源名稱字首和標籤。Runbook 會使用此字首建立 CloudFormation 堆疊資源，做為套用至資源的名稱和標籤的一部分。標籤鍵/值對的結構為 `StackResourcesNamePrefix:{{automation:EXECUTION_ID}}`。

  預設：AWSPostgreSQLWorkloadReview
+ Schedule

  類型：字串

  描述：（選用） 維護時段排程。指定維護時段執行任務的頻率。預設值為每個 `1 hour`。

  有效值：15 分鐘 \$1 30 分鐘 \$1 1 小時 \$1 2 小時 \$1 4 小時 \$1 6 小時 \$1 12 小時 \$1 1 天 \$1 2 天 \$1 4 天 

  預設：1 小時
+ 持續時間

  類型：整數

  描述：（選用） 您希望允許自動化執行的最長持續時間，以分鐘為單位。支援的持續時間上限為 8，640 分鐘 (6 天）。預設值為 4，320 分鐘 (3 天）。

  有效值：30-8640

  預設：4320
+ UpdateRdsRouteTable

  類型：字串

  描述：（選用） 如果設定為 `true`，則 Runbook 會更新與資料庫執行個體執行所在子網路相關聯的路由表。新增 IPv4 路由，透過新建立的 VPC 互連連線，將流量路由到暫時 Amazon EC2 執行個體私有 IPV4 地址。

  有效值：true \$1 false

  預設：false
+ AllowVpcInternetAccess

  類型：字串

  描述：（選用） 如果設定為 `true`，則 Runbook 會建立 NAT 閘道，以提供暫時 Amazon EC2 執行個體的網際網路連線，以便與 支援 API 端點通訊。您可以保留此參數，就像只希望 Runbook 將輸出上傳到 Amazon S3 儲存貯體`false`一樣。

  有效值：true \$1 false 

  預設：false
+ UpdateRdsSecurityGroup

  類型：字串

  描述：（選用） 如果設定為 `true`，則 Runbook 會更新與資料庫執行個體相關聯的安全群組，以允許來自暫時執行個體私有 IP 地址的流量。

  有效值：false \$1 true

  預設：false
+ EbsVolumeDeleteOnTermination

  類型：字串

  描述：（選用） 如果設定為 `true`，則臨時 Amazon EC2 執行個體的根磁碟區會在 Runbook 完成並刪除 CloudFormation 堆疊後刪除。

  有效值：false \$1 true 

  預設：false

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `cloudformation:CreateStack`
+ `cloudformation:DeleteStack`
+ `cloudformation:DescribeStackEvents`
+ `cloudformation:DescribeStackResource`
+ `cloudformation:DescribeStacks`
+ `cloudformation:UpdateStack`
+ `ec2:AcceptVpcPeeringConnection`
+ `ec2:AllocateAddress`
+ `ec2:AssociateRouteTable`
+ `ec2:AssociateVpcCidrBlock`
+ `ec2:AttachInternetGateway`
+ `ec2:AuthorizeSecurityGroupEgress`
+ `ec2:AuthorizeSecurityGroupIngress`
+ `ec2:CreateEgressOnlyInternetGateway`
+ `ec2:CreateInternetGateway`
+ `ec2:CreateNatGateway`
+ `ec2:CreateRoute`
+ `ec2:CreateRouteTable`
+ `ec2:CreateSecurityGroup`
+ `ec2:CreateSubnet`
+ `ec2:CreateTags`
+ `ec2:CreateVpc`
+ `ec2:CreateVpcEndpoint`
+ `ec2:CreateVpcPeeringConnection`
+ `ec2:DeleteEgressOnlyInternetGateway`
+ `ec2:DeleteInternetGateway`
+ `ec2:DeleteNatGateway`
+ `ec2:DeleteRoute`
+ `ec2:DeleteRouteTable`
+ `ec2:DeleteSecurityGroup`
+ `ec2:DeleteSubnet`
+ `ec2:DeleteTags`
+ `ec2:DeleteVpc`
+ `ec2:DeleteVpcEndpoints`
+ `ec2:DescribeAddresses`
+ `ec2:DescribeEgressOnlyInternetGateways`
+ `ec2:DescribeImages`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceStatus`
+ `ec2:DescribeInternetGateways`
+ `ec2:DescribeNatGateways`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcEndpoints`
+ `ec2:DescribeVpcPeeringConnections`
+ `ec2:DescribeVpcs`
+ `ec2:DetachInternetGateway`
+ `ec2:DisassociateRouteTable`
+ `ec2:DisassociateVpcCidrBlock`
+ `ec2:ModifySubnetAttribute`
+ `ec2:ModifyVpcAttribute`
+ `ec2:RebootInstances`
+ `ec2:ReleaseAddress`
+ `ec2:RevokeSecurityGroupEgress`
+ `ec2:RevokeSecurityGroupIngress`
+ `ec2:StartInstances`
+ `ec2:StopInstances`
+ `ec2:RunInstances`
+ `ec2:TerminateInstances`
+ `iam:AddRoleToInstanceProfile`
+ `iam:AttachRolePolicy`
+ `iam:CreateInstanceProfile`
+ `iam:CreateRole`
+ `iam:DeleteInstanceProfile`
+ `iam:DeleteRole`
+ `iam:DeleteRolePolicy`
+ `iam:DetachRolePolicy`
+ `iam:GetInstanceProfile`
+ `iam:GetRole`
+ `iam:GetRolePolicy`
+ `iam:PassRole`
+ `iam:PutRolePolicy`
+ `iam:RemoveRoleFromInstanceProfile`
+ `iam:TagPolicy`
+ `iam:TagRole`
+ `rds:DescribeDBInstances`
+ `s3:GetAccountPublicAccessBlock`
+ `s3:GetBucketAcl`
+ `s3:GetBucketPolicyStatus`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:ListBucket`
+ `ssm:AddTagsToResource`
+ `ssm:CancelMaintenanceWindowExecution`
+ `ssm:CreateDocument`
+ `ssm:CreateMaintenanceWindow`
+ `ssm:DeleteDocument`
+ `ssm:DeleteMaintenanceWindow`
+ `ssm:DeregisterTaskFromMaintenanceWindow`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:DescribeDocument`
+ `ssm:DescribeInstanceInformation`
+ `ssm:DescribeMaintenanceWindowExecutions`
+ `ssm:GetCalendarState`
+ `ssm:GetDocument`
+ `ssm:GetMaintenanceWindowExecution`
+ `ssm:GetParameters`
+ `ssm:ListCommandInvocations`
+ `ssm:ListCommands`
+ `ssm:ListTagsForResource`
+ `ssm:RegisterTaskWithMaintenanceWindow`
+ `ssm:RemoveTagsFromResource`
+ `ssm:SendCommand`
+ `support:AddAttachmentsToSet`
+ `support:AddCommunicationToCase`
+ `support:DescribeCases`

 **文件步驟** 

1. `aws:assertAwsResourceProperty` - 確認資料庫執行個體處於 `available` 狀態。

1. `aws:executeAwsApi` - 收集資料庫執行個體的詳細資訊。

1. `aws:executeScript` - 檢查 中指定的 Amazon S3 儲存貯體是否`S3BucketName`允許匿名或公有讀取或寫入存取許可。

1. `aws:executeScript` - 從用於在 中建立臨時 AWS 資源的 Automation Runbook 附件取得 CloudFormation 範本內容 AWS 帳戶。

1. `aws:createStack` - 建立 CloudFormation 堆疊資源。

1. `aws:waitForAwsResourceProperty` - 等待範本建立的 Amazon EC2 執行個體 CloudFormation 執行。

1. `aws:executeAwsApi` - 取得由 建立的暫時 Amazon EC2 執行個體和 VPC 對等互連的 IDs CloudFormation。

1. `aws:executeAwsApi` - 取得暫時 Amazon EC2 執行個體的 IP 地址，以設定與資料庫執行個體的連線。

1. `aws:executeAwsApi` - 標記連接到暫時 Amazon EC2 執行個體的 Amazon EBS 磁碟區。

1. `aws:waitForAwsResourceProperty` - 等到暫時 Amazon EC2 執行個體通過狀態檢查。

1. `aws:waitForAwsResourceProperty` - 等到暫時 Amazon EC2 執行個體由 Systems Manager 管理。如果此步驟逾時或失敗，則 Runbook 會重新啟動執行個體。

   1. `aws:executeAwsApi` - 如果上一個步驟失敗或逾時，則重新啟動暫時 Amazon EC2 執行個體。

   1. `aws:waitForAwsResourceProperty` - 等到暫時 Amazon EC2 執行個體在重新啟動後由 Systems Manager 管理。

1. `aws:runCommand` - 在暫時 Amazon EC2 執行個體上安裝中繼資料收集器應用程式需求。

1. `aws:runCommand` - 透過在暫時 Amazon EC2 執行個體上建立組態檔案來設定資料庫執行個體的存取權。

1. `aws:executeAwsApi` - 建立維護時段，以使用 Run Command 定期執行中繼資料收集器應用程式。維護時段會在命令之間啟動和停止執行個體。

1. `aws:waitForAwsResourceProperty` - 等待 CloudFormation 範本建立的維護時段就緒。

1. `aws:executeAwsApi` - 取得維護時段IDs，並變更 建立的行事曆 CloudFormation。

1. `aws:sleep` - 等到維護時段的結束日期。

1. `aws:executeAwsApi` - 關閉維護時段。

1. `aws:executeScript` - 取得維護時段期間執行的任務結果。

1. `aws:waitForAwsResourceProperty` - 等待維護時段完成最後一個任務，然後再繼續。

1. `aws:branch` - 根據您是否提供 `SupportCase` 參數的值來配置工作流程。

   1. `aws:changeInstanceState` - 啟動暫時 Amazon EC2 執行個體，並等待狀態檢查通過，再上傳報告。

   1. `aws:waitForAwsResourceProperty` - 等到暫時 Amazon EC2 執行個體由 Systems Manager 管理。如果此步驟逾時或失敗，則 Runbook 會重新啟動執行個體。

      1. `aws:executeAwsApi` - 如果上一個步驟失敗或逾時，則重新啟動暫時 Amazon EC2 執行個體。

      1. `aws:waitForAwsResourceProperty` - 等到暫時 Amazon EC2 執行個體在重新啟動後由 Systems Manager 管理。

   1. `aws:runCommand` - 如果您提供 `SupportCase` 參數的值，則將中繼資料報告連接到 支援 案例。指令碼會壓縮報告並將其分割為 5 MB 檔案。指令碼連接至 支援 案例的檔案數目上限為 12。

1. `aws:changeInstanceState` - 停止暫時 Amazon EC2 執行個體，以防 CloudFormation 堆疊無法刪除。

1. `aws:executeAwsApi` - 說明 Runbook 無法建立或更新 CloudFormation 堆疊時的 CloudFormation 堆疊事件。

1. `aws:waitForAwsResourceProperty` - 等到 CloudFormation 堆疊處於終端機狀態後再刪除。

1. `aws:executeAwsApi` - 刪除不包含維護時段的 CloudFormation 堆疊。如果`EbsVolumeDeleteOnTermination`參數值設定為 ，則會保留與暫時 Amazon EC2 執行個體相關聯的根 Amazon EBS 磁碟區`false`。