

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á.

# Etapa 3: criar uma AWS AppConfig extensão personalizada
<a name="working-with-appconfig-extensions-creating-custom-extensions"></a>



Uma extensão define uma ou mais ações que ela executa durante um AWS AppConfig fluxo de trabalho. Por exemplo, a `AWS AppConfig deployment events to Amazon SNS` extensão AWS criada inclui uma ação para enviar uma notificação para um tópico do Amazon SNS. Cada ação é invocada quando você interage com AWS AppConfig ou quando AWS AppConfig está executando um processo em seu nome. Eles são chamados de *pontos de ação*. AWS AppConfig as extensões suportam os seguintes pontos de ação:

**Pontos de ação PRE\$1\$1**: as ações de extensão configuradas em pontos de ação `PRE_*` são aplicadas após a validação da solicitação, mas antes de o AWS AppConfig realizar a atividade que corresponde ao nome do ponto de ação. Essas invocações de ação são processadas ao mesmo tempo da solicitação. Se mais de uma solicitação for feita, as invocações de ação serão executadas sequencialmente. Observe também que os pontos de ação `PRE_*` recebem e podem alterar o conteúdo de uma configuração. Os pontos de ação `PRE_*` também podem responder a um erro e impedir que uma ação aconteça. 
+ `PRE_CREATE_HOSTED_CONFIGURATION_VERSION`
+ `PRE_START_DEPLOYMENT`

**Pontos de ação ON\$1\$1**: uma extensão também pode ser executada paralelamente a um AWS AppConfig fluxo de trabalho usando um ponto de `ON_*` ação. `ON_*`os pontos de ação são invocados de forma assíncrona. `ON_*`os pontos de ação não recebem o conteúdo de uma configuração. Se uma extensão apresentar um erro durante um ponto de ação `ON_*`, o serviço ignorará o erro e continuará o fluxo de trabalho.
+ `ON_DEPLOYMENT_START`
+ `ON_DEPLOYMENT_STEP`
+ `ON_DEPLOYMENT_BAKING`
+ `ON_DEPLOYMENT_COMPLETE`
+ `ON_DEPLOYMENT_ROLLED_BACK`

**Pontos de ação AT\$1\$1**: as ações de extensão configuradas nos pontos de ação `AT_*` são invocadas de maneira síncrona e em paralelo com um fluxo de trabalho do AWS AppConfig . Se uma extensão apresentar um erro durante um ponto de ação `AT_*`, o serviço interromperá o fluxo de trabalho e reverterá a implantação.
+ `AT_DEPLOYMENT_TICK`

O ponto de ação `AT_DEPLOYMENT_TICK` oferece suporte à integração de monitoramento de terceiros. `AT_DEPLOYMENT_TICK` é invocado durante a orquestração do processamento da implantação da configuração. Se você usa uma solução de monitoramento de terceiros (por exemplo, Datadog ou New Relic), você pode criar uma AWS AppConfig extensão que verifica os alarmes no ponto de `AT_DEPLOYMENT_TICK` ação e, como proteção de segurança, reverte a implantação se ela acionar um alarme. 

Se você usa uma solução de monitoramento de terceiros, como Datadog ou New Relic, pode criar uma AWS AppConfig extensão que verifica os alarmes no ponto de `AT_DEPLOYMENT_TICK` ação e, como proteção de segurança, reverte a implantação se ela acionar um alarme. Para obter mais informações, consulte os seguintes exemplos de integração entre Datadog e New Relic em: GitHub 
+ [Datadog](https://github.com/aws-samples/aws-appconfig-tick-extn-for-datadog)
+ [New Relic](https://github.com/aws-samples/sample-aws-appconfig-tick-extn-for-newrelic)

Para obter mais informações sobre AWS AppConfig extensões, consulte os tópicos a seguir:
+ [Estendendo AWS AppConfig fluxos de trabalho usando extensões](working-with-appconfig-extensions.md)
+ [Passo a passo: Criação de extensões personalizadas AWS AppConfig](working-with-appconfig-extensions-creating-custom.md)

**Exemplo de extensão do**  
O exemplo de extensão a seguir define uma ação que chama o ponto de ação `PRE_CREATE_HOSTED_CONFIGURATION_VERSION`. No campo `Uri`, a ação especifica o nome do recurso da Amazon (ARN) da função do Lambda `MyS3ConfigurationBackUpExtension` criada anteriormente neste passo a passo. A ação também especifica o ARN de função de assumir AWS Identity and Access Management (IAM) criado anteriormente nesta explicação passo a passo.

** AWS AppConfig Extensão de amostra**

```
{
    "Name": "MySampleExtension",
    "Description": "A sample extension that backs up configurations to an S3 bucket.",
    "Actions": {
        "PRE_CREATE_HOSTED_CONFIGURATION_VERSION": [
            {
                "Name": "PreCreateHostedConfigVersionActionForS3Backup",
                "Uri": "arn:aws:lambda:aws-region:111122223333:function:MyS3ConfigurationBackUpExtension",
                "RoleArn": "arn:aws:iam::111122223333:role/ExtensionsTestRole"
            }
        ]
    },
    "Parameters" : {
        "S3_BUCKET": {
            "Required": false
        }
    }
}
```

**nota**  
Para ver a sintaxe da solicitação e as descrições dos campos ao criar uma extensão, consulte o [CreateExtension](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateExtension.html)tópico na *Referência da AWS AppConfig API*.

**Para criar uma extensão (console)**

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

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

1. Na guia **Extensões**, escolha **Criar extensão**.

1. Em **Nome da extensão**, insira um nome exclusivo. Para a finalidade deste passo a passo, insira **MyS3ConfigurationBackUpExtension**. Como opção, insira uma descrição.

1. Na seção **Ações**, selecione **Adicionar nova ação**.

1. Em **Nome da ação**, insira um nome exclusivo. Para a finalidade deste passo a passo, insira **PreCreateHostedConfigVersionActionForS3Backup**. Esse nome descreve o ponto de ação usado pela ação e a finalidade da extensão.

1. Na lista **Ponto de ação**, escolha **PRE\$1CREATE\$1HOSTED\$1CONFIGURATION\$1VERSION**.

1. Para **Uri**, escolha **Função do Lambda** e, em seguida, escolha a função na lista **Função do Lambda**. Se você não vê sua função, verifique se você está no mesmo Região da AWS local em que criou a função.

1. Para **Perfil do IAM**, escolha o perfil que você criou anteriormente neste passo a passo.

1. Na seção **Parâmetros de extensão (opcional)**, escolha **Adicionar novo parâmetro**. 

1. Em **Nome do parâmetro**, insira um nome. Para a finalidade deste passo a passo, insira **S3\$1BUCKET**.

1. Repita as etapas de 5 a 11 para criar uma segunda ação para o ponto de ação `PRE_START_DEPLOYMENT`.

1. Escolha **Criar extensão**.

# Personalização de extensões AWS de notificação criadas
<a name="working-with-appconfig-extensions-creating-custom-notification"></a>

Não é necessário criar um Lambda ou uma extensão para usar [extensões de notificação criadas pela AWS](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-about-predefined.html). Basta criar uma associação de extensão e, em seguida, realizar uma operação que chame um dos pontos de ação suportados. Por padrão, as extensões AWS de notificação criadas oferecem suporte aos seguintes pontos de ação: 
+ `ON_DEPLOYMENT_START`
+ `ON_DEPLOYMENT_COMPLETE`
+ `ON_DEPLOYMENT_ROLLED_BACK`

Se criar versões personalizadas da extensão `AWS AppConfig deployment events to Amazon SNS` e das extensões `AWS AppConfig deployment events to Amazon SQS`, você poderá especificar os pontos de ação para os quais deseja receber notificações. 

**nota**  
A extensão `AWS AppConfig deployment events to EventBridge` não suporta os pontos de ação `PRE_*`. Você pode criar uma versão personalizada se quiser remover alguns dos pontos de ação padrão atribuídos à AWS versão criada.

Você não precisa criar nenhuma função do Lambda se criar versões personalizadas das extensões de notificação criadas pela AWS . Você só precisa especificar um nome do recurso da Amazon (ARN) no campo `Uri` para a nova versão da extensão.
+ Para uma extensão de EventBridge notificação personalizada, insira o ARN dos eventos EventBridge padrão no `Uri` campo.
+ Para uma extensão de notificação personalizada do Amazon SNS, insira o ARN de um tópico do Amazon SNS no campo `Uri`.
+ Para uma extensão de notificação personalizada do Amazon SQS, insira o ARN de uma fila de mensagens do Amazon SQS no campo `Uri`.