Exemplos: Registrar tarefas em uma janela de manutenção
Você pode registrar uma tarefa no Run Command, com uma janela de manutenção usando o AWS Command Line Interface (AWS CLI), conforme demonstrado em Registrar tarefas com a janela de manutenção. Você também pode registrar tarefas para fluxos de trabalho do Systems Manager Automation, funções do AWS Lambda, e tarefas do AWS Step Functions, conforme demonstrado abaixo, neste tópico.
nota
Especifique um ou mais destinos para as tarefas da janela de manutenção do tipo Run Command. Dependendo da tarefa, os destinos serão opcionais para outros tipos de tarefas da janela de manutenção (Automation, AWS Lambda e AWS Step Functions). Para obter mais informações sobre como executar tarefas que não especificam destinos, consulte Registrar tarefas da janela de manutenção sem destinos.
Neste tópico, fornecemos exemplos de como usar o comando AWS Command Line Interface (AWS CLI) da register-task-with-maintenance-window para registrar cada um dos quatro tipos de tarefa compatíveis em uma janela de manutenção. Os exemplos são apenas para demonstração, mas você pode modificá-los para criar comandos de registro de tarefa funcionais.
Uso da opção --cli-input-json
Para gerenciar melhor suas opções de tarefas, use a opção de comando --cli-input-json, com valores de opção referenciados em um arquivo JSON.
Para usar o conteúdo do arquivo JSON de exemplo fornecido nos exemplos a seguir, faça o seguinte em sua máquina local:
-
Crie um arquivo com um nome, como
MyRunCommandTask.json,MyAutomationTask.jsonou outro nome de sua preferência. -
Copie o conteúdo do nosso exemplo de JSON no arquivo.
-
Modifique o conteúdo do arquivo para o registro de sua tarefa e salve o arquivo.
-
No mesmo diretório em que armazenou o arquivo, execute o seguinte comando. Substitua o nome do arquivo por
MyFile.json.
Pseudoparâmetros em tarefas da janela de manutenção
Em alguns exemplos, usamos pseudoparâmetros como método para enviar informações de ID às tarefas. Por exemplo, {{TARGET_ID}} e {{RESOURCE_ID}} podem ser usados para passar os IDs dos recursos da AWS somente para tarefas do Automation, do Lambda e do Step Functions. Para obter mais informações sobre pseudoparâmetros em conteúdo --task-invocation-parameters, consulte Usar pseudoparâmetros ao registrar tarefas da janela de manutenção.
- Mais informações
-
-
Opções de parâmetros para o comando register-task-with-maintenance-windows.
-
register-task-with-maintenance-window na AWS CLI Command Reference
-
RegisterTaskWithMaintenanceWindow na Referência de API do AWS Systems Manager
-
Exemplos de registro de tarefas
As seções a seguir fornecem um exemplo de comando da AWS CLI para registrar um tipo de tarefa compatível e um exemplo de JSON que pode ser usado com a opção --cli-input-json.
Os exemplos a seguir demonstram como registrar tarefas Run Command do Systems Manager em uma janela de manutenção usando a AWS CLI:
Conteúdo JSON para uso com a opção de arquivo --cli-input-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 } } }
Os exemplos a seguir demonstram como registrar tarefas do Systems Manager Automation em uma janela de manutenção usando a AWS CLI:
AWS CLI comando:
Conteúdo JSON para uso com a opção de arquivo --cli-input-json:
{ "WindowId": "mw-0c50858d01EXAMPLE", "TaskArn": "AWS-PatchInstanceWithRollback", "TaskType": "AUTOMATION","TaskInvocationParameters": { "Automation": { "DocumentVersion": "1", "Parameters": { "instanceId": [ "{{RESOURCE_ID}}" ] } } } }
Os exemplos a seguir demonstram como registrar tarefas de função do Lambda em uma janela de manutenção usando a : AWS CLI.
Importante
As funções do Lambda devem estar na mesma Conta da AWS que a janela de manutenção ao utilizar o perfil vinculado ao serviço (AWSServiceRoleForAmazonSSM). A invocação do Lambda entre contas não é compatível com o perfil vinculado ao serviço. Se você precisar invocar uma função do Lambda em uma conta diferente, especifique um perfil de serviço personalizado usando o parâmetro --service-role-arn com permissões explicitamente restritas à conta de destino e adicione uma política baseada em recursos à função do Lambda de destino, concedendo acesso de invocação ao seu perfil personalizado.
Para esses exemplos, o usuário que criou a função do Lambda a nomeou como SSMrestart-my-instances e criou dois parâmetros chamados instanceId e targetType.
Importante
A política do Maintenance Windows para IAM requer a adição do prefixo SSM aos nomes das funções Lambda (ou alias) . Antes de prosseguir com o registro desse tipo de tarefa, atualize o nome no AWS Lambda para incluir SSM. Por exemplo, se o nome da função Lambda for MyLambdaFunction, altere-o para SSMMyLambdaFunction.
AWS CLI comando:
Conteúdo JSON para uso com a opção de arquivo --cli-input-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 }
Os exemplos a seguir demonstram como registrar tarefas da máquina de estado do Step Functions em uma janela de manutenção usando a : AWS CLI.
Importante
As máquinas de estados do Step Functions devem estar na mesma Conta da AWS que a janela de manutenção. A invocação do Step Functions entre contas não é suportada, independentemente de você usar o perfil vinculado ao serviço ou um perfil de serviço personalizado.
nota
As tarefas da janela de manutenção oferecem suporte somente aos fluxos de trabalho da máquina de estado Step Functions Standard. Elas não oferecem suporte a fluxos de trabalho de máquinas de estado Express. Para obter informações sobre os tipos de fluxo de trabalho da máquina de estado, consulte Fluxos de trabalho Standard vs. Express no Guia do desenvolvedor do AWS Step Functions.
Para esses exemplos, o usuário que criou a máquina de estado do Step Functions criou uma máquina de estado chamada SSMMyStateMachine com um parâmetro chamado instanceId.
Importante
A política do AWS Identity and Access Management (IAM) para a Maintenance Windows requer o uso do prefixo Step Functions nos nomes das máquinas de estado do SSM. Antes de prosseguir com o registro desse tipo de tarefa, é necessário atualizar o nome no AWS Step Functions a fim de incluir SSM. Por exemplo, se o nome da máquina de estado for MyStateMachine, altere para SSMMyStateMachine.
AWS CLI comando:
Conteúdo JSON para uso com a opção de arquivo --cli-input-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 }