Tutorial: Atualizar uma janela de manutenção usando a AWS CLI
Este tutorial demonstra como usar a AWS Command Line Interface (AWS CLI) para atualizar uma janela de manutenção. Ele também mostra como atualizar diferentes tipos de tarefas, incluindo aquelas do AWS Systems Manager Run Command e Automation, do AWS Lambda e do AWS Step Functions.
Os exemplos nesta seção usam as seguintes ações do Systems Manager para atualizar uma janela de manutenção.
Para obter informações sobre como usar o console do Systems Manager para atualizar uma janela de manutenção, consulte Atualize ou exclua recursos da janela de manutenção usando o console.
Ao seguir as etapas neste tutorial, substitua os valores em texto itálico vermelho
por suas próprias opções e IDs. Por exemplo, substitua o ID da janela de manutenção mw-0c50858d01EXAMPLE
e o ID da instânciai-02573cafcfEXAMPLE
pelos IDs de recursos criados.
Para atualizar uma janela de manutenção usando a AWS CLI
-
Abra o AWS CLI e execute o seguinte comando para atualizar um destino de forma a incluir um nome e uma descrição.
O sistema retorna informações semelhantes às seguintes.
{ "WindowId": "mw-0c50858d01EXAMPLE", "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE", "Targets": [ { "Key": "InstanceIds", "Values": [ "i-02573cafcfEXAMPLE" ] } ], "Name": "My-Maintenance-Window-Target", "Description": "Description for my maintenance window target" }
-
Execute o seguinte comando para usar a opção
replace
a fim de remover o campo de descrição e adicionar outro destino. O campo de descrição é removido, pois a atualização não inclui o campo (um valor nulo). Especifique um nó adicional que tenha sido configurado para uso com o Systems Manager:O sistema retorna informações semelhantes às seguintes.
{ "WindowId": "mw-0c50858d01EXAMPLE", "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE", "Targets": [ { "Key": "InstanceIds", "Values": [ "i-02573cafcfEXAMPLE", "i-0471e04240EXAMPLE" ] } ], "Name": "My-Maintenance-Window-Target" }
-
A opção
start-date
permite atrasar a ativação de uma janela de manutenção até uma data futura determinada. A opçãoend-date
permite que você defina uma data e hora no futuro após a qual a janela de manutenção não será mais executada. Especifique as opções no formato estendido ISO-8601.Execute o comando a seguir para especificar um intervalo de data e hora para execuções de janela de manutenção programadas regularmente:
-
Execute o comando a seguir para atualizar uma tarefa do Run Command.
dica
Se seu destino for uma instância do Amazon Elastic Compute Cloud (Amazon EC2) para o Windows Server, altere
df
paraipconfig
, eAWS-RunShellScript
paraAWS-RunPowerShellScript
no comando a seguir.O sistema retorna informações semelhantes às seguintes.
{ "WindowId": "mw-0c50858d01EXAMPLE", "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "AWS-RunShellScript", "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole", "TaskParameters": {}, "TaskInvocationParameters": { "RunCommand": { "Comment": "Revising my Run Command task", "Parameters": { "commands": [ "df" ] } } }, "Priority": 1, "MaxConcurrency": "10", "MaxErrors": "4", "Name": "My-Task-Name", "Description": "A description for my Run Command task" }
-
Adapte e execute o comando a seguir para atualizar uma tarefa do Lambda.
O sistema retorna informações semelhantes às seguintes.
{ "WindowId": "mw-0c50858d01EXAMPLE", "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" } ], "TaskArn": "arn:aws:lambda:us-east-2:111122223333:function:SSMTestLambda", "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole", "TaskParameters": {}, "TaskInvocationParameters": { "Lambda": { "Payload": "e30=" } }, "Priority": 1, "MaxConcurrency": "10", "MaxErrors": "5", "Name": "New-Lambda-Task-Name", "Description": "A description for my Lambda task" }
-
Se você estiver atualizando uma tarefa do Step Functions, adapte e execute o seguinte comando para atualizar os task-invocation-parameters:
O sistema retorna informações semelhantes às seguintes.
{ "WindowId": "mw-0c50858d01EXAMPLE", "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "arn:aws:states:us-east-2:111122223333:execution:SSMStepFunctionTest", "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole", "TaskParameters": {}, "TaskInvocationParameters": { "StepFunctions": { "Input": "{\"instanceId\":\"{{RESOURCE_ID}}\"}" } }, "Priority": 0, "MaxConcurrency": "10", "MaxErrors": "5", "Name": "My-Step-Functions-Task", "Description": "A description for my Step Functions task" }
-
Execute o comando a seguir para cancelar o registro de um destino de uma janela de manutenção. Este exemplo usa o parâmetro
safe
para determinar se o destino é referenciado por qualquer tarefa e, portanto, seguro para ter o registro cancelado.O sistema retorna informações semelhantes às seguintes.
An error occurred (TargetInUseException) when calling the DeregisterTargetFromMaintenanceWindow operation: This Target cannot be deregistered because it is still referenced in Task: 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
-
Execute o comando a seguir para cancelar o registro de um destino de uma janela de manutenção, mesmo que o destino seja referenciado por uma tarefa. Você pode forçar a operação de cancelamento de registro usando o parâmetro
no-safe
.O sistema retorna informações semelhantes às seguintes.
{ "WindowId": "mw-0c50858d01EXAMPLE", "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" }
-
Execute o comando a seguir para atualizar uma tarefa do Run Command. Este exemplo usa um parâmetro Parameter Store do Systems Manager chamado
UpdateLevel
, que é formatado da seguinte maneira: '{{ssm:UpdateLevel}}
'O sistema retorna informações semelhantes às seguintes.
{ "WindowId": "mw-0c50858d01EXAMPLE", "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE", "Targets": [ { "Key": "InstanceIds", "Values": [ "i-02573cafcfEXAMPLE" ] } ], "TaskArn": "AWS-RunShellScript", "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole", "TaskParameters": {}, "TaskInvocationParameters": { "RunCommand": { "Comment": "A comment for my task update", "Parameters": { "UpdateLevel": [ "{{ssm:UpdateLevel}}" ] } } }, "Priority": 10, "MaxConcurrency": "1", "MaxErrors": "1" }
-
Execute o seguinte comando para atualizar uma tarefa do Automation para especificar os parâmetros
WINDOW_ID
eWINDOW_TASK_ID
para o parâmetrotask-invocation-parameters
:O sistema retorna informações semelhantes às seguintes.
{ "WindowId": "mw-0c50858d01EXAMPLE", "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "AutoTestDoc", "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole", "TaskParameters": {}, "TaskInvocationParameters": { "Automation": { "Parameters": { "multi": [ "{{WINDOW_TASK_ID}}" ], "single": [ "{{WINDOW_ID}}" ] } } }, "Priority": 0, "MaxConcurrency": "10", "MaxErrors": "5", "Name": "My-Automation-Task", "Description": "A description for my Automation task" }