Agendar automações com janelas de manutenção - AWS Systems Manager

Agendar automações com janelas de manutenção

Você pode iniciar uma automação configurando um runbook como uma tarefa registrada para uma janela de manutenção. Com o registro do runbook como uma tarefa registrada, a janela de manutenção executa a automação durante o período de manutenção programada.

Por exemplo, digamos que você crie um runbook chamado CreateAMI que cria uma Amazon Machine Image (AMI) de instâncias registradas como destinos para a janela de manutenção. Para especificar o runbook CreateAMI (e a automação correspondente) como uma tarefa registrada de uma janela de manutenção, primeiro você deve criar uma janela de manutenção e registrar destinos. Depois, use o procedimento a seguir para especificar o documento CreateAMI como uma tarefa registrada na janela de manutenção. Quando a janela de manutenção for iniciada durante o período programado, o sistema executará a automação e criará uma AMI dos destinos registrados.

Para obter informações sobre como criar runbooks do Automation, consulte Criação dos seus próprios runbooks. O Automation é um recurso do AWS Systems Manager.

Use os procedimentos a seguir para configurar uma automação como uma tarefa registrada para uma janela de manutenção, usando o console do AWS Systems Manager, a AWS Command Line Interface (AWS CLI) ou o AWS Tools for Windows PowerShell.

Registrar uma tarefa de automação em uma janela de manutenção (console)

O procedimento a seguir descreve como usar o console do Systems Manager para configurar uma automação como uma tarefa registrada para uma janela de manutenção.

Antes de começar

Antes de concluir o procedimento a seguir, você deve criar uma janela de manutenção e registrar pelo menos um destino. Para obter mais informações, consulte os procedimentos a seguir:

Para configurar uma automação como uma tarefa registrada para uma janela de manutenção
  1. Abra o console AWS Systems Manager em https://console.aws.amazon.com/systems-manager/.

  2. No painel de navegação à esquerda, selecione Maintenance Windows e depois selecione a janela de manutenção com a qual você deseja registrar uma tarefa Automação.

  3. Escolha Ações. Em seguida, escolha Register Automation task (Registrar tarefa do Automation para executar sua opção de automação nos destinos, usando um runbook.

  4. Em Name (Nome), insira um nome para a tarefa.

  5. Em Descrição, insira uma descrição.

  6. Em Document (Documento), escolha o runbook que define as tarefas a serem executadas.

  7. Em Document version (Versão do documento), escolha a versão do runbook a ser usada.

  8. Em Task priority (Prioridade de tarefas), escolha uma prioridade. 1 é a prioridade mais alta. As tarefas em uma janela de manutenção são programadas em ordem de prioridade, as tarefas que têm a mesma prioridade são programadas em paralelo.

  9. Na seção Targets (Destinos), se o runbook selecionado executar tarefas nos recursos, identifique os destinos nos quais você deseja executar essa automação, especificando tags ou selecionando instâncias manualmente.

    nota

    Se você quiser passar os recursos pelos parâmetros de entrada em vez de destinos, não é necessário especificar um destino de janela de manutenção.

    Em muitos casos, você não precisa especificar explicitamente um destino para uma tarefa de automação. Por exemplo, digamos que você esteja criando uma tarefa do tipo Automation para atualizar uma Amazon Machine Image (AMI) para Linux, usando o runbook AWS-UpdateLinuxAmi. Quando a tarefa for executada, a AMI será atualizada com os pacotes de distribuição Linux e o software da Amazon mais recentes disponível. As novas instâncias criadas na AMI já têm essas atualizações instaladas. Como o ID da AMI a ser atualizado é especificado nos parâmetros de entrada para o runbook, não há necessidade de especificar um destino novamente na tarefa da janela de manutenção.

    Para obter informações sobre tarefas da janela de manutenção que não exigem destinos, consulte Registrar tarefas da janela de manutenção sem destinos.

  10. (Opcional) Em Rate control (Controle de taxa):

    nota

    Se a tarefa que você estiver executando não especificar destinos, você não precisará especificar controles de taxa.

    • Para Concurrency (Simultaneidade), especifique um número ou uma porcentagem de destinos nos quais executar a automação ao mesmo tempo.

      Se você selecionou destinos escolhendo pares de chave/valor de tags, e não tem certeza de quantos destinos usam as tags selecionadas, limite o número de automações que podem ser executadas ao mesmo tempo, especificando uma porcentagem.

      Quando a janela de manutenção é executada, uma nova execução da automação é iniciada por destino. Há um limite de 100 automações simultâneas por Conta da AWS. Se você especificar uma taxa de simultaneidade maior que 100, as automações simultâneas superiores a 100 serão automaticamente adicionadas à fila de automação. Para obter informações, consulte as cotas de serviço do Systems Manager no Referência geral da Amazon Web Services.

    • Para Error threshold (Limite de erros), especifique quando interromper a execução da automação em outros destinos depois que ela falhar em um número ou em uma porcentagem de destinos. Por exemplo, se você especificar três erros, o Systems Manager deixará de executar as automação quando o quarto erro for recebido. Os destinos que ainda estiverem processando a automação também poderão enviar erros.

  11. Na seção Input Parameters (Parâmetros de entrada), especifique os parâmetros para o runbook. Para runbooks, o sistema preenche automaticamente alguns dos valores. Você pode manter ou substituir esses valores.

    Importante

    Para runbooks, existe a opção de especificar uma função assumida no Automation. Se você não especificar uma função para esse parâmetro, a automação assumirá a função de serviço da janela de manutenção que você escolher na etapa 11. Dessa forma, você deve garantir que a função de serviço da janela de manutenção escolhida tenha as permissões apropriadas do AWS Identity and Access Management (IAM) para realizar as ações definidas no runbook.

    Por exemplo, a função vinculada ao serviço para o Systems Manager não tem a permissão ec2:CreateSnapshot do IAM, que é necessária para executar o runbook AWS-CopySnapshot. Nesse cenário, você deve usar uma função de serviço da janela de manutenção personalizada ou especificar uma função de admissão de Automação que tenha permissões ec2:CreateSnapshot. Para ter mais informações, consulte Configurar a automação.

  12. Na área IAM service role (Perfil de serviço do IAM), escolha um perfil para fornecer permissões ao Systems Manager para iniciar a automação.

    Para criar um perfil de serviço para tarefas de janela de manutenção, consulte Configurar o Maintenance Windows.

  13. Escolha Register Automation task (Registrar tarefa de Automação).

Registrar uma tarefa do Automation em uma janela de manutenção (linha de comando)

O procedimento a seguir descreve como usar a AWS CLI (no Linux ou no Windows) ou o AWS Tools for PowerShell para configurar uma automação como uma tarefa registrada para uma janela de manutenção.

Antes de começar

Antes de concluir o procedimento a seguir, você deve criar uma janela de manutenção e registrar pelo menos um destino. Para obter mais informações, consulte os procedimentos a seguir:

Para configurar uma automação como uma tarefa registrada para uma janela de manutenção
  1. Instale e configure a AWS CLI ou o AWS Tools for PowerShell, caso ainda não o tenha feito.

    Para obter informações, consulte Instalar ou atualizar a versão mais recente da AWS CLI e Instalar o AWS Tools for PowerShell.

  2. Crie um comando para configurar uma automação como uma tarefa registrada para uma janela de manutenção. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

    Linux & macOS
    aws ssm register-task-with-maintenance-window \ --window-id window ID \ --name task name \ --task-arn runbook name \ --targets Key=targets,Values=value \ --service-role-arn IAM role arn \ --task-type AUTOMATION \ --task-invocation-parameters task parameters \ --priority task priority \ --max-concurrency 10% \ --max-errors 5
    nota

    Se você configurar uma automação como uma tarefa registrada usando a AWS CLI, use o parâmetro --Task-Invocation-Parameters para especificar os parâmetros a serem passados para uma tarefa quando ela for executada. Não use o parâmetro --Task-Parameters. O parâmetro --Task-Parameters é um parâmetro legado.

    Para tarefas de janela de manutenção sem um destino especificado, você não pode fornecer valores para --max-errors e --max-concurrency. Em vez disso, o sistema insere um valor de espaço reservado de 1, que pode ser relatado na resposta a comandos como describe-maintenance-window-tasks e get-maintenance-window-task. Esses valores não afetam a execução da tarefa e podem ser ignorados.

    Para obter informações sobre tarefas da janela de manutenção que não exigem destinos, consulte Registrar tarefas da janela de manutenção sem destinos.

    Windows
    aws ssm register-task-with-maintenance-window ^ --window-id window ID ^ --name task name ^ --task-arn runbook name ^ --targets Key=targets,Values=value ^ --service-role-arn IAM role arn ^ --task-type AUTOMATION ^ --task-invocation-parameters task parameters ^ --priority task priority ^ --max-concurrency 10% ^ --max-errors 5
    nota

    Se você configurar uma automação como uma tarefa registrada usando a AWS CLI, use o parâmetro --task-invocation-parameters para especificar os parâmetros a serem passados para uma tarefa quando ela for executada. Não use o parâmetro --task-parameters. O parâmetro --task-parameters é um parâmetro legado.

    Para tarefas de janela de manutenção sem um destino especificado, você não pode fornecer valores para --max-errors e --max-concurrency. Em vez disso, o sistema insere um valor de espaço reservado de 1, que pode ser relatado na resposta a comandos como describe-maintenance-window-tasks e get-maintenance-window-task. Esses valores não afetam a execução da tarefa e podem ser ignorados.

    Para obter informações sobre tarefas da janela de manutenção que não exigem destinos, consulte Registrar tarefas da janela de manutenção sem destinos.

    PowerShell
    Register-SSMTaskWithMaintenanceWindow ` -WindowId window ID ` -Name "task name" ` -TaskArn "runbook name" ` -Target @{ Key="targets";Values="value" } ` -ServiceRoleArn "IAM role arn" ` -TaskType "AUTOMATION" ` -Automation_Parameter @{ "task parameter"="task parameter value"} ` -Priority task priority ` -MaxConcurrency 10% ` -MaxError 5
    nota

    Se você configurar uma automação como uma tarefa registrada usando o AWS Tools for PowerShell, use o parâmetro -Automation_Parameter para especificar os parâmetros a serem passados para uma tarefa quando ela for executada. Não use o parâmetro -TaskParameters. O parâmetro -TaskParameters é um parâmetro legado.

    Para tarefas de janela de manutenção sem um destino especificado, você não pode fornecer valores para -MaxError e -MaxConcurrency. Em vez disso, o sistema insere um valor de espaço reservado de 1, que pode ser relatado na resposta a comandos como Get-SSMMaintenanceWindowTaskList e Get-SSMMaintenanceWindowTask. Esses valores não afetam a execução da tarefa e podem ser ignorados.

    Para obter informações sobre tarefas da janela de manutenção que não exigem destinos, consulte Registrar tarefas da janela de manutenção sem destinos.

    O exemplo a seguir configura uma automação como uma tarefa registrada para uma janela de manutenção com prioridade 1. Ele também demonstra a omissão das opções de --targets, --max-errors e --max-concurrency para uma tarefa da janela de manutenção sem destino. A automação usa o runbook AWS-StartEC2Instance e a função assumida do Automation especificada para iniciar as instâncias do EC2 registradas como destinos para a janela de manutenção. A janela de manutenção executa a automação simultaneamente em 5 instâncias, no máximo, a qualquer momento. Além disso, a tarefa registrada interromperá a execução em mais instâncias por um intervalo específico, se a contagem de erros exceder 1.

    Linux & macOS
    aws ssm register-task-with-maintenance-window \ --window-id mw-0c50858d01EXAMPLE \ --name StartEC2Instances \ --task-arn AWS-StartEC2Instance \ --service-role-arn arn:aws:iam::123456789012:role/MaintenanceWindowRole \ --task-type AUTOMATION \ --task-invocation-parameters "{\"Automation\":{\"Parameters\":{\"InstanceId\":[\"{{TARGET_ID}}\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationAssumeRole\"]}}}" \ --priority 1
    Windows
    aws ssm register-task-with-maintenance-window ^ --window-id mw-0c50858d01EXAMPLE ^ --name StartEC2Instances ^ --task-arn AWS-StartEC2Instance ^ --service-role-arn arn:aws:iam::123456789012:role/MaintenanceWindowRole ^ --task-type AUTOMATION ^ --task-invocation-parameters "{\"Automation\":{\"Parameters\":{\"InstanceId\":[\"{{TARGET_ID}}\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationAssumeRole\"]}}}" ^ --priority 1
    PowerShell
    Register-SSMTaskWithMaintenanceWindow ` -WindowId mw-0c50858d01EXAMPLE ` -Name "StartEC2" ` -TaskArn "AWS-StartEC2Instance" ` -ServiceRoleArn "arn:aws:iam::123456789012:role/MaintenanceWindowRole" ` -TaskType "AUTOMATION" ` -Automation_Parameter @{ "InstanceId"="{{TARGET_ID}}";"AutomationAssumeRole"="arn:aws:iam::123456789012:role/AutomationAssumeRole" } ` -Priority 1

    O comando retorna detalhes da nova tarefa registrada semelhantes aos seguintes.

    Linux & macOS
    {
    "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
    }
    Windows
    {
    "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
    }
    PowerShell
    4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
  3. Para visualizar a tarefa registrada, execute o seguinte comando. Substitua maintenance windows ID (ID das janelas de manutenção) por suas próprias informações.

    Linux & macOS
    aws ssm describe-maintenance-window-tasks \ --window-id maintenance window ID
    Windows
    aws ssm describe-maintenance-window-tasks ^ --window-id maintenance window ID
    PowerShell
    Get-SSMMaintenanceWindowTaskList ` -WindowId maintenance window ID

    O sistema retorna informações como estas.

    Linux & macOS
    {
    "Tasks": [
        {
            "ServiceRoleArn": "arn:aws:iam::123456789012:role/MaintenanceWindowRole",
            "MaxErrors": "1",
            "TaskArn": "AWS-StartEC2Instance",
            "MaxConcurrency": "1",
            "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
            "TaskParameters": {},
            "Priority": 1,
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Type": "AUTOMATION",
            "Targets": [
            ],
            "Name": "StartEC2"
        }
    ]
    }
    Windows
    {
    "Tasks": [
        {
            "ServiceRoleArn": "arn:aws:iam::123456789012:role/MaintenanceWindowRole",
            "MaxErrors": "1",
            "TaskArn": "AWS-StartEC2Instance",
            "MaxConcurrency": "1",
            "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
            "TaskParameters": {},
            "Priority": 1,
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Type": "AUTOMATION",
            "Targets": [
            ],
            "Name": "StartEC2"
        }
    ]
    }
    PowerShell
    Description    : 
    LoggingInfo    : 
    MaxConcurrency : 5
    MaxErrors      : 1
    Name           : StartEC2
    Priority       : 1
    ServiceRoleArn : arn:aws:iam::123456789012:role/MaintenanceWindowRole
    Targets        : {}
    TaskArn        : AWS-StartEC2Instance
    TaskParameters : {}
    Type           : AUTOMATION
    WindowId       : mw-0c50858d01EXAMPLE
    WindowTaskId   : 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE