

AWS Systems Manager Incident Manager não está mais aberto a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Systems Manager Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-manager-availability-change.html). 

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tutorial: Usando os runbooks do Systems Manager Automation com o Incident Manager
<a name="tutorials-runbooks"></a>

Você pode usar runbooks de [AWS Systems Manager automação](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) para simplificar as tarefas comuns de manutenção, implantação e remediação dos serviços. AWS Neste tutorial, você criará um runbook personalizado para automatizar uma resposta a incidentes no Incident Manager. O cenário deste tutorial envolve um CloudWatch alarme da Amazon atribuído a uma métrica do Amazon EC2. Quando a instância entra em um estado que aciona o alarme, o Incident Manager executa automaticamente as seguintes tarefas:

1. Cria um incidente no Incident Manager.

1. Inicia um runbook que tenta corrigir o problema.

1. Publica os resultados do runbook na página de detalhes do incidente no Incident Manager.

O processo descrito neste tutorial também pode ser usado com EventBridge eventos da Amazon e outros tipos de AWS recursos. Ao automatizar sua resposta de remediação a alarmes e eventos, você pode reduzir o impacto de um incidente em sua organização e em seus recursos.

Este tutorial descreve como editar um CloudWatch alarme atribuído a uma instância do Amazon EC2 para um plano de resposta do Incident Manager. Se você não tiver um alarme, uma instância ou um plano de resposta configurado, recomendamos que você configure esses recursos antes de começar. Para saber mais, consulte os seguintes tópicos:
+ [Usando CloudWatch alarmes da Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) no Guia do * CloudWatch usuário da Amazon*
+ [Instâncias do Amazon EC2 no Guia](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Instances.html) do usuário do *Amazon EC2*
+ [Instâncias do Amazon EC2 no Guia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Instances.html) do usuário do *Amazon EC2*
+ [Criação e configuração de planos de resposta no Incident Manager](response-plans.md)

**Importante**  
Você incorrerá em custos criando AWS recursos e usando as etapas de automação do runbook. Para obter mais informações, consulte [Preços do AWS](https://aws.amazon.com/pricing).

**Topics**
+ [Tarefa 1: Criar o runbook](#tutorials-runbook-create)
+ [Tarefa 2: Criar um perfil do IAM](#tutorials-runbook-IAM-role)
+ [Tarefa 3: Conectar o runbook ao seu plano de resposta](#tutorials-runbook-response-plan)
+ [Tarefa 4: Atribuir um CloudWatch alarme ao seu plano de resposta](#tutorials-runbook-alarm)
+ [Tarefa 5: verificar os resultados](#tutorials-runbook-verify)

## Tarefa 1: Criar o runbook
<a name="tutorials-runbook-create"></a>

Use o procedimento a seguir para criar um runbook no console do Systems Manager. Quando invocado a partir de um incidente do Incident Manager, o runbook reinicia uma instância do Amazon EC2 e atualiza o incidente com informações sobre a execução do runbook. Antes de começar, verifique se você tem permissão para criar um runbook. Para obter mais informações, consulte [Configuração de Automação](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-setup.html) no *Guia do usuário do AWS Systems Manager *.

**Importante**  
Analise os detalhes essenciais a seguir sobre como criar o runbook deste tutorial:  
O runbook é destinado a um incidente criado a partir de uma fonte de CloudWatch alarme. Se você usar esse runbook para outros tipos de incidentes, por exemplo, incidentes criados manualmente, o evento do cronograma na primeira etapa do runbook não será encontrado e o sistema retornará um erro.
O runbook exige que o CloudWatch alarme inclua uma dimensão chamada`InstanceId`. Os alarmes para métricas de instância do Amazon EC2 têm essa dimensão. Se você usar esse runbook com outras métricas (ou com outras fontes de incidentes, como EventBridge), precisará alterar a `JsonDecode2` etapa para corresponder aos dados capturados em seu cenário. 
O runbook tenta corrigir o problema que acionou o alarme reiniciando a instância do Amazon EC2. Para um incidente real, talvez você não queira reiniciar a instância. Atualize o runbook com as ações de remediação específicas que deseja que o sistema execute.

Para obter mais informações sobre a criação de runbooks, consulte [Trabalhar com runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html) no *Guia do usuário do AWS Systems Manager *. 

**Para criar um runbook personalizado**

1. Abra o AWS Systems Manager console em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Escolha **Automação**.

1. Em **Name**, insira um nome descritivo para o runbook, como **IncidentResponseRunbook**.

1. Escolha a guia **Editor** e depois escolha **Edit (Editar)**.

1. Cole o seguinte conteúdo no editor:

   ```
   description: This runbook attempts to restart an Amazon EC2 instance that caused an incident.
   schemaVersion: '0.3'
   parameters:
     IncidentRecordArn:
       type: String
       description: The incident
   mainSteps:
     - name: ListTimelineEvents
       action: 'aws:executeAwsApi'
       outputs:
         - Selector: '$.eventSummaries[0].eventId'
           Name: eventId
           Type: String
       inputs:
         Service: ssm-incidents
         Api: ListTimelineEvents
         incidentRecordArn: '{{IncidentRecordArn}}'
         filters:
           - key: eventType
             condition:
               equals:
                 stringValues:
                   - SSM Incident Trigger
       description: This step retrieves the ID of the first timeline event with the CloudWatch alarm details.
     - name: GetTimelineEvent
       action: 'aws:executeAwsApi'
       inputs:
         Service: ssm-incidents
         Api: GetTimelineEvent
         incidentRecordArn: '{{IncidentRecordArn}}'
         eventId: '{{ListTimelineEvents.eventId}}'
       outputs:
         - Name: eventData
           Selector: $.event.eventData
           Type: String
       description: This step retrieves the timeline event itself.
     - name: JsonDecode
       action: 'aws:executeScript'
       inputs:
         Runtime: python3.8
         Handler: script_handler
         Script: |-
           import json
   
           def script_handler(events, context):
             data = json.loads(events["eventData"])
             return data
         InputPayload:
           eventData: '{{GetTimelineEvent.eventData}}'
       outputs:
         - Name: rawData
           Selector: $.Payload.rawData
           Type: String
       description: This step parses the timeline event data.
     - name: JsonDecode2
       action: 'aws:executeScript'
       inputs:
         Runtime: python3.8
         Handler: script_handler
         Script: |-
           import json
   
           def script_handler(events, context):
             data = json.loads(events["rawData"])
             return data
         InputPayload:
           rawData: '{{JsonDecode.rawData}}'
       outputs:
         - Name: InstanceId
           Selector: '$.Payload.detail.configuration.metrics[0].metricStat.metric.dimensions.InstanceId'
           Type: String
       description: This step parses the CloudWatch event data.
     - name: RestartInstance
       action: 'aws:executeAutomation'
       inputs:
         DocumentName: AWS-RestartEC2Instance
         DocumentVersion: $DEFAULT
         RuntimeParameters:
           InstanceId: '{{JsonDecode2.InstanceId}}'
       description: This step restarts the Amazon EC2 instance
   ```

1. Escolha **Criar automação**.

## Tarefa 2: Criar um perfil do IAM
<a name="tutorials-runbook-IAM-role"></a>

Use o tutorial a seguir para criar uma função AWS Identity and Access Management (IAM) que dê permissão ao Incident Manager para iniciar um runbook especificado em um plano de resposta. O runbook deste tutorial reinicia uma instância do Amazon EC2. Você especificará esse perfil do IAM na próxima tarefa ao conectar o runbook ao seu plano de resposta. 

**Crie um perfil do IAM que inicie um runbook a partir de um plano de resposta**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis** e **Criar perfil**.

1. Verifique se o **serviço da AWS ** está selecionado em **Tipo de entidade confiável**.

1. Em **Caso de uso**, no campo **Casos de uso para outros serviços da AWS **, insira **Incident Manager**.

1. Escolha ** Incident Manager** e, em seguida, **Next**.

1. Na página **Adicionar permissões**, escolha **Criar política**. O editor de permissões abrirá em uma nova janela ou guia do navegador. 

1. No editor de política, escolha a guia **JSON**.

1. Copie e cole o seguinte JSON na janela do editor de política de permissões. Substituir {{account\_ID}} por seu ID da Conta da AWS .

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Resource": [
                   "arn:aws:ssm:*:{{111122223333}}:document/IncidentResponseRunbook",
                   "arn:aws:ssm:*::document/AWS-RestartEC2Instance",
                   "arn:aws:ssm:*:{{111122223333}}:automation-execution/*"
               ],
               "Action": "ssm:StartAutomationExecution"
           },
           {
               "Effect": "Allow",
               "Resource": "arn:aws:ssm:*:*:automation-execution/*",
               "Action": "ssm:GetAutomationExecution"
           },
           {
               "Effect": "Allow",
               "Resource": "arn:aws:ssm-incidents:*:*:*",
               "Action": "ssm-incidents:*"
           },
           {
               "Effect": "Allow",
               "Resource": "arn:aws:iam::*:role/AWS-SystemsManager-AutomationExecutionRole",
               "Action": "sts:AssumeRole"
           },
           {
               "Effect": "Allow",
               "Resource": "*",
               "Action": [
                   "ec2:StopInstances",
                   "ec2:DescribeInstanceStatus",
                   "ec2:StartInstances"
               ]
           }
       ]
   }
   ```

------

1. Escolha **Próximo: tags**.

1. (Opcional) Se necessário, marque a sua política.

1. Escolha **Próximo: revisar**.

1. No campo **Nome**, insira um nome que o ajude a identificar esse perfil como sendo usado neste tutorial. 

1. (Opcional) No campo **Description**, insira uma descrição.

1. Selecione **Criar política**.

1. Navegue de volta até a janela ou guia do navegador para o perfil que você está criando. A página **Adicionar permissões** é exibida.

1. Escolha o botão de atualização (localizado ao lado do botão **Criar política**) e, em seguida, insira o nome da política de permissões que você criou na caixa de filtro.

1. Escolha o grupo de mídias que você criou e, em seguida, escolha **Next**.

1. Na página **Nomear, revisar e criar** em **Nome do perfil**, insira um nome que o ajude a identificar esse perfil como sendo usado neste tutorial. 

1. (Opcional) No campo **Description**, insira uma descrição.

1. Revise os detalhes do perfil, marque, se necessário, e escolha **Criar perfil**.

## Tarefa 3: Conectar o runbook ao seu plano de resposta
<a name="tutorials-runbook-response-plan"></a>

Ao conectar o runbook ao seu plano de resposta do Incident Manager, você garante um processo de mitigação consistente, repetível e oportuno. O runbook também serve como ponto de partida para os resolvedores determinarem seu próximo curso de ação. 

**Para atribuir o runbook ao seu plano de resposta**

1. Abra o [console do Incident Manager](https://console.aws.amazon.com/systems-manager/incidents/home).

1. Escolha os **Planos de resposta**.

1. Em **Plano de resposta**, escolha um plano de resposta existente e escolha **Editar**. Se não tiver um plano de resposta existente, escolha **Criar plano de resposta** para criar um novo plano. 

   Preencha os seguintes campos:

   1. Na seção **Runbook**, escolha **Selecionar runbook existente**.

   1. Em **Proprietário**, verifique se a opção **De minha propriedade** está selecionada.

   1. Para **Runbook**, escolha o runbook que você criou em [Tarefa 1: Criar o runbook](#tutorials-runbook-create).

   1. Em **Versão**, escolha **Padrão no momento da execução**.

   1. Na seção **Entradas**, para o **IncidentRecordArn**parâmetro, escolha **ARN do incidente.**

   1. Na seção **Permissões de execução**, escolha o perfil do IAM criado em [Tarefa 2: Criar um perfil do IAM](#tutorials-runbook-IAM-role).

1. Salve as alterações.

## Tarefa 4: Atribuir um CloudWatch alarme ao seu plano de resposta
<a name="tutorials-runbook-alarm"></a>

Use o procedimento a seguir para atribuir um CloudWatch alarme para uma instância do Amazon EC2 ao seu plano de resposta. 

**Para atribuir um CloudWatch alarme ao seu plano de resposta**

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, escolha **Alarmes**, **Todos os alarmes**.

1. Escolha um alarme para uma instância do Amazon EC2 que deseja conectar ao plano de resposta.

1. Escolha **Ações** e, em seguida, escolha **Editar**. Verifique se a métrica tem uma dimensão chamada `InstanceId`.

1. Escolha **Next**.

1. Para **Assistente de configuração de ações**, escolha **Adicionar ação do Systems Manager**.

1. Escolha **Criar incidente**.

1. Escolha o plano de resposta criado em [Tarefa 3: Conectar o runbook ao seu plano de resposta](#tutorials-runbook-response-plan).

1. Escolha **Create alarm** (Criar alarme).

## Tarefa 5: verificar os resultados
<a name="tutorials-runbook-verify"></a>

Para verificar se o CloudWatch alarme cria um incidente e, em seguida, processa o runbook especificado em seu plano de resposta, você deve acionar o alarme. Depois de acionar o alarme e o runbook concluir o processamento, você pode verificar os resultados do runbook usando o procedimento a seguir. Para obter informações sobre como acionar um alarme, consulte [set-alarm-state](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/set-alarm-state.html)na Referência de *AWS CLI Comandos*.

1. Abra o [console do Incident Manager](https://console.aws.amazon.com/systems-manager/incidents/home).

1. Escolha o incidente criado pelo CloudWatch alarme.

1. Escolha a guia **Runbooks**.

1. Veja as ações realizadas na sua instância do Amazon EC2 na seção **Etapas do Runbook**. 

   A imagem a seguir demonstra como as etapas executadas pelo runbook que você criou neste tutorial são relatadas no console. Cada etapa é listada com um carimbo de data/hora e uma mensagem de status.  
![As etapas de um runbook de automação são relatadas com registros de data e hora e relatórios de status, como “Sucesso”.](http://docs.aws.amazon.com/pt_br/incident-manager/latest/userguide/images/tutorial-runbooks-1.png)

   Para ver todos os detalhes no CloudWatch alarme, expanda a etapa **JsonDecode2** e, em seguida, expanda **Saída**.

**Importante**  
Você deve limpar todas as alterações de recursos implementadas durante este tutorial que não deseje manter. Isso inclui alterações nos recursos do Incident Manager, como planos de recursos e incidentes, alterações CloudWatch nos alarmes e na função do IAM que você criou para este tutorial.