

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Paso 3: Cree una extensión personalizada AWS AppConfig
<a name="working-with-appconfig-extensions-creating-custom-extensions"></a>



Una extensión define una o más acciones que realiza durante un AWS AppConfig flujo de trabajo. Por ejemplo, la `AWS AppConfig deployment events to Amazon SNS` extensión AWS creada incluye una acción para enviar una notificación a un tema de Amazon SNS. Cada acción se invoca cuando interactúa AWS AppConfig o cuando se AWS AppConfig realiza un proceso en su nombre. Se denominan *puntos de acción*. AWS AppConfig las extensiones admiten los siguientes puntos de acción:

**Puntos de acción PRE\$1\$1**: las acciones de extensión configuradas en los puntos de acción `PRE_*` se aplican después de la validación de la solicitud, pero antes de que AWS AppConfig realice la actividad correspondiente al nombre del punto de acción. Estas invocaciones de acciones se procesan al mismo tiempo que una solicitud. Si se realiza más de una solicitud, las invocaciones a las acciones se ejecutan de forma secuencial. Tenga en cuenta también que los puntos de acción de `PRE_*` reciben y pueden cambiar el contenido de una configuración. Los puntos de acción `PRE_*` también pueden responder a un error e impedir que se lleve a cabo una acción. 
+ `PRE_CREATE_HOSTED_CONFIGURATION_VERSION`
+ `PRE_START_DEPLOYMENT`

**Puntos de acción ON\$1\$1**: una extensión también se puede ejecutar en paralelo con un AWS AppConfig flujo de trabajo mediante un punto de `ON_*` acción. `ON_*`los puntos de acción se invocan de forma asíncrona. `ON_*`los puntos de acción no reciben el contenido de una configuración. Si una extensión experimenta un error durante un punto de acción de `ON_*`, el servicio ignora el error y continúa con el flujo de trabajo.
+ `ON_DEPLOYMENT_START`
+ `ON_DEPLOYMENT_STEP`
+ `ON_DEPLOYMENT_BAKING`
+ `ON_DEPLOYMENT_COMPLETE`
+ `ON_DEPLOYMENT_ROLLED_BACK`

**Puntos de acción AT\$1\$1**: las acciones de extensión configuradas en los puntos de acción `AT_*` se invocan de forma sincrónica y paralela a un flujo de trabajo de AWS AppConfig . Si una extensión experimenta un error durante un punto de acción `AT_*`, el servicio detiene el flujo de trabajo y revierte la implementación.
+ `AT_DEPLOYMENT_TICK`

El punto de acción `AT_DEPLOYMENT_TICK` admite la integración de la supervisión de terceros. `AT_DEPLOYMENT_TICK` se invoca durante la configuración, la implementación, el procesamiento y la orquestación. Si utilizas una solución de monitorización de terceros (por ejemplo, Datadog o New Relic), puedes crear una AWS AppConfig extensión que compruebe si hay alarmas en el punto de `AT_DEPLOYMENT_TICK` acción y, como barrera de seguridad, anule el despliegue si se activa una alarma. 

Si utilizas una solución de monitorización de terceros, como Datadog o New Relic, puedes crear una AWS AppConfig extensión que compruebe si hay alarmas en el punto de `AT_DEPLOYMENT_TICK` acción y, como barrera de seguridad, anule el despliegue si se activa una alarma. Para obtener más información, consulta los siguientes ejemplos de integración de Datadog y New Relic en: 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 obtener más información sobre AWS AppConfig las extensiones, consulte los siguientes temas:
+ [Ampliación AWS AppConfig de los flujos de trabajo mediante extensiones](working-with-appconfig-extensions.md)
+ [Tutorial: Creación de extensiones personalizadas AWS AppConfig](working-with-appconfig-extensions-creating-custom.md)

**Ejemplo de extensión de**  
El siguiente ejemplo de extensión define una acción que llama al punto de acción de `PRE_CREATE_HOSTED_CONFIGURATION_VERSION`. En el campo `Uri`, la acción especifica el nombre de recurso de Amazon (ARN) de la función de Lambda de `MyS3ConfigurationBackUpExtension` creada anteriormente en este tutorial. La acción también especifica el ARN del rol de asunción AWS Identity and Access Management (IAM) creado anteriormente en este tutorial.

**Ejemplo de extensión AWS AppConfig **

```
{
    "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 la sintaxis de las solicitudes y las descripciones de los campos al crear una extensión, consulta el [CreateExtension](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateExtension.html)tema en la *Referencia de la AWS AppConfig API*.

**Crear una extensión (consola)**

1. Abre la AWS Systems Manager consola en [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/).

1. En el panel de navegación, elija **AWS AppConfig**.

1. En la pestaña **Extensiones**, elija **Crear extensión**.

1. En **Nombre de extensión**, escriba un nombre único. Para este tutorial, introduzca **MyS3ConfigurationBackUpExtension**. Si lo desea, introduzca una descripción.

1. En la sección **Acciones**, elija **Añadir nueva acción**.

1. En **Nombre de acción**, escriba un nombre único. Para este tutorial, introduzca **PreCreateHostedConfigVersionActionForS3Backup**. Este nombre describe el punto de acción utilizado por la acción y el propósito de la extensión.

1. En la lista **Punto de acción**, elija **PRE\$1CREATE\$1HOSTED\$1CONFIGURATION\$1VERSION**.

1. Para **Uri**, elija **Función de Lambda** y, a continuación, elija la función en la lista **Función de Lambda**. Si no ve la función, compruebe que se encuentra en el mismo Región de AWS lugar donde la creó.

1. Para el **rol de IAM**, elija el rol que creó anteriormente en este tutorial.

1. En la sección **Parámetros de extensión (opcional)**, elija **Agregar nuevo parámetro**. 

1. En **Nombre de parámetro**, introduzca un nombre. Para este tutorial, introduzca **S3\$1BUCKET**.

1. Repita los pasos del 5 al 11 para crear una segunda acción para el punto de acción de `PRE_START_DEPLOYMENT`.

1. Elija **Crear extensión**.

# Personalización de las extensiones AWS de notificación creadas
<a name="working-with-appconfig-extensions-creating-custom-notification"></a>

No es necesario crear una Lambda o una extensión para utilizar las [extensiones de notificación creadas de AWS](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-about-predefined.html). Solo hay que crear una asociación de extensión y, a continuación, realizar una operación que llame a uno de los puntos de acción admitidos. De forma predeterminada, las extensiones de notificación AWS creadas admiten los siguientes puntos de acción: 
+ `ON_DEPLOYMENT_START`
+ `ON_DEPLOYMENT_COMPLETE`
+ `ON_DEPLOYMENT_ROLLED_BACK`

Si crea versiones personalizadas de la extensión `AWS AppConfig deployment events to Amazon SNS` y extensiones de `AWS AppConfig deployment events to Amazon SQS`, puede especificar los puntos de acción de los que desea recibir notificaciones. 

**nota**  
La extensión `AWS AppConfig deployment events to EventBridge` no admite los puntos de acción `PRE_*`. Puede crear una versión personalizada si desea eliminar algunos de los puntos de acción predeterminados asignados a la versión AWS creada.

No necesita crear una función de Lambda si crea versiones personalizadas de las extensiones de notificación creadas de AWS . Solo necesita especificar un nombre de recurso de Amazon (ARN) en el campo `Uri` para la nueva versión de la extensión.
+ Para una extensión de EventBridge notificación personalizada, introduzca el ARN de los eventos EventBridge predeterminados en el `Uri` campo.
+ Para una extensión de notificación de Amazon SNS personalizada, introduzca el ARN de un tema de Amazon SNS en el campo `Uri`.
+ Para una extensión de notificación de Amazon SQS personalizada, introduzca el ARN de una cola de mensajes de Amazon SQS en el campo `Uri`.