

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.

# Implementación de indicadores de características y datos de configuración en AWS AppConfig
<a name="deploying-feature-flags"></a>

Tras [crear los artefactos necesarios](https://docs.aws.amazon.com/appconfig/latest/userguide/creating-feature-flags-and-configuration-data.html) para trabajar con marcas de características y datos de configuración de formato libre, puede crear una nueva implementación. Al crear una nueva implementación, puede especificar las siguientes opciones:
+ ID de la aplicación
+ ID del perfil de configuración
+ Una versión de configuración
+ Un ID de entorno en el que desea implementar los datos de configuración
+ Un ID de estrategia de implementación que define la rapidez con la que desea que se apliquen los cambios
+ Un identificador de clave AWS Key Management Service (AWS KMS) para cifrar los datos mediante una clave gestionada por el cliente.

Cuando llamas a la acción de la [StartDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StartDeployment.html)API, AWS AppConfig realiza las siguientes tareas:

1. Recupera los datos de configuración del almacén de datos subyacente mediante el URI de ubicación del perfil de configuración.

1. Comprueba que los datos de configuración sean correctos sintáctica y semánticamente utilizando los validadores que especificó al crear su perfil de configuración.

1. Guarda en caché una copia de los datos para que la aplicación pueda recuperarlos. Esta copia en caché se denomina *datos implementados*.

Puede mitigar las situaciones en las que la implementación de datos de configuración provoca errores en su aplicación mediante una combinación de estrategias de AWS AppConfig implementación y reversiones automáticas basadas en CloudWatch las alarmas de Amazon. Una estrategia de despliegue le permite ir publicando los cambios en todos los objetivos o segmentos específicos en cuestión de minutos u horas, ya sea en función de la sesión o según su propia dimensión objetivo, al aprovechar las implementaciones basadas en entidades. Tras la configuración CloudWatch, si una o más alarmas pasan al estado de alarma durante una implementación, revierte AWS AppConfig automáticamente los datos de configuración a la versión anterior. Para obtener más información acerca de estrategias de implementación, consulte [Uso de estrategias de implementación](appconfig-creating-deployment-strategy.md). Para obtener más información acerca de restauraciones automáticas, consulte [Supervisión de las implementaciones para su restauración automática](monitoring-deployments.md).

**nota**  
AWS AppConfig El agente (versión 2.0.136060 o posterior) permite implementar indicadores de funciones o datos de configuración de formato libre en segmentos específicos o usuarios individuales durante una implementación gradual. Las implementaciones graduales basadas en entidades garantizan que, una vez que un usuario o segmento reciba una versión de configuración, siga recibiendo esa misma versión durante todo el período de implementación, independientemente del recurso informático que atienda sus solicitudes. Para obtener más información, consulte [Uso AWS AppConfig del agente para despliegues graduales basados en usuarios o entidades](appconfig-agent-how-to-use.md#appconfig-entity-based-gradual-deployments).

**Topics**
+ [Uso de estrategias de implementación](appconfig-creating-deployment-strategy.md)
+ [Implementar una configuración](appconfig-deploying.md)
+ [Implementación AWS AppConfig de configuraciones mediante CodePipeline](appconfig-integration-codepipeline.md)
+ [Cómo revertir una configuración](appconfig-deploying-reverting.md)

# Uso de estrategias de implementación
<a name="appconfig-creating-deployment-strategy"></a>

Una estrategia de despliegue le permite ir publicando cambios paulatinamente en todos los objetivos o segmentos específicos en cuestión de minutos u horas, ya sea por sesión o según su propia dimensión objetivo, al aprovechar las implementaciones basadas en entidades.

**nota**  
AWS AppConfig El agente (versión 2.0.136060 o posterior) permite implementar indicadores de características o datos de configuración de formato libre en segmentos específicos o usuarios individuales durante una implementación gradual. Las implementaciones graduales basadas en entidades garantizan que, una vez que un usuario o segmento reciba una versión de configuración, siga recibiendo esa misma versión durante todo el período de implementación, independientemente del recurso informático que atienda sus solicitudes. Para obtener más información, consulte [Uso AWS AppConfig del agente para despliegues graduales basados en usuarios o entidades](appconfig-agent-how-to-use.md#appconfig-entity-based-gradual-deployments).

Una estrategia AWS AppConfig de implementación define los siguientes aspectos importantes de una implementación de configuración.


****  

| Opción | Description (Descripción) | 
| --- | --- | 
| Tiempo transcurrido | Implementación en curso | 
| --- | --- | 
|  Tipo de implementación  | El tipo de despliegue define cómo se despliega o *despliega* la configuración. AWS AppConfig admite los **tipos de despliegue lineal** y **exponencial**. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html)  | 
|  Porcentaje de pasos (factor de crecimiento)  |  Esta configuración especifica el porcentaje de intermediarios objetivo durante cada paso de la implementación.  En el SDK y la [Referencia de la API de AWS AppConfig](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateDeploymentStrategy.html), `step percentage` se llama `growth factor`.   | 
|  Tiempo de implementación  |  Esta configuración especifica la cantidad de tiempo durante la cual se AWS AppConfig despliega en los hosts. No se trata de un valor de tiempo de espera. Se trata de una ventana de tiempo durante la cual la implementación se procesa en intervalos. | 
|  Tiempo procesamiento  |  Esta configuración especifica la cantidad de tiempo que AWS AppConfig monitorea las CloudWatch alarmas de Amazon después de que la configuración se haya implementado en el 100% de sus destinos, antes de considerar que la implementación se ha completado. Si se activa una alarma durante este tiempo, AWS AppConfig revierte la implementación. Debe configurar los permisos para AWS AppConfig realizar la reversión en función de CloudWatch las alarmas. Para obtener más información, consulte [Configurar los permisos para la restauración automática](setting-up-appconfig.md#getting-started-with-appconfig-cloudwatch-alarms-permissions).  | 
|  0 horas  |  0%  | 
|  2 horas  |  20%  | 
|  4 horas  |  40%  | 
|  6 horas  |  60%  | 
|  8 horas  |  80%  | 
|  10 horas  |  100%  | 

Puede elegir una estrategia predefinida incluida AWS AppConfig o crear la suya propia. 

**nota**  
AWS AppConfig El agente (versión 2.0.136060 o posterior) permite implementar indicadores de características o datos de configuración de formato libre en segmentos específicos o usuarios individuales durante una implementación gradual. Las implementaciones graduales basadas en entidades garantizan que, una vez que un usuario o segmento reciba una versión de configuración, siga recibiendo esa misma versión durante todo el período de implementación, independientemente del recurso informático que atienda sus solicitudes. Para obtener más información, consulte [Uso AWS AppConfig del agente para despliegues graduales basados en usuarios o entidades](appconfig-agent-how-to-use.md#appconfig-entity-based-gradual-deployments).

**Topics**
+ [Uso de estrategias de implementación predefinidas](appconfig-creating-deployment-strategy-predefined.md)
+ [Creación de una estrategia de implementación](appconfig-creating-deployment-strategy-create.md)

# Uso de estrategias de implementación predefinidas
<a name="appconfig-creating-deployment-strategy-predefined"></a>

AWS AppConfig incluye estrategias de implementación predefinidas para ayudarle a implementar rápidamente una configuración. En lugar de crear sus propias estrategias, puede elegir una de las siguientes opciones al implementar una configuración.


****  

| Estrategia de implementación | Description (Descripción) | 
| --- | --- | 
|  AppConfig. PercentEvery Lineal: 20 (6 minutos)  | **AWS recomendado:** Esta estrategia implementa la configuración en el 20 % de todos los objetivos cada seis minutos para una implementación de un 30 minutos. El sistema monitorea CloudWatch las alarmas de Amazon durante 30 minutos. Si no se reciben alarmas en este momento, se completa la implementación. Si se activa una alarma durante este tiempo, AWS AppConfig revierte la implementación.Recomendamos usar esta estrategia para las implementaciones de producción porque se ajusta a las AWS mejores prácticas e incluye un énfasis adicional en la seguridad de las implementaciones debido a su larga duración y tiempo de inactividad.  | 
|  AppConfig. Canary 10 por ciento y 20 minutos  | **AWS recomendado:** Esta estrategia procesa la implementación exponencialmente utilizando un factor de crecimiento del 10 % durante 20 minutos. El sistema monitorea CloudWatch las alarmas durante 10 minutos. Si no se reciben alarmas en este momento, se completa la implementación. Si se activa una alarma durante este tiempo, AWS AppConfig revierte el despliegue.Recomendamos usar esta estrategia para las implementaciones de producción porque se ajusta a las AWS mejores prácticas para las implementaciones de configuración.  | 
|  AppConfig.AllAtOnce  | **Quick (Inmediata)**: Esta estrategia implementa la configuración en todos los destinos inmediatamente. El sistema monitorea CloudWatch las alarmas durante 10 minutos. Si no se reciben alarmas en este momento, se completa la implementación. Si se activa una alarma durante este tiempo, AWS AppConfig revierte la implementación.   | 
|  AppConfig4. LinealPercentEvery: 50 x 30 segundos  | **Prueba/demostración**: Esta estrategia implementa la configuración en la mitad de todos los objetivos cada 30 segundos para una implementación de un minuto. El sistema monitorea CloudWatch las alarmas de Amazon durante 1 minuto. Si no se reciben alarmas en este momento, se completa la implementación. Si se activa una alarma durante este tiempo, AWS AppConfig revierte la implementación.Recomendamos utilizar esta estrategia solo con fines de prueba o demostración, ya que tiene una duración y tiempo de cocción cortos.  | 

# Creación de una estrategia de implementación
<a name="appconfig-creating-deployment-strategy-create"></a>

Si no desea utilizar una de las estrategias de implementación predefinidas, puede crear una propia. Puede crear un máximo de 20 estrategias de implementación. Al implementar una configuración, puede elegir la estrategia de implementación que funcione mejor para la aplicación y el entorno.

## Creación de una estrategia de AWS AppConfig despliegue (consola)
<a name="appconfig-creating-deployment-strategy-create-console"></a>

Utilice el siguiente procedimiento para crear una estrategia de AWS AppConfig despliegue mediante la AWS Systems Manager consola.

**Para crear una estrategia de implementación**

1. Abra 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 **Estrategias de implementación** y, a continuación, **Crear estrategia de implementación**.

1. En **Name (Nombre)**, escriba un nombre para la estrategia de implementación.

1. En **Description (Descripción)**, introduzca información sobre la estrategia de implementación.

1. En **Deployment type (Tipo de implementación)**, elija un tipo.

1. En **Step percentage (Porcentaje de pasos)**, elija el porcentaje de intermediarios objetivo durante cada paso de la implementación. 

1. En **Deployment time (Tiempo de implementación)**, especifique la duración total de la implementación en minutos u horas. 

1. En **Bake Time**, introduce el tiempo total, en minutos u horas, para monitorizar CloudWatch las alarmas de Amazon antes de continuar con el siguiente paso de una implementación o antes de considerar que la implementación se ha completado. 

1. En la sección **Tags (Etiquetas)** introduzca una clave y un valor opcional. Puede especificar un máximo de 50 etiquetas para un recurso. 

1. Elija **Create deployment strategy (Crear estrategia de implementación)**.

**importante**  
Si ha creado un perfil de configuración para AWS CodePipeline, debe crear una canalización CodePipeline que especifique AWS AppConfig como *proveedor de despliegue*. No tiene que realizar [Implementar una configuración](appconfig-deploying.md). Sin embargo, debe configurar un cliente para recibir las actualizaciones de la configuración de la aplicación, tal y como se describe en [Recuperación de datos de configuración sin el agente AWS AppConfig](about-data-plane.md). Para obtener información sobre cómo crear una canalización que se especifique AWS AppConfig como proveedor de despliegue, consulte el [Tutorial: Creación de un canal que se utilice AWS AppConfig como proveedor de despliegue](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-AppConfig.html) en la *Guía del AWS CodePipeline usuario*. 

Continúe en [Implementar una configuración](appconfig-deploying.md).

## Creación de una estrategia AWS AppConfig de despliegue (línea de comandos)
<a name="appconfig-creating-deployment-strategy-create-commandline"></a>

El siguiente procedimiento describe cómo utilizar AWS CLI (en Linux o Windows) o cómo Herramientas de AWS para PowerShell crear una estrategia de AWS AppConfig despliegue.

**Crear una estrategia de implementación paso a paso**

1. Abra el AWS CLI.

1. Ejecute el siguiente comando para crear una estrategia de implementación. 

------
#### [ Linux ]

   ```
   aws appconfig create-deployment-strategy \
     --name A_name_for_the_deployment_strategy \
     --description A_description_of_the_deployment_strategy \
     --deployment-duration-in-minutes Total_amount_of_time_for_a_deployment_to_last \
     --final-bake-time-in-minutes Amount_of_time_AWS AppConfig_monitors_for_alarms_before_considering_the_deployment_to_be_complete \
     --growth-factor The_percentage_of_targets_to_receive_a_deployed_configuration_during_each_interval \
     --growth-type The_linear_or_exponential_algorithm_used_to_define_how_percentage_grows_over_time \
     --replicate-to To_save_the_deployment_strategy_to_a_Systems_Manager_(SSM)_document \
     --tags User_defined_key_value_pair_metadata_of_the_deployment_strategy
   ```

------
#### [ Windows ]

   ```
   aws appconfig create-deployment-strategy ^
     --name A_name_for_the_deployment_strategy ^
     --description A_description_of_the_deployment_strategy ^
     --deployment-duration-in-minutes Total_amount_of_time_for_a_deployment_to_last ^
     --final-bake-time-in-minutes Amount_of_time_AWS AppConfig_monitors_for_alarms_before_considering_the_deployment_to_be_complete ^
     --growth-factor The_percentage_of_targets_to_receive_a_deployed_configuration_during_each_interval ^
     --growth-type The_linear_or_exponential_algorithm_used_to_define_how_percentage_grows_over_time ^
     --name A_name_for_the_deployment_strategy ^
     --replicate-to To_save_the_deployment_strategy_to_a_Systems_Manager_(SSM)_document ^
     --tags User_defined_key_value_pair_metadata_of_the_deployment_strategy
   ```

------
#### [ PowerShell ]

   ```
   New-APPCDeploymentStrategy ` 
     --Name A_name_for_the_deployment_strategy ` 
     --Description A_description_of_the_deployment_strategy `
     --DeploymentDurationInMinutes Total_amount_of_time_for_a_deployment_to_last `
     --FinalBakeTimeInMinutes Amount_of_time_AWS AppConfig_monitors_for_alarms_before_considering_the_deployment_to_be_complete `
     --GrowthFactor The_percentage_of_targets_to_receive_a_deployed_configuration_during_each_interval `
     --GrowthType The_linear_or_exponential_algorithm_used_to_define_how_percentage_grows_over_time `
     --ReplicateTo To_save_the_deployment_strategy_to_a_Systems_Manager_(SSM)_document `
     --Tag Hashtable_type_User_defined_key_value_pair_metadata_of_the_deployment_strategy
   ```

------

   El sistema devuelve información similar a la siguiente.

------
#### [ Linux ]

   ```
   {
      "Id": "Id of the deployment strategy",
      "Name": "Name of the deployment strategy",
      "Description": "Description of the deployment strategy",
      "DeploymentDurationInMinutes": "Total amount of time the deployment lasted",
      "GrowthType": "The linear or exponential algorithm used to define how percentage grew over time",
      "GrowthFactor": "The percentage of targets that received a deployed configuration during each interval",  
      "FinalBakeTimeInMinutes": "The amount of time AWS AppConfig monitored for alarms before considering the deployment to be complete",
      "ReplicateTo": "The Systems Manager (SSM) document where the deployment strategy is saved"
   }
   ```

------
#### [ Windows ]

   ```
   {
      "Id": "Id of the deployment strategy",
      "Name": "Name of the deployment strategy",
      "Description": "Description of the deployment strategy",
      "DeploymentDurationInMinutes": "Total amount of time the deployment lasted",
      "GrowthType": "The linear or exponential algorithm used to define how percentage grew over time",
      "GrowthFactor": "The percentage of targets that received a deployed configuration during each interval",  
      "FinalBakeTimeInMinutes": "The amount of time AWS AppConfig monitored for alarms before considering the deployment to be complete",
      "ReplicateTo": "The Systems Manager (SSM) document where the deployment strategy is saved"
   }
   ```

------
#### [ PowerShell ]

   ```
   ContentLength               : Runtime of the command
   DeploymentDurationInMinutes : Total amount of time the deployment lasted
   Description                 : Description of the deployment strategy
   FinalBakeTimeInMinutes      : The amount of time AWS AppConfig monitored for alarms before considering the deployment to be complete
   GrowthFactor                : The percentage of targets that received a deployed configuration during each interval
   GrowthType                  : The linear or exponential algorithm used to define how percentage grew over time
   HttpStatusCode              : HTTP Status of the runtime
   Id                          : The deployment strategy ID
   Name                        : Name of the deployment strategy
   ReplicateTo                 : The Systems Manager (SSM) document where the deployment strategy is saved
   ResponseMetadata            : Runtime Metadata
   ```

------

# Implementar una configuración
<a name="appconfig-deploying"></a>

Tras [crear los artefactos necesarios](https://docs.aws.amazon.com/appconfig/latest/userguide/creating-feature-flags-and-configuration-data.html) para trabajar con indicadores de funciones y datos de configuración de formato libre, puede crear una nueva implementación mediante el Consola de administración de AWS AWS CLI, el o el SDK. Al iniciar una implementación, se AWS AppConfig llama a la operación de la [StartDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StartDeployment.html)API. Esta llamada incluye la versión IDs de la AWS AppConfig aplicación, el entorno, el perfil de configuración y (opcionalmente) la versión de los datos de configuración que se va a implementar. La llamada también incluye el ID de la estrategia de implementación que se va a utilizar, que determina cómo se implementan los datos de configuración.

Si despliega secretos almacenados en AWS Secrets Manager objetos de Amazon Simple Storage Service (Amazon S3) cifrados con una clave gestionada por el cliente o parámetros de cadena segura almacenados AWS Systems Manager en el almacén de parámetros cifrados con una clave gestionada por el cliente, debe especificar un valor para `KmsKeyIdentifier` el parámetro. Si la configuración no está cifrada o lo está con una Clave administrada de AWS, no es necesario especificar un valor para el `KmsKeyIdentifier` parámetro.

**nota**  
El valor que se especifica para `KmsKeyIdentifier` debe ser una clave administrada por el cliente. No tiene que ser la misma clave que utilizó para cifrar la configuración.  
Al iniciar una implementación con un`KmsKeyIdentifier`, la política de permisos adjunta a su director AWS Identity and Access Management (de IAM) debe permitir la `kms:GenerateDataKey` operación.

AWS AppConfig supervisa la distribución a todos los hosts e informa del estado. Si una distribución falla, AWS AppConfig revierte la configuración.

**nota**  
Solo puede implementar una única configuración a la vez en un entorno. Sin embargo, puede implementar una configuración por entorno en diferentes entornos al mismo tiempo.

## Implementación de una configuración (consola)
<a name="appconfig-deploying-console"></a>

Utilice el siguiente procedimiento para implementar una AWS AppConfig configuración mediante la AWS Systems Manager consola.

**Para implementar una configuración mediante la consola**

1. Abra 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 **Aplicaciones**, y, a continuación, seleccione una aplicación que haya creado en [Crear un espacio de nombres para la aplicación en AWS AppConfig](appconfig-creating-namespace.md).

1. En la pestaña **Entornos**, rellene el botón de opción de un entorno y, a continuación, elija **Ver detalles**.

1. Elija **Iniciar la implementación**.

1. En **Configuration (Configuración)**, seleccione una configuración de la lista.

1. Dependiendo del origen de la configuración, utilice la lista de versiones para elegir la versión que desea implementar. 

1. En **Deployment strategy (Estrategia de implementación)**, elija una estrategia de la lista.

1. (Opcional) Para **Descripción de implementación**, ingrese una descripción. 

1. Para ver **opciones de cifrado adicionales**, elija una AWS Key Management Service clave de la lista.

1. (Opcional) En la sección **Etiquetas**, seleccione **Agregar nueva etiqueta** e introduzca una clave y un valor opcional. Puede especificar un máximo de 50 etiquetas para un recurso. 

1. Elija **Iniciar la implementación**.

## Implementación de una configuración (línea de comandos)
<a name="appconfig-deploying-commandline"></a>

El siguiente procedimiento describe cómo utilizar AWS CLI (en Linux o Windows) o Herramientas de AWS para PowerShell implementar una AWS AppConfig configuración.

**Para implementar una configuración paso a paso**

1. Abra el AWS CLI.

1. Ejecute el siguiente comando para desplegar una configuración. 

------
#### [ Linux ]

   ```
   aws appconfig start-deployment \
     --application-id The_application_ID \
     --environment-id The_environment_ID \
     --deployment-strategy-id The_deployment_strategy_ID \
     --configuration-profile-id The_configuration_profile_ID \
     --configuration-version The_configuration_version_to_deploy \
     --description A_description_of_the_deployment \
     --tags User_defined_key_value_pair_metadata_of_the_deployment
   ```

------
#### [ Windows ]

   ```
   aws appconfig start-deployment ^
     --application-id The_application_ID ^
     --environment-id The_environment_ID ^
     --deployment-strategy-id The_deployment_strategy_ID ^
     --configuration-profile-id The_configuration_profile_ID ^
     --configuration-version The_configuration_version_to_deploy ^
     --description A_description_of_the_deployment ^
     --tags User_defined_key_value_pair_metadata_of_the_deployment
   ```

------
#### [ PowerShell ]

   ```
   Start-APPCDeployment `
     -ApplicationId The_application_ID `
     -ConfigurationProfileId The_configuration_profile_ID `
     -ConfigurationVersion The_configuration_version_to_deploy `
     -DeploymentStrategyId The_deployment_strategy_ID `
     -Description A_description_of_the_deployment `
     -EnvironmentId The_environment_ID `
     -Tag Hashtable_type_user_defined_key_value_pair_metadata_of_the_deployment
   ```

------

   El sistema devuelve información similar a la siguiente.

------
#### [ Linux ]

   ```
   {   
      "ApplicationId": "The ID of the application that was deployed",
      "EnvironmentId" : "The ID of the environment",
      "DeploymentStrategyId": "The ID of the deployment strategy that was deployed",
      "ConfigurationProfileId": "The ID of the configuration profile that was deployed",
      "DeploymentNumber": The sequence number of the deployment,
      "ConfigurationName": "The name of the configuration",
      "ConfigurationLocationUri": "Information about the source location of the configuration",
      "ConfigurationVersion": "The configuration version that was deployed",
      "Description": "The description of the deployment",
      "DeploymentDurationInMinutes": Total amount of time the deployment lasted,
      "GrowthType": "The linear or exponential algorithm used to define how percentage grew over time",
      "GrowthFactor": The percentage of targets to receive a deployed configuration during each interval,
      "FinalBakeTimeInMinutes": Time AWS AppConfig monitored for alarms before considering the deployment to be complete,
      "State": "The state of the deployment",  
   
      "EventLog": [ 
         { 
            "Description": "A description of the deployment event",
            "EventType": "The type of deployment event",
            "OccurredAt": The date and time the event occurred,
            "TriggeredBy": "The entity that triggered the deployment event"
         }
      ],
   
      "PercentageComplete": The percentage of targets for which the deployment is available,
      "StartedAt": The time the deployment started,
      "CompletedAt": The time the deployment completed   
   }
   ```

------
#### [ Windows ]

   ```
   {
      "ApplicationId": "The ID of the application that was deployed",
      "EnvironmentId" : "The ID of the environment",
      "DeploymentStrategyId": "The ID of the deployment strategy that was deployed",
      "ConfigurationProfileId": "The ID of the configuration profile that was deployed",
      "DeploymentNumber": The sequence number of the deployment,
      "ConfigurationName": "The name of the configuration",
      "ConfigurationLocationUri": "Information about the source location of the configuration",
      "ConfigurationVersion": "The configuration version that was deployed",
      "Description": "The description of the deployment",
      "DeploymentDurationInMinutes": Total amount of time the deployment lasted,
      "GrowthType": "The linear or exponential algorithm used to define how percentage grew over time",
      "GrowthFactor": The percentage of targets to receive a deployed configuration during each interval,
      "FinalBakeTimeInMinutes": Time AWS AppConfig monitored for alarms before considering the deployment to be complete,
      "State": "The state of the deployment",  
   
      "EventLog": [ 
         { 
            "Description": "A description of the deployment event",
            "EventType": "The type of deployment event",
            "OccurredAt": The date and time the event occurred,
            "TriggeredBy": "The entity that triggered the deployment event"
         }
      ],
   
      "PercentageComplete": The percentage of targets for which the deployment is available,
      "StartedAt": The time the deployment started,
      "CompletedAt": The time the deployment completed 
   }
   ```

------
#### [ PowerShell ]

   ```
   ApplicationId               : The ID of the application that was deployed
   CompletedAt                 : The time the deployment completed
   ConfigurationLocationUri    : Information about the source location of the configuration
   ConfigurationName           : The name of the configuration
   ConfigurationProfileId      : The ID of the configuration profile that was deployed
   ConfigurationVersion        : The configuration version that was deployed
   ContentLength               : Runtime of the deployment 
   DeploymentDurationInMinutes : Total amount of time the deployment lasted
   DeploymentNumber            : The sequence number of the deployment
   DeploymentStrategyId        : The ID of the deployment strategy that was deployed
   Description                 : The description of the deployment
   EnvironmentId               : The ID of the environment that was deployed
   EventLog                    : {Description : A description of the deployment event, EventType : The type of deployment event, OccurredAt : The date and time the event occurred,
            TriggeredBy : The entity that triggered the deployment event}
   FinalBakeTimeInMinutes      : Time AWS AppConfig monitored for alarms before considering the deployment to be complete
   GrowthFactor                : The percentage of targets to receive a deployed configuration during each interval
   GrowthType                  : The linear or exponential algorithm used to define how percentage grew over time
   HttpStatusCode              : HTTP Status of the runtime
   PercentageComplete          : The percentage of targets for which the deployment is available
   ResponseMetadata            : Runtime Metadata
   StartedAt                   : The time the deployment started
   State                       : The state of the deployment
   ```

------

# Implementación AWS AppConfig de configuraciones mediante CodePipeline
<a name="appconfig-integration-codepipeline"></a>

AWS AppConfig es una acción de despliegue integrada para AWS CodePipeline (CodePipeline). CodePipeline es un servicio de entrega continua totalmente gestionado que le ayuda a automatizar sus procesos de lanzamiento para obtener actualizaciones rápidas y fiables de las aplicaciones y la infraestructura. CodePipeline automatiza las fases de creación, prueba e implementación del proceso de lanzamiento cada vez que se produce un cambio de código, en función del modelo de lanzamiento que defina. Para obtener más información, consulte [¿Qué es AWS CodePipeline?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)

La integración de AWS AppConfig con CodePipeline ofrece las siguientes ventajas:
+ Los clientes que antes CodePipeline gestionaban la organización ahora disponen de un medio ligero para implementar cambios de configuración en sus aplicaciones sin tener que implementar toda su base de código.
+ Los clientes que desean utilizarlo AWS AppConfig para gestionar las implementaciones de configuración, pero que tienen limitaciones porque AWS AppConfig no son compatibles con su almacén de código o configuración actual, ahora disponen de opciones adicionales. CodePipeline admite AWS CodeCommit GitHub, y BitBucket (por nombrar algunos).

**nota**  
AWS AppConfig la integración con solo CodePipeline se admite Regiones de AWS donde CodePipeline está [disponible](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Cómo funciona la integración
<a name="appconfig-integration-codepipeline-how"></a>

Se empieza por configurar y configurar CodePipeline. Esto incluye añadir la configuración a un almacén CodePipeline de códigos compatible. A continuación, configure su AWS AppConfig entorno realizando las siguientes tareas:
+ [Creación de un espacio de nombres y un perfil de configuración](https://docs.aws.amazon.com/appconfig/latest/userguide/creating-feature-flags-and-configuration-data.html)
+ [Elija una estrategia de implementación predefinida o cree la suya propia](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html)

Tras completar estas tareas, debe crear una canalización CodePipeline que especifique AWS AppConfig como *proveedor de despliegue*. A continuación, puedes realizar un cambio en la configuración y subirlo a tu almacén CodePipeline de códigos. Al cargar la nueva configuración, se inicia automáticamente una nueva implementación en CodePipeline. Tras completar la implementación, puede verificar los cambios. Para obtener información sobre cómo crear una canalización que se especifique AWS AppConfig como proveedor de implementación, consulte el [tutorial sobre cómo crear una canalización que se utilice AWS AppConfig como proveedor de implementación](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-AppConfig.html) en la *Guía del AWS CodePipeline usuario*. 

# Cómo revertir una configuración
<a name="appconfig-deploying-reverting"></a>

Durante una implementación, puede mitigar las situaciones en las que los datos de configuración incorrectos o con formato incorrecto provocan errores en la aplicación usando la restauración automática (si se activa una alarma durante una implementación) o revertiendo los datos de configuración a la versión anterior (si la implementación se ha completado correctamente).

Para las reversiones automáticas, puede utilizar una combinación de [estrategias de AWS AppConfig despliegue](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html) y CloudWatch alarmas de Amazon. Una vez configuradas, si una o más CloudWatch alarmas se activan durante `ALARM` una implementación, revierte AWS AppConfig automáticamente los datos de configuración a la versión anterior, lo que evita interrupciones o errores en las aplicaciones. Para empezar, consulte [Configurar los permisos para la restauración automática](setting-up-appconfig.md#getting-started-with-appconfig-cloudwatch-alarms-permissions).

**nota**  
También puede revertir una configuración llamando a la operación de la [StopDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StopDeployment.html)API mientras la implementación aún está en curso.

En el caso de las implementaciones que se completan correctamente, AWS AppConfig también es posible revertir los datos de configuración a una versión anterior mediante el uso del `AllowRevert` parámetro junto con la operación de la [StopDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StopDeployment.html)API. Para algunos clientes, volver a una configuración anterior después de una implementación exitosa garantiza que los datos serán los mismos que antes de la implementación. La reversión también ignora la supervisión de la alarma, lo que puede impedir que se produzca una puesta al día durante una emergencia con la aplicación.

**importante**  
Si llama `StopDeployment` con el `AllowRevert` parámetro activado, AWS AppConfig revertirá la implementación solo si la implementación se realizó correctamente en las últimas 72 horas. Transcurridas 72 horas, la implementación ya no se puede revertir. Debe crear una nueva implementación.

A continuación, se muestra un desglose de la funcionalidad `StopDeployment` en función de diferentes situaciones.

1. Si se llama a `StopDeployment` en una implementación en curso, el estado de implementación resultante será `ROLLED_BACK`.

1. Si se llama a `StopDeployment` (con `AllowRevert`) en una implementación en curso, el estado de implementación resultante será `ROLLED_BACK`.

1. Si se llama a `StopDeployment` cuando se ha completado una implementación, se producirá `BadRequestException`.

1. Si se llama a `StopDeployment` (con `AllowRevert`) cuando se ha completado una implementación, el estado de implementación resultante será `REVERTED`.

1. Si se llama a `StopDeployment` (con `AllowRevert`) cuando se ha completado una implementación transcurridas 72 horas, se producirá una `BadRequestException`.

Puede utilizar el AWS CLI para llamar a la [StopDeployment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/appconfig/stop-deployment.html)operación con el `AllowRevert` parámetro. Este es un ejemplo de AWS CLI comando que incluye el `AllowRevert` parámetro.

```
aws appconfig stop-deployment \
    --application-id 339ohji \
    --environment-id 54j1r29 \
    --deployment-number 2 \
    --allow-revert
```