예제: 유지 관리 기간에 작업 등록
유지 관리 기간에 태스크 등록에서 설명한 것처럼 AWS Command Line Interface(AWS CLI)를 사용하여 유지 관리 기간에 AWS Systems Manager의 도구인 Run Command의 태스크를 등록할 수 있습니다. 아래에 설명된 대로 Systems Manager Automation 워크플로용 태스크, AWS Lambda 함수 및 AWS Step Functions 태스크를 등록할 수도 있습니다.
참고
유지 관리 기간 Run Command 유형 태스크에 대해 하나 이상의 대상을 지정합니다. 태스크에 따라 대상은 다른 유지 관리 기간 태스크 유형(Automation, AWS Lambda 및 AWS Step Functions)에 대해 옵션입니다. 대상을 지정하지 않는 태스크 실행에 대한 자세한 내용은 대상 없이 유지 관리 기간 태스크 등록 섹션을 참조하세요.
이 주제에서는 AWS Command Line Interface(AWS CLI) 명령 register-task-with-maintenance-window
를 사용하여 4가지 지원되는 태스크 유형 각각을 유지 관리 기간에 등록하는 예제를 제공합니다. 예제는 데모용이지만 작업 등록 명령을 생성하도록 수정할 수 있습니다.
--cli-input-json 옵션 사용
작업 옵션을 보다 잘 관리하기 위해 JSON 파일에서 참조되는 옵션 값과 함께 명령 옵션 --cli-input-json
을 사용할 수 있습니다.
다음 예제에서 제공하는 샘플 JSON 파일 콘텐츠를 사용하려면 로컬 시스템에서 다음을 수행하십시오.
-
MyRunCommandTask.json
,MyAutomationTask.json
과 같은 이름 또는 선호하는 다른 이름으로 파일을 생성합니다. -
JSON 샘플의 콘텐츠를 파일에 복사합니다.
-
작업 등록을 위해 파일 콘텐츠를 수정한 다음 파일을 저장합니다.
-
파일을 저장한 디렉터리에서 다음 명령을 실행합니다.
MyFile.json
을 사용자의 파일 이름으로 바꿉니다.
유지 관리 기간 태스크의 의사 파라미터
일부 예제에서는 ID 정보를 작업에 전달하는 방법으로 의사 파라미터를 사용합니다. 예를 들어 {{TARGET_ID}}
및 {{RESOURCE_ID}}
를 사용하여 AWS 리소스의 ID를 Automation, Lambda 및 Step Functions 태스크에 전달할 수 있습니다. --task-invocation-parameters
콘텐츠의 의사 파라미터에 대한 자세한 내용은 유지 관리 기간 작업 등록 시 의사 파라미터 사용 섹션을 참조하세요.
- 추가 정보
-
-
AWS CLI 명령 레퍼런스의 register-task-with-maintenance-window
-
AWS Systems Manager API 참조의 RegisterTaskWithMaintenanceWindow
작업 등록 예제
다음 단원에서는 지원되는 작업 유형과, --cli-input-json
옵션과 함께 사용할 수 있는 JSON 샘플을 등록하기 위한 샘플 AWS CLI 명령을 제공합니다.
다음 예에서는 AWS CLI를 사용하여 유지 관리 기간에 Systems Manager Run Command 태스크를 등록하는 방법을 보여줍니다.
--cli-input-json
파일 옵션과 함께 사용할 JSON 콘텐츠:
{ "TaskType": "RUN_COMMAND", "WindowId": "mw-0c50858d01EXAMPLE", "Description": "My Run Command task to update SSM Agent on an instance", "MaxConcurrency": "1", "MaxErrors": "1", "Name": "My-Run-Command-Task", "Priority": 10, "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "AWS-UpdateSSMAgent", "TaskInvocationParameters": { "RunCommand": { "Comment": "A TaskInvocationParameters test comment", "NotificationConfig": { "NotificationArn": "arn:aws:sns:
region
:123456789012:my-sns-topic-name", "NotificationEvents": [ "All" ], "NotificationType": "Invocation" }, "OutputS3BucketName": "amzn-s3-demo-bucket", "OutputS3KeyPrefix": "S3-PREFIX
", "TimeoutSeconds": 3600 } } }
다음 예에서는 AWS CLI를 사용하여 유지 관리 기간에 Systems Manager Automation 태스크를 등록하는 방법을 보여줍니다.
AWS CLI 명령:
--cli-input-json
파일 옵션과 함께 사용할 JSON 콘텐츠:
{ "WindowId": "mw-0c50858d01EXAMPLE", "TaskArn": "AWS-PatchInstanceWithRollback", "TaskType": "AUTOMATION","TaskInvocationParameters": { "Automation": { "DocumentVersion": "1", "Parameters": { "instanceId": [ "{{RESOURCE_ID}}" ] } } } }
다음 예에서는 AWS CLI를 사용하여 유지 관리 기간에 Lambda 함수 태스크를 등록하는 방법을 보여줍니다.
Lambda 함수를 생성한 사용자가 SSMrestart-my-instances
라는 이름을 지정하고 instanceId
와 targetType
이라는 2개의 파라미터를 생성했습니다.
중요
Maintenance Windows의 IAM 정책에서는 Lambda 함수 이름(또는 별칭) 앞에 접두사 SSM
을 추가해야 합니다. 이러한 유형의 태스크를 등록하기 전에 AWS Lambda에서 SSM
을 포함하도록 이름을 업데이트합니다. 예를 들어 Lambda 함수 이름이 MyLambdaFunction
인 경우 SSMMyLambdaFunction
으로 변경합니다.
AWS CLI 명령:
--cli-input-json
파일 옵션과 함께 사용할 JSON 콘텐츠:
{ "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "SSM_RestartMyInstances", "TaskType": "LAMBDA", "MaxConcurrency": "10", "MaxErrors": "10", "TaskInvocationParameters": { "Lambda": { "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE", "Payload": "{ \"instanceId\": \"{{RESOURCE_ID}}\", \"targetType\": \"{{TARGET_TYPE}}\" }", "Qualifier": "$LATEST" } }, "Name": "My-Lambda-Task", "Description": "A description for my LAMBDA task", "Priority": 5 }
다음 예에서는 AWS CLI를 사용하여 유지 관리 기간에 Step Functions 상태 머신 태스크를 등록하는 방법을 보여줍니다.
참고
유지 관리 기간 태스크는 Step Functions 표준 상태 머신 워크플로만 지원합니다. 익스프레스 상태 머신 워크플로는 지원하지 않습니다. 상태 머신 워크플로 유형에 대한 자세한 내용은 AWS Step Functions개발자 안내서의 표준 워크플로와 익스프레스 워크플로를 참조하세요.
이러한 예의 경우 Step Functions 상태 머신을 생성한 사용자가 instanceId
파라미터가 있는 상태 시스템 SSMMyStateMachine
을 생성했습니다.
중요
Maintenance Windows의 AWS Identity and Access Management(IAM) 정책에서는 Step Functions 상태 시스템 이름 앞에 접두사 SSM
을 추가해야 합니다. 이러한 유형의 작업을 등록하기 전에 AWS Step Functions에서 SSM
을 포함하도록 이름을 업데이트해야 합니다. 예를 들어 상태 시스템 이름이 MyStateMachine
인 경우 SSMMyStateMachine
으로 변경합니다.
AWS CLI 명령:
--cli-input-json
파일 옵션과 함께 사용할 JSON 콘텐츠:
{ "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "SSM_MyStateMachine", "TaskType": "STEP_FUNCTIONS", "MaxConcurrency": "10", "MaxErrors": "10", "TaskInvocationParameters": { "StepFunctions": { "Input": "{ \"instanceId\": \"{{TARGET_ID}}\" }", "Name": "{{INVOCATION_ID}}" } }, "Name": "My-Step-Functions-Task", "Description": "A description for my Step Functions task", "Priority": 5 }