使用AWS Systems Manager Automation来验证操作是否已完成,下面是基本步骤和代码示例:
创建Amazon S3桶和文件,该文件将用于存储和传递必要的变量。
创建一个Automation文档,使用步骤1中创建的S3桶和文件来存储和传递变量。以下是一个示例文档:
---
schemaVersion: "0.3"
description: "Verify the action by checking if an instance is running"
parameters:
ActionId:
type: "String"
description: "The ID of the action to verify"
mainSteps:
# Step 1: Run the command to check if the instance is running
- name: "Run command to check if the instance is running"
action: "aws:runCommand"
inputs:
Command: "aws ec2 describe-instances --filters 'Name=tag:ActionId,Values={{ActionId}}' --query 'Reservations[*].Instances[*].State.Name' --output text"
InstanceIds: "i-xxxxxxxx"
output: "instanceState"
# Step 2: Verify if the instance is running
- name: "Verify if the instance is running"
action: "aws:evaluateExpression"
inputs:
Variables:
returnedState: "{{ instanceState }}"
Expression: "returnedState == 'running'"
output: "actionVerification"
outputs:
VerificationResult:
value: "{{ actionVerification }}"
启动Automation文档,传递ActionId参数并等待Automation执行完成。以下是使用Python SDK启动Automation的示例代码:
import boto3
import time
ssm_client = boto3.client('ssm')
s3_bucket = "example-s3-bucket"
s3_object_key = "example/file.json"
action_id = "example-action"
# Create a JSON file with necessary variables and upload it to S3
s3.put_object(Bucket=s3_bucket, Key=s3_object_key, Body=json.dumps({
"ActionId": action_id