

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.

# Creación de indicadores de características y datos de configuración de formato libre en AWS AppConfig
<a name="creating-feature-flags-and-configuration-data"></a>

Los temas de esta sección le ayudan a llevar a cabo las siguientes tareas en AWS AppConfig. Estas tareas crean artefactos importantes a la hora de implementar los datos de configuración.

**1. [Crear un espacio de nombres de aplicaciones](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-namespace.html)**  
Para crear un espacio de nombres de aplicaciones, se crea un AWS AppConfig artefacto denominado aplicación. Una aplicación es simplemente una estructura organizativa, como una carpeta.

**2. [Crear entornos](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-environment.html)**  
Para cada AWS AppConfig aplicación, debe definir uno o más entornos. Un entorno es un grupo de AWS AppConfig objetivos de despliegue lógico, como las aplicaciones de un `Production` entorno `Beta` O. También puede definir entornos para subcomponentes de aplicaciones como, por ejemplo, los componentes `AWS Lambda functions`, `Containers`, `Web`, `Mobile`, y `Back-end`.  
Puede configurar CloudWatch las alarmas de Amazon para cada entorno para revertir automáticamente los cambios de configuración problemáticos. El sistema supervisa las alarmas durante la implementación de la configuración. Si se activa una alarma, el sistema deshace la configuración.

**3. [Creación de un perfil de configuración](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-profile.html)**  
Una *configuración de datos* es un conjunto de opciones que influyen en el comportamiento de la aplicación. Un *perfil de configuración* incluye, entre otras cosas, un URI que permite AWS AppConfig localizar los datos de configuración en la ubicación almacenada y un tipo de configuración. AWS AppConfig admite los siguientes tipos de perfiles de configuración:  
+ **Indicadores de características**: puede utilizar los indicadores de características para habilitar o deshabilitar las funciones de sus aplicaciones o para configurar diferentes características de las funciones de las aplicaciones mediante los atributos de los indicadores. AWS AppConfig almacena las configuraciones de las marcas de características en el almacén de configuraciones AWS AppConfig hospedado en un formato de marcas de características que contiene datos y metadatos sobre las marcas y los atributos de las marcas. El URI para las configuraciones de las marcas de características es simplemente `hosted`. 
+ **Configuraciones de formato libre**: una configuración de formato libre puede almacenar datos en cualquiera de las siguientes herramientas Servicios de AWS y en las herramientas de Systems Manager:
  + AWS AppConfig almacén de configuración hospedado
  + Amazon Simple Storage Service
  + AWS CodePipeline
  + AWS Secrets Manager
  + AWS Systems Manager (SSM) Almacén de parámetros
  + Almacén de documentos de SSM
Si es posible, le recomendamos que aloje los datos de configuración en el almacén de configuración AWS AppConfig alojado, ya que es el que ofrece la mayoría de las funciones y mejoras.

**4. (Opcional pero recomendado) [Creación de marcas de características con múltiples variantes](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-multi-variant-feature-flags.html)**  
AWS AppConfig ofrece indicadores de funciones básicas que, si están activados, devuelven un conjunto específico de datos de configuración por solicitud. Para facilitar los casos prácticos de segmentación de usuarios y división del tráfico, AWS AppConfig también ofrece indicadores de funciones con múltiples variantes, que permiten definir un conjunto de posibles valores de indicadores para devolverlos en una solicitud. También puede configurar diferentes estados (habilitada o deshabilitada) para las marcas con múltiples variantes. Al solicitar un indicador configurado con variantes, la aplicación proporciona un contexto que se AWS AppConfig evalúa en función de un conjunto de reglas definidas por el usuario. Según el contexto especificado en la solicitud y las reglas definidas para la variante, AWS AppConfig devuelve diferentes valores de indicador a la aplicación.

**Topics**
+ [Descripción del rol de IAM del perfil de configuración](appconfig-creating-configuration-and-profile-iam-role.md)
+ [Crear un espacio de nombres para la aplicación en AWS AppConfig](appconfig-creating-namespace.md)
+ [Creación de entornos para su aplicación en AWS AppConfig](appconfig-creating-environment.md)
+ [Crear un perfil de configuración en AWS AppConfig](appconfig-creating-configuration-profile.md)

# Descripción del rol de IAM del perfil de configuración
<a name="appconfig-creating-configuration-and-profile-iam-role"></a>

Puede crear el rol de IAM que proporciona acceso a los datos de configuración mediante AWS AppConfig. O puede crear el rol de IAM usted mismo. Si crea el rol utilizando AWS AppConfig, el sistema lo crea y especifica una de las siguientes políticas de permisos, según el tipo de fuente de configuración que elija.

 **El origen de configuración es un secreto en Secrets Manager** 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
             ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret_name-a1b2c3"
            ]
        }
    ]
}
```

------

 **El origen de configuración es un parámetro en Parameter Store** 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:parameter/parameter_name"
            ]
        }
    ]
    }
```

------

 **El origen de configuración es un documento de SSM** 

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

****  

```
{

    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetDocument"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/document_name"
            ]
        }
    ]
}
```

------

Si crea el rol mediante AWS AppConfig, el sistema también crea la siguiente relación de confianza para el rol. 

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

****  

```
{

  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "appconfig.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# Crear un espacio de nombres para la aplicación en AWS AppConfig
<a name="appconfig-creating-namespace"></a>

Los procedimientos de esta sección le ayudan a crear un AWS AppConfig artefacto denominado aplicación. Una aplicación es simplemente una estructura organizativa, como una carpeta, que identifica el espacio de nombres de su aplicación. Esta construcción organizativa tiene una relación con alguna unidad de código que se puede poner en marcha. Por ejemplo, puede crear una aplicación llamada MyMobileApp para organizar y administrar los datos de configuración de una aplicación móvil instalada por sus usuarios. Debe crear estos artefactos antes de poder utilizarlos AWS AppConfig para implementar y recuperar indicadores de características o datos de configuración de formato libre. 

El siguiente procedimiento le ofrece la opción de asociar una extensión a un perfil de configuración de marca de características. Una *extensión* aumenta la capacidad de introducir lógica o comportamiento en diferentes puntos del AWS AppConfig flujo de trabajo de creación o implementación de una configuración. Para obtener más información, consulte [Comprensión de AWS AppConfig las extensiones](working-with-appconfig-extensions-about.md).

**nota**  
Puede utilizarla AWS CloudFormation para crear AWS AppConfig artefactos, como aplicaciones, entornos, perfiles de configuración, despliegues, estrategias de despliegue y versiones de configuración alojadas. Para obtener más información, consulte la [referencia de tipos de recursos de AWS AppConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AppConfig.html) en la *Guía del usuario de AWS CloudFormation *.

**Topics**
+ [Crear una AWS AppConfig aplicación (consola)](#appconfig-creating-application-console)
+ [Creación de una AWS AppConfig aplicación (línea de comandos)](#appconfig-creating-application-commandline)

## Crear una AWS AppConfig aplicación (consola)
<a name="appconfig-creating-application-console"></a>

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

**Cómo crear una aplicación de**

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 **Applications** (Aplicaciones), y, a continuación, seleccione **Create a new application** (Creación de una aplicación).

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

1. En **Description (Descripción)**, escriba información acerca de la aplicación.

1. (Opcional) En la sección **Extensiones**, elija una extensión de la lista. Para obtener más información, consulte [Comprensión de AWS AppConfig las extensiones](working-with-appconfig-extensions-about.md).

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

1. Elija **Creación de aplicación**.

AWS AppConfig **crea la aplicación y, a continuación, muestra la pestaña Entornos.** Continúe en [Creación de entornos para su aplicación en AWS AppConfig](appconfig-creating-environment.md).

## Creación de una AWS AppConfig aplicación (línea de comandos)
<a name="appconfig-creating-application-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 AWS AppConfig aplicación.

**Para crear una aplicación paso a paso**

1. Abra el AWS CLI.

1. Ejecute el siguiente comando para crear una aplicación. 

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

   ```
   aws appconfig create-application \
     --name A_name_for_the_application \
     --description A_description_of_the_application \  
     --tags User_defined_key_value_pair_metadata_for_the_application
   ```

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

   ```
   aws appconfig create-application ^
     --name A_name_for_the_application ^
     --description A_description_of_the_application ^
     --tags User_defined_key_value_pair_metadata_for_the_application
   ```

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

   ```
   New-APPCApplication `
     -Name Name_for_the_application `
     -Description Description_of_the_application `
     -Tag Hashtable_type_user_defined_key_value_pair_metadata_for_the_application
   ```

------

   El sistema devuelve información similar a la siguiente.

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

   ```
   {
      "Id": "Application ID",
      "Name": "Application name",
      "Description": "Description of the application"
   }
   ```

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

   ```
   {
      "Id": "Application ID",
      "Name": "Application name",
      "Description": "Description of the application"
   }
   ```

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

   ```
   ContentLength    : Runtime of the command
   Description      : Description of the application
   HttpStatusCode   : HTTP Status of the runtime
   Id               : Application ID
   Name             : Application name
   ResponseMetadata : Runtime Metadata
   ```

------

# Creación de entornos para su aplicación en AWS AppConfig
<a name="appconfig-creating-environment"></a>

Para cada AWS AppConfig aplicación, debe definir uno o más entornos. Un entorno es un grupo de AppConfig objetivos de despliegue lógico, como aplicaciones en un `Beta` `Production` entorno, AWS Lambda funciones o contenedores. También puede definir entornos para subcomponentes de aplicaciones como, por ejemplo, los componentes `Web`, `Mobile` y `Back-end` para la aplicación. Puede configurar CloudWatch las alarmas de Amazon para cada entorno. El sistema supervisa las alarmas durante la implementación de la configuración. Si se activa una alarma, el sistema deshace la configuración. 

**Antes de empezar**  
Si quiere habilitar la AWS AppConfig reversión de una configuración en respuesta a una CloudWatch alarma, debe configurar una función AWS Identity and Access Management (IAM) con permisos que le permitan responder AWS AppConfig a CloudWatch las alarmas. Elija este rol en el siguiente procedimiento. 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).

**Topics**
+ [Crear un AWS AppConfig entorno (consola)](#appconfig-creating-environment-console)
+ [Creación de un AWS AppConfig entorno (línea de comandos)](#appconfig-creating-environment-commandline)

## Crear un AWS AppConfig entorno (consola)
<a name="appconfig-creating-environment-console"></a>

Utilice el siguiente procedimiento para crear un AWS AppConfig entorno mediante la AWS Systems Manager consola.

**Para crear un entorno**

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 el nombre de una aplicación para abrir la página de detalles.

1. Elija la pestaña **Entornos** y, a continuación, **Crear entorno**.

1. En **Name (Nombre)**, introduzca un nombre para el entorno.

1. En **Description (Descripción)**, escriba información acerca del entorno.

1. (Opcional) En la sección **Monitores**, elija el campo **Rol de IAM** y, a continuación, elija un rol de IAM con permiso para llamar a `cloudwatch:DescribeAlarms` en las métricas que desea utilizar supervisar para las alarmas.

1. En la lista de **CloudWatch alarmas**, introduzca los nombres de los recursos de Amazon (ARNs) una o más métricas para monitorizar. AWS AppConfig revierte la implementación de la configuración si una de estas métricas pasa a un `ALARM` estado. Para obtener más información sobre las métricas recomendadas, consulte [Supervisión de las implementaciones para su restauración automática](monitoring-deployments.md).

1. (Opcional) En la sección **Asociar extensiones**, elija una extensión de la lista. Para obtener más información, consulte [Comprensión de AWS AppConfig las extensiones](working-with-appconfig-extensions-about.md).

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

1. Seleccione **Creación de entorno**.

AWS AppConfig crea el entorno y, a continuación, muestra la página de **detalles del entorno**. Continúe en [Crear un perfil de configuración en AWS AppConfig](appconfig-creating-configuration-profile.md).

## Creación de un AWS AppConfig entorno (línea de comandos)
<a name="appconfig-creating-environment-commandline"></a>

El siguiente procedimiento describe cómo utilizar el AWS CLI (en Linux o Windows) o Herramientas de AWS para PowerShell cómo crear un AWS AppConfig entorno.

**Para crear un entorno paso a paso**

1. Abra el AWS CLI.

1. Ejecute el siguiente comando para crear un entorno. 

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

   ```
   aws appconfig create-environment \
     --application-id The_application_ID \
     --name A_name_for_the_environment \
     --description A_description_of_the_environment \
     --monitors "AlarmArn=ARN_of_the_Amazon_CloudWatch_alarm,AlarmArnRole=ARN_of_the_IAM role_for_AWS AppConfig_to_monitor_AlarmArn" \
     --tags User_defined_key_value_pair_metadata_of_the_environment
   ```

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

   ```
   aws appconfig create-environment ^
     --application-id The_application_ID ^
     --name A_name_for_the_environment ^
     --description A_description_of_the_environment ^
     --monitors "AlarmArn=ARN_of_the_Amazon_CloudWatch_alarm,AlarmArnRole=ARN_of_the_IAM role_for_AWS AppConfig_to_monitor_AlarmArn" ^
     --tags User_defined_key_value_pair_metadata_of_the_environment
   ```

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

   ```
   New-APPCEnvironment `
     -Name Name_for_the_environment `
     -ApplicationId The_application_ID
     -Description Description_of_the_environment `
     -Monitors @{"AlarmArn=ARN_of_the_Amazon_CloudWatch_alarm,AlarmArnRole=ARN_of_the_IAM role_for_AWS AppConfig_to_monitor_AlarmArn"} `
     -Tag Hashtable_type_user_defined_key_value_pair_metadata_of_the_environment
   ```

------

   El sistema devuelve información similar a la siguiente.

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

   ```
   {
      "ApplicationId": "The application ID",
      "Id": "The_environment ID",
      "Name": "Name of the environment",
      "State": "The state of the environment",
      "Description": "Description of the environment",
      
      "Monitors": [ 
         { 
            "AlarmArn": "ARN of the Amazon CloudWatch alarm",
            "AlarmRoleArn": "ARN of the IAM role for AppConfig to monitor AlarmArn"
         }
      ]  
   }
   ```

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

   ```
   {
      "ApplicationId": "The application ID",
      "Id": "The environment ID",
      "Name": "Name of the environment",
      "State": "The state of the environment"
      "Description": "Description of the environment",
      
      "Monitors": [ 
         { 
            "AlarmArn": "ARN of the Amazon CloudWatch alarm",
            "AlarmRoleArn": "ARN of the IAM role for AppConfig to monitor AlarmArn"
         }
      ] 
   }
   ```

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

   ```
   ApplicationId     : The application ID
   ContentLength     : Runtime of the command
   Description       : Description of the environment
   HttpStatusCode    : HTTP Status of the runtime
   Id                : The environment ID
   Monitors          : {ARN of the Amazon CloudWatch alarm, ARN of the IAM role for AppConfig to monitor AlarmArn}
   Name              : Name of the environment
   Response Metadata : Runtime Metadata
   State             : State of the environment
   ```

------

Continúe en [Crear un perfil de configuración en AWS AppConfig](appconfig-creating-configuration-profile.md).

# Crear un perfil de configuración en AWS AppConfig
<a name="appconfig-creating-configuration-profile"></a>

Una *configuración de datos* es un conjunto de opciones que influyen en el comportamiento de la aplicación. Un *perfil de configuración* incluye, entre otras cosas, un URI que permite AWS AppConfig localizar los datos de configuración en la ubicación almacenada y un tipo de configuración. AWS AppConfig admite los siguientes tipos de perfiles de configuración:
+ **Indicadores de características**: puede utilizar los indicadores de características para habilitar o deshabilitar las funciones de sus aplicaciones o para configurar diferentes características de las funciones de las aplicaciones mediante los atributos de los indicadores. AWS AppConfig almacena las configuraciones de las marcas de características en el almacén de configuraciones AWS AppConfig hospedado en un formato de marcas de características que contiene datos y metadatos sobre las marcas y los atributos de las marcas. El URI para las configuraciones de las marcas de características es simplemente `hosted`. 
+ **Configuraciones de formato libre**: una configuración de formato libre puede almacenar datos en cualquiera de las siguientes herramientas Servicios de AWS y en las herramientas de Systems Manager:
  + AWS AppConfig almacén de configuración hospedado
  + Amazon Simple Storage Service
  + AWS CodePipeline
  + AWS Secrets Manager
  + AWS Systems Manager (SSM) Almacén de parámetros
  + Almacén de documentos de SSM

**nota**  
Si es posible, le recomendamos que aloje los datos de configuración en el almacén de configuración AWS AppConfig alojado, ya que es el que ofrece la mayoría de las funciones y mejoras.

Estos son algunos ejemplos de datos de configuración que le ayudarán a comprender mejor los distintos tipos de datos de configuración y cómo se pueden utilizar en una marca de característica o sin incluirlos en un perfil de configuración.

 **Datos de configuración de marcas de características** 

Los siguientes datos de configuración de marcas de características habilitan o deshabilitan los pagos móviles y los pagos predeterminados por región.

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

```
{
  "allow_mobile_payments": {
    "enabled": false
  },
  "default_payments_per_region": {
    "enabled": true
  }
}
```

------
#### [ YAML ]

```
---
allow_mobile_payments:
  enabled: false
default_payments_per_region:
  enabled: true
```

------

 **Datos de configuración de operación** 

Los siguientes datos configuración de formato libre imponen límites a la forma en que una aplicación procesa las solicitudes.

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

```
{
  "throttle-limits": {
    "enabled": "true",
    "throttles": [
      {
        "simultaneous_connections": 12
      },
      {
        "tps_maximum": 5000
      }
    ],
    "limit-background-tasks": [
      true
    ]
  }
}
```

------
#### [ YAML ]

```
---
throttle-limits:
  enabled: 'true'
  throttles:
  - simultaneous_connections: 12
  - tps_maximum: 5000
  limit-background-tasks:
  - true
```

------

 **Datos de configuración de lista de control de acceso** 

Los siguientes datos de configuración de formato libre de la lista de control de acceso especifican qué usuarios o grupos pueden acceder a una aplicación.

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

```
{
  "allow-list": {
    "enabled": "true",
    "cohorts": [
      {
        "internal_employees": true
      },
      {
        "beta_group": false
      },
      {
        "recent_new_customers": false
      },
      {
        "user_name": "Jane_Doe"
      },
      {
        "user_name": "John_Doe"
      }
    ]
  }
}
```

------
#### [ YAML ]

```
---
allow-list:
  enabled: 'true'
  cohorts:
  - internal_employees: true
  - beta_group: false
  - recent_new_customers: false
  - user_name: Jane_Doe
  - user_name: Ashok_Kumar
```

------

**Topics**
+ [Crear un perfil de configuración de indicadores de características en AWS AppConfig](appconfig-creating-configuration-and-profile-feature-flags.md)
+ [Crear un perfil de configuración de formato libre en AWS AppConfig](appconfig-free-form-configurations-creating.md)
+ [Creación de un perfil de configuración para orígenes de datos no nativos](appconfig-creating-configuration-profile-other-data-sources.md)

# Crear un perfil de configuración de indicadores de características en AWS AppConfig
<a name="appconfig-creating-configuration-and-profile-feature-flags"></a>

Puede utilizar los indicadores de características para activar o desactivar las funciones de sus aplicaciones o para configurar diferentes características de las funciones de las aplicaciones mediante los atributos de los indicadores. AWS AppConfig almacena las configuraciones de las marcas de características en el almacén de configuraciones AWS AppConfig hospedado en un formato de marcas de características que contiene datos y metadatos sobre las marcas y los atributos de las marcas.

**nota**  
Al crear un perfil de configuración de indicadores de características, puede crear un indicador de característica básico como parte del flujo de trabajo del perfil de configuración. AWS AppConfig también admite indicadores de características con múltiples variantes. *Las marcas de características con múltiples variantes* permiten definir un conjunto de posibles valores de marcas para devolverlos en una solicitud. Al solicitar una marca configurada con variantes, la aplicación proporciona un contexto que se AWS AppConfig evalúa en función de un conjunto de reglas definidas por el usuario. Según el contexto especificado en la solicitud y las reglas definidas para la variante, AWS AppConfig devuelve diferentes valores de indicador a la aplicación.  
Para crear marcas de características con múltiples variantes, cree primero un perfil de configuración y, a continuación, edite las marcas del perfil de configuración para añadir variantes. Para obtener más información, consulte [Creación de marcas de características con múltiples variantes](appconfig-creating-multi-variant-feature-flags.md).

**Topics**
+ [Descripción de los atributos de las marcas de características](#appconfig-creating-configuration-profile-feature-flag-attributes)
+ [Creación de un perfil de configuración de marcas de características (consola)](appconfig-creating-feature-flag-configuration-create-console.md)
+ [Creación de un perfil de configuración de marcas de características (línea de comandos)](appconfig-creating-feature-flag-configuration-commandline.md)
+ [Creación de marcas de características con múltiples variantes](appconfig-creating-multi-variant-feature-flags.md)
+ [Descripción de la referencia de tipo de AWS.AppConfig.FeatureFlags](appconfig-type-reference-feature-flags.md)
+ [Guardado de una versión de marca de características anterior en una versión nueva](appconfig-creating-configuration-profile-feature-flags-editing-version.md)

## Descripción de los atributos de las marcas de características
<a name="appconfig-creating-configuration-profile-feature-flag-attributes"></a>

Al crear un perfil de configuración de marca de características (o al crear una nueva marca en un perfil de configuración existente), puede especificar los atributos y las restricciones correspondientes de la marca. Un atributo es un campo que se asocia a la marca de características para expresar las propiedades relacionadas con la marca de características. Los atributos se envían a la aplicación con la clave de la marca y el valor `enable` o `disable` de la marca.

Las restricciones garantizan que no se implementen valores de atributo inesperados en la aplicación. En la siguiente imagen se muestra un ejemplo.

![\[Ejemplo de atributos de marca para una marca AWS AppConfig de entidad\]](http://docs.aws.amazon.com/es_es/appconfig/latest/userguide/images/appconfig-flag-attributes.png)


**nota**  
Tenga en cuenta la siguiente información sobre los atributos de marca.  
Para los nombres de atributos, la palabra “habilitado” es una palabra reservada. No se puede crear un atributo de marca de características denominado “habilitado”. No hay otras palabras reservadas.
Los atributos de una marca de características solo se incluyen en la respuesta `GetLatestConfiguration` si dicha marca está habilitada. 
Las claves de los atributos de una marca determinada deben ser únicas. 

AWS AppConfig admite los siguientes tipos de atributos de bandera y sus correspondientes restricciones.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/appconfig/latest/userguide/appconfig-creating-configuration-and-profile-feature-flags.html)

# Creación de un perfil de configuración de marcas de características (consola)
<a name="appconfig-creating-feature-flag-configuration-create-console"></a>

Utilice el siguiente procedimiento para crear un perfil de configuración de indicadores de AWS AppConfig función mediante la AWS AppConfig consola. A la vez que crea el perfil de configuración, también puede crear una marca de características básica. 

**Para crear un perfil de configuració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 **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 **Perfiles de configuración y marcas de características**, elija **Crear configuración**.

1. En la sección **Opciones de configuración**, elija **Marca de características**.

1. En la sección **Perfil de configuración**, en **Nombre del perfil de configuración**, introduzca un nombre.

1. (Opcional) Amplíe **Descripción** e introduzca una descripción.

1. (Opcional) Amplíe **Opciones adicionales** y complete lo siguiente, según sea necesario.

   1. En la lista de **cifrado**, elija una clave AWS Key Management Service (AWS KMS) de la lista. Esta clave gestionada por el cliente le permite cifrar las nuevas versiones de los datos de configuración en el almacén de configuración AWS AppConfig alojado. Para obtener más información sobre esta clave, consulte **AWS AppConfig admite claves administradas por el cliente** en [Seguridad en AWS AppConfig](appconfig-security.md).

   1. En la sección **Etiquetas**, seleccione **Agregar nueva etiqueta** y, a continuación, especifique una clave y un valor opcional. 

1. Elija **Siguiente**.

1. En la sección **Definición de marca de características**, en **Nombre de la marca**, introduzca un nombre.

1. En **Clave de marca**, introduzca un identificador de marca para distinguir las marcas del mismo perfil de configuración. Las marcas del mismo perfil de configuración no puede tener la misma clave. Una vez creada la marca, puede editar el nombre de la marca, pero no su clave. 

1. (Opcional) Amplíe **Descripción** e introduzca información sobre esta marca.

1. Seleccione **Este indicador es de corta duración** y, si lo desea, elija una fecha en la que se debe deshabilitar o eliminar el indicador. AWS AppConfig *no* desactiva la marca en la fecha de caducidad. 

1. (Opcional) En la sección **Atributos de la marca de características**, elija **Definir atributo**. Los atributos le permiten proporcionar valores adicionales dentro de su marca. Para obtener más información sobre los atributos y las restricciones, consulte [Descripción de los atributos de las marcas de características](appconfig-creating-configuration-and-profile-feature-flags.md#appconfig-creating-configuration-profile-feature-flag-attributes).

   1. En **Clave**, especifique una clave de marca y elija su tipo en la lista **Tipo**. Para obtener información sobre las opciones admitidas en los campos **Valor** y **Restricciones**, consulte la sección sobre los atributos a la que se ha hecho referencia anteriormente.

   1. Seleccione **Valor obligatorio** para especificar si se requiere un valor de atributo.

   1. Para añadir atributos adicionales, elija **Definir atributo**.

1. En la sección **Valor de la marca de características**, seleccione **Habilitado** para habilitar la marca. Use esta misma opción para deshabilitar una marca cuando alcance una fecha de baja especificada, si corresponde.

1. Elija **Siguiente**.

1. En la página **Revisar y guardar**, compruebe los detalles de la marca y, a continuación, elija **Guardar y continuar con la implementación**.

Continúe en [Implementación de indicadores de características y datos de configuración en AWS AppConfig](deploying-feature-flags.md).

# Creación de un perfil de configuración de marcas de características (línea de comandos)
<a name="appconfig-creating-feature-flag-configuration-commandline"></a>

El siguiente procedimiento describe cómo utilizar AWS Command Line Interface (en Linux o Windows) o las Herramientas para Windows PowerShell para crear un perfil de configuración de indicadores de AWS AppConfig características. A la vez que crea el perfil de configuración, también puede crear una marca de características básica.

**Cómo crear una configuración de una marca de características**

1. Abra el AWS CLI.

1. Cree un perfil de configuración de la marca de características especificando su **tipo** como `AWS.AppConfig.FeatureFlags`. El perfil de configuración debe usar `hosted` como URI de ubicación.

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

   ```
   aws appconfig create-configuration-profile \
     --application-id APPLICATION_ID \
     --name CONFIGURATION_PROFILE_NAME \
     --location-uri hosted \
     --type AWS.AppConfig.FeatureFlags
   ```

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

   ```
   aws appconfig create-configuration-profile ^
     --application-id APPLICATION_ID ^
     --name CONFIGURATION_PROFILE_NAME ^
     --location-uri hosted ^
     --type AWS.AppConfig.FeatureFlags
   ```

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

   ```
   New-APPCConfigurationProfile `
     -Name CONFIGURATION_PROFILE_NAME `
     -ApplicationId APPLICATION_ID `
     -LocationUri hosted `
     -Type AWS.AppConfig.FeatureFlags
   ```

------

1. Cree los datos de configuración de su marca de características. Los datos deben estar en formato JSON y ajustarse al esquema JSON de `AWS.AppConfig.FeatureFlags`. Para obtener más información acerca del nuevo esquema, consulte [Descripción de la referencia de tipo de AWS.AppConfig.FeatureFlags](appconfig-type-reference-feature-flags.md).

1. Utilice la API de `CreateHostedConfigurationVersion` para guardar los datos de configuración de su marca de características en AWS AppConfig.

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

   ```
   aws appconfig create-hosted-configuration-version \
     --application-id APPLICATION_ID \
     --configuration-profile-id CONFIGURATION_PROFILE_ID \
     --content-type "application/json" \
     --content file://path/to/feature_flag_configuration_data.json \
     --cli-binary-format raw-in-base64-out
   ```

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

   ```
   aws appconfig create-hosted-configuration-version ^
     --application-id APPLICATION_ID ^
     --configuration-profile-id CONFIGURATION_PROFILE_ID ^
     --content-type "application/json" ^
     --content file://path/to/feature_flag_configuration_data.json ^
     --cli-binary-format raw-in-base64-out
   ```

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

   ```
   New-APPCHostedConfigurationVersion `
     -ApplicationId APPLICATION_ID `
     -ConfigurationProfileId CONFIGURATION_PROFILE_ID `
     -ContentType "application/json" `
     -Content file://path/to/feature_flag_configuration_data.json
   ```

------

   El comando carga el contenido especificado para el parámetro `Content` desde el disco. El contenido debe ser similar al del siguiente ejemplo.

   ```
   {
       "flags": {
           "ui_refresh": {
               "name": "UI Refresh"
           }
       },
       "values": {
           "ui_refresh": {
               "enabled": false,
               "attributeValues": {
                   "dark_mode_support": true
               }
           }
       },
       "version": "1"
   }
   ```

   El sistema devuelve información similar a la siguiente.

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

   ```
   {
      "ApplicationId"          : "ui_refresh",
      "ConfigurationProfileId" : "UI Refresh",
      "VersionNumber"          : "1",
      "ContentType"            : "application/json"
   }
   ```

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

   ```
   {
      "ApplicationId"          : "ui_refresh",
      "ConfigurationProfileId" : "UI Refresh",
      "VersionNumber"          : "1",
      "ContentType"            : "application/json"
   }
   ```

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

   ```
   ApplicationId          : ui_refresh
   ConfigurationProfileId : UI Refresh
   VersionNumber          : 1
   ContentType            : application/json
   ```

------

   `service_returned_content_file`Contiene sus datos de configuración, que incluyen algunos metadatos AWS AppConfig generados.
**nota**  
Al crear la versión de configuración alojada, AWS AppConfig verifica que los datos se ajusten al esquema `AWS.AppConfig.FeatureFlags` JSON. AWS AppConfig además, valida que cada atributo del indicador de entidad de sus datos satisfaga las restricciones que ha definido para esos atributos.

# Creación de marcas de características con múltiples variantes
<a name="appconfig-creating-multi-variant-feature-flags"></a>

Las variantes de una marca de características permiten definir un conjunto de posibles valores de marcas para devolverlos en una solicitud. También puede configurar diferentes estados (habilitada o deshabilitada) para las marcas con múltiples variantes. Al solicitar un indicador configurado con variantes, la aplicación proporciona un contexto que se AWS AppConfig evalúa en función de un conjunto de reglas definidas por el usuario. Según el contexto especificado en la solicitud y las reglas definidas para la variante, AWS AppConfig devuelve diferentes valores de indicador a la aplicación.

En la siguiente captura de pantalla, se muestra un ejemplo de marca de características con tres variantes definidas por el usuario y la variante por defecto.

![\[Un ejemplo de captura de pantalla de una marca de características con variantes.\]](http://docs.aws.amazon.com/es_es/appconfig/latest/userguide/images/flag-variant-example.png)


**Topics**
+ [Descripción de los conceptos y casos de uso comunes de las marcas de características con múltiples variantes](appconfig-creating-multi-variant-feature-flags-concepts.md)
+ [Descripción de las reglas de marca de características con múltiples variantes](appconfig-creating-multi-variant-feature-flags-rules.md)
+ [Creación de una marca de características con múltiples variantes](appconfig-creating-multi-variant-feature-flags-procedures.md)

# Descripción de los conceptos y casos de uso comunes de las marcas de características con múltiples variantes
<a name="appconfig-creating-multi-variant-feature-flags-concepts"></a>

Para ayudarle a entender mejor las variantes de las marcas de características, en esta sección se explican los conceptos de las variantes de marca y los casos de uso más comunes.

**Conceptos**
+ **Indicador de función**: tipo de AWS AppConfig configuración que se utiliza para controlar el comportamiento de una función en una aplicación. Una marca tiene un estado (habilitado o deshabilitado) y un conjunto opcional de atributos que contienen valores arbitrarios de cadena, numéricos, booleanos o de matriz.
+ **Variante de marca de características**: combinación específica de valores de estado y atributo que pertenecen a una marca de características. Una marca de características puede tener varias variantes.
+ **Regla de variante**: expresión definida por el usuario que se utiliza para seleccionar una variante de una marca de características. Cada variante tiene su propia regla que AWS AppConfig evalúa si se debe devolver o no.
+ **Variante predeterminada**: una variante especial que se devuelve cuando no se selecciona ninguna otra variante. Todas las marcas de características con múltiples variantes tienen una variante predeterminada.

  Tenga en cuenta que la variante predeterminada debe ser la última de su orden de variantes y no puede tener reglas asociadas. Si no se define en último lugar, AWS AppConfig devuelve a `BadRequestException` cuando intentas crear la marca de variantes múltiples.
+ **Contexto**: claves y valores definidos por el usuario que se transfieren a AWS AppConfig en el momento de la recuperación de la configuración. Los valores de contexto se utilizan durante la evaluación de las reglas para seleccionar la variante de la marca de características que se va a devolver.

**nota**  
AWS AppConfig el agente evalúa las reglas de variantes y determina qué regla se aplica a la solicitud en función del contexto proporcionado. Para obtener más información sobre de la recuperación de marcas de características con múltiples variantes, consulte [Recuperación de marcas de características básicas y con múltiples variantes](appconfig-integration-retrieving-feature-flags.md).

**Casos de uso comunes**

En esta sección, se describen dos casos de uso comunes de las variantes de marcas de características.

*Segmentación de usuarios*

La segmentación de usuarios es el proceso de dividir a los usuarios en función de determinados atributos. Por ejemplo, puede usar variantes de marca para mostrar una característica a algunos usuarios, pero no a otros, en función de su ID de usuario, ubicación geográfica, tipo de dispositivo o frecuencia de compra.

Utilizando el ejemplo de la frecuencia de compra, supongamos que su aplicación de comercio admite una característica para aumentar la fidelidad de los clientes. Puede usar variantes de marca para configurar diferentes tipos de incentivos que se mostrarán a un usuario en función de la última vez que compró algo. A un nuevo usuario se le podría ofrecer un pequeño descuento para animarlo a convertirse en cliente, mientras que a un cliente habitual se le podría ofrecer un descuento mayor si compra algo de una nueva categoría.

*División de tráfico*

La división del tráfico es el proceso de seleccionar una variante de marca aleatoria pero coherente en función de un valor de contexto que usted defina. Por ejemplo, tal vez quiera realizar un experimento en el que un pequeño porcentaje de sus usuarios (identificados por su ID de usuario) vea una variante concreta. O bien, puede que desee implementar una característica de forma gradual, en la que una característica esté primero expuesta al 5 % de los usuarios, luego al 15 %, después al 40 % y, finalmente, al 100 %, manteniendo una experiencia de usuario coherente durante toda la implementación.

Usando el ejemplo de experimentación, podría utilizar variantes de marca para probar un nuevo estilo de botón para la acción principal en la página de inicio de la aplicación y comprobar si genera más clics. Para su experimento, podría crear una variante de marca con una regla de división del tráfico que seleccione al 5 % de los usuarios para ver el nuevo estilo, mientras que la variante predeterminada indicará los usuarios que deben seguir viendo el estilo existente. Si el experimento tiene éxito, puede aumentar el valor porcentual o incluso convertir esa variante en la predeterminada.

# Descripción de las reglas de marca de características con múltiples variantes
<a name="appconfig-creating-multi-variant-feature-flags-rules"></a>

Al crear una variante de marca de características, debe especificar una regla para ella. Las reglas son expresiones que toman valores de contexto como entrada y producen un resultado booleano como salida. Por ejemplo, puede definir una regla para seleccionar una variante de marca para los usuarios de la versión beta, identificados por su ID de cuenta, para probar una actualización de la interfaz de usuario. En esta situación, haga lo siguiente:

1. Cree un nuevo perfil de configuración de marca de características denominado *UI Refresh*.

1. Cree una nueva marca de características denominada *ui\$1refresh*.

1. Edite la marca de características después de crearla para añadir variantes.

1. Crea y habilita una nueva variante llamada *BetaUsers*.

1. Defina una regla para *BetaUsers*seleccionar la variante si el ID de cuenta del contexto de la solicitud aparece en una lista de cuentas IDs aprobadas para ver la nueva experiencia beta.

1. Confirme que el estado de la variante predeterminada sea **Deshabilitado**.

**nota**  
Las variantes se evalúan como una lista ordenada en función del orden en que están definidas en la consola. La variante que aparece en la parte superior de la lista se evalúa en primer lugar. Si ninguna regla coincide con el contexto proporcionado, AWS AppConfig devuelve la variante predeterminada.

Cuando AWS AppConfig procesa la solicitud de indicador de función, compara primero el contexto proporcionado, que incluye el AccountID (por ejemplo), con la variante. BetaUsers Si el contexto coincide con la regla BetaUsers, AWS AppConfig devuelve los datos de configuración de la experiencia beta. Si el contexto no incluye un identificador de cuenta o si el identificador de cuenta termina en un número distinto de 123, AWS AppConfig devuelve los datos de configuración de la regla predeterminada, lo que significa que el usuario ve la experiencia actual en producción.

**nota**  
Para obtener más información sobre de la recuperación de marcas de características con múltiples variantes, consulte [Recuperación de marcas de características básicas y con múltiples variantes](appconfig-integration-retrieving-feature-flags.md).

# Definición de reglas de marcas de características con múltiples variantes
<a name="appconfig-creating-multi-variant-feature-flags-rules-operators"></a>

Una regla de variante es una expresión compuesta por uno o más operandos y un operador. Un operando es un valor específico que se utiliza durante la evaluación de una regla. Los valores de los operandos pueden ser estáticos, como un número literal o una cadena, o variables, como el valor encontrado en un contexto o el resultado de otra expresión. Un operador, como mayor que, es una prueba o acción que se aplica a sus operandos y que produce un valor. Para que sea válida, una expresión de regla de variante debe mostrar un valor verdadero o falso.

**Operandos**


****  

| Tipo | Description (Descripción) | Ejemplo | 
| --- | --- | --- | 
|  Cadena  |  Secuencia de caracteres UTF-8 entre comillas dobles.  |  <pre>"apple", "Ḽơᶉëᶆ ȋṕšᶙṁ"</pre>  | 
|  Entero  |  Valor entero de 64 bits.  |  <pre>-7, 42 </pre>  | 
|  Flotante  |  Valor de coma flotante de 64 bits según la norma IEEE 754.  |  <pre>3.14, 1.234e-5</pre>  | 
|  Timestamp  |  Un momento específico en el tiempo, tal como se describe en los [formatos de fecha y hora de la notación W3C](https://www.w3.org/TR/NOTE-datetime).  |  <pre>2012-03-04T05:06:07-08:00, 2024-01</pre>  | 
|  Booleano  |  Valor verdadero o falso.  |  <pre>true, false</pre>  | 
|  Valor de contexto  |  Un valor parametrizado en forma de \$1 *key* que se recupera del contexto durante la evaluación de la regla.  |  <pre>$country, $userId</pre>  | 

**Operadores de comparación**


****  

| Operador | Description (Descripción) | Ejemplo | 
| --- | --- | --- | 
|  eq  |  Determina si un valor de contexto es igual a un valor dado.  |  <pre>(eq $state "Virginia")</pre>  | 
|  gt  |  Determina si un valor de contexto es mayor que un valor dado.  |  <pre>(gt $age 65)</pre>  | 
|  gte  |  Determina si un valor de contexto es mayor que un valor dado o igual a él.  |  <pre>(gte $age 65)</pre>  | 
|  lt  |  Determina si un valor de contexto es menor que un valor dado.  |  <pre>(lt $age 65)</pre>  | 
|  lte  |  Determina si un valor de contexto es menor que un valor dado o igual a él.  |  <pre>(lte $age 65)</pre>  | 

**Logical operators** (Operadores lógicos)


****  

| Operador | Description (Descripción) | Ejemplo | 
| --- | --- | --- | 
|  and  |  Determina si ambos operandos son verdaderos.  |  <pre>(and <br />    (eq $state "Virginia") <br />    (gt $age 65)<br />)</pre>  | 
|  o  |  Determina si al menos uno de los operandos es verdadero.  |  <pre>(or<br />    (eq $state "Virginia") <br />    (gt $age 65)<br />)</pre>  | 
|  not  |  Invierte el valor de una expresión.  |  <pre>(not (eq $state "Virginia"))</pre>  | 

**Operadores personalizados**


****  

| Operador | Description (Descripción) | Ejemplo | 
| --- | --- | --- | 
|  begins\$1with  |  Determina si un valor de contexto comienza con un prefijo determinado.  |  <pre>(begins_with $state "A")</pre>  | 
|  ends\$1with  |  Determina si un valor de contexto acaba con un prefijo determinado.  |  <pre>(ends_with $email "amazon.com")</pre>  | 
|  contains  |  Determina si un valor de contexto contiene una subcadena determinada.  |  <pre>(contains $promoCode "WIN")</pre>  | 
|  in  |  Determina si un valor de contexto está incluida en una lista de constantes.  |  <pre>(in $userId ["123", "456"])</pre>  | 
|  matches  |  Determina si un valor de contexto coincide con un patrón de expresiones regulares determinado.  |  <pre>(matches in::$greeting pattern::"h.*y")</pre>  | 
|  exists  |  Determina si se ha proporcionado algún valor para una clave de contexto.  |  <pre>(exists key::"country")</pre>  | 
|  dividir  |  Evalúa como `true` un porcentaje de tráfico determinado en función de un hash coherente de los valores de contexto proporcionados. Para obtener una explicación detallada sobre el funcionamiento de `split`, consulte la siguiente sección de este tema, [Descripción del operador de división](appconfig-creating-multi-variant-feature-flags-rules.md#appconfig-creating-multi-variant-feature-flags-rules-operators-split). Tenga en cuenta que `seed` es una propiedad opcional. Si no lo especifica `seed`, el hash es coherente a nivel *local*, lo que significa que el tráfico se dividirá de forma coherente para esa marca, pero otras marcas que reciban el mismo valor de contexto pueden dividir el tráfico de forma diferente. Si se proporciona `seed`, se garantiza que cada valor único dividirá el tráfico de forma coherente entre las marcas de características, los perfiles de configuración y las Cuentas de AWS.  |  <pre>(split pct::10 by::$userId seed::"abc")</pre>  | 

## Descripción del operador de división
<a name="appconfig-creating-multi-variant-feature-flags-rules-operators-split"></a>

En la siguiente sección se describe cómo se comporta el operador de `split` cuando se utiliza en diferentes escenarios. A modo de recordatorio, `split` evalúa como `true` un porcentaje de tráfico determinado en función de un hash coherente de los valores de contexto proporcionados. Para entenderlo mejor, considere el siguiente escenario de referencia, que utiliza la división con dos variantes:

```
A: (split by::$uniqueId pct::20)
C: <no rule>
```

Como cabe esperar, si se proporciona un conjunto de valores `uniqueId` aleatorio, se obtiene una distribución que es aproximadamente:

```
A: 20%
C: 80%
```

Si añade una tercera variante, pero utiliza el mismo porcentaje de división, de la siguiente manera:

```
A: (split by::$uniqueId pct::20)
B: (split by::$uniqueId pct::20)
C: <default>
```

Se obtiene la siguiente distribución:

```
A: 20%
B: 0%
C: 80%
```

Esta distribución, potencialmente inesperada, se obtiene porque cada regla de variante se evalúa en orden y la primera coincidencia determina la variante devuelta. Cuando se evalúa la regla A, el 20 % de los valores `uniqueId` coinciden con ella, por lo que se devuelve la primera variante. A continuación, se evalúa la regla B. Sin embargo, todos los valores `uniqueId` que habrían coincidido con la segunda instrucción de división ya coincidían con la regla A de variante, por lo que ningún valor coincide con la regla B. En su lugar, se devuelve la variante predeterminada.

Veamos ahora un tercer ejemplo.

```
A: (split by::$uniqueId pct::20)
B: (split by::$uniqueId pct::25)
C: <default>
```

Como en el ejemplo anterior, el primer 20 % de los valores `uniqueId` coinciden con la regla A. En el caso de la regla B de variante, el 25 % de todos los valores `uniqueId` coincidirían, pero la mayoría de los valores coincidieron previamente con la regla A. Eso deja un 5 % del total de los valores para la variante B y el resto recibirá la variante C. La distribución tendría el siguiente aspecto:

```
A: 20%
B: 5%
C: 75%
```

**Uso de la propiedad `seed`**  
Puede utilizar la propiedad `seed` para garantizar que el tráfico se divida de forma coherente para un valor de contexto determinado, independientemente de dónde se utilice el operador de división. Si no lo especifica `seed`, el hash es coherente a nivel *local*, lo que significa que el tráfico se dividirá de forma coherente para esa marca, pero otras marcas que reciban el mismo valor de contexto pueden dividir el tráfico de forma diferente. Si se proporciona `seed`, se garantiza que cada valor único dividirá el tráfico de forma coherente entre las marcas de características, los perfiles de configuración y las Cuentas de AWS.

Por lo general, los clientes utilizan el mismo valor `seed` en todas las variantes de una marca al dividir el tráfico en la misma propiedad de contexto. Sin embargo, en ocasiones puede tener sentido utilizar un valor de inicio diferente. Aquí se incluye un ejemplo que utiliza distintos valores de inicio para las reglas A y B:

```
A: (split by::$uniqueId pct::20 seed::"seed_one")
B: (split by::$uniqueId pct::25 seed::"seed_two")
C: <default>
```

Como en el ejemplo anterior, el 20 % de los valores `uniqueId` coincidentes coinciden con la regla A. Esto significa que el 80 % de los valores no coinciden y se comparan con la regla B de variante. Como el valor de inicio es diferente, no existe correlación entre los valores que coincidían con la regla A y los valores que coinciden con la regla B. Sin embargo, solo hay un 80 % de valores `uniqueId` para dividir, de modo que el 25 % de ese número coincide con la regla B y el 75 % no. Esto da lugar a la siguiente distribución:

```
A: 20%
B: 20% (25% of what falls through from A, or 25% of 80%) 
C: 60%
```

# Creación de una marca de características con múltiples variantes
<a name="appconfig-creating-multi-variant-feature-flags-procedures"></a>

Utilice los procedimientos de esta sección para crear variantes de una marca de características.

**Antes de empezar**  
Tenga en cuenta la siguiente información importante.
+ Puede crear variantes de marcas de características existentes editándolas. No puede crear variantes de una nueva marca de características *al crear un nuevo perfil de configuración*. Primero debe completar el flujo de trabajo de creación del nuevo perfil de configuración. Tras crear el perfil de configuración, puede añadir variantes a cualquier marca del perfil de configuración. Para obtener información acerca de cómo crear un nuevo perfil de configuración, consulte [Crear un perfil de configuración de indicadores de características en AWS AppConfig](appconfig-creating-configuration-and-profile-feature-flags.md).
+ Para recuperar datos de variantes de indicadores de características para las plataformas informáticas Amazon EC2, Amazon ECS y Amazon EKS, debe usar la versión 2.0.4416 o posterior del AWS AppConfig agente.
+ Por motivos de rendimiento, AWS CLI y el SDK exige AWS AppConfig no recuperar datos de variantes. Para obtener más información sobre AWS AppConfig Agent, consulte[Cómo usar el AWS AppConfig agente para recuperar los datos de configuración](appconfig-agent-how-to-use.md).
+ Al crear una variante de marca de características, debe especificar una regla para ella. Las reglas son expresiones que toman el contexto de la solicitud como entrada y producen un resultado booleano como salida. Antes de crear variantes, revise los operandos y operadores admitidos para las reglas de variantes de marca. Puede crear reglas antes de crear variantes. Para obtener más información, consulte [Descripción de las reglas de marca de características con múltiples variantes](appconfig-creating-multi-variant-feature-flags-rules.md).

**Topics**
+ [Creación de una marca de características con múltiples variantes (consola)](#appconfig-creating-multi-variant-feature-flags-procedures-console)
+ [Creación de una marca de características con múltiples variantes (línea de comandos)](#appconfig-creating-multi-variant-feature-flags-procedures-commandline)

## Creación de una marca de características con múltiples variantes (consola)
<a name="appconfig-creating-multi-variant-feature-flags-procedures-console"></a>

El siguiente procedimiento describe cómo crear un indicador de función con varias variantes para un perfil de configuración existente mediante la AWS AppConfig consola. También puede editar marcas de características existentes para crear variantes.

**Cómo crear una marca de características con múltiples variantes**

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.

1. En la pestaña **Perfiles de configuración y marcas de características**, elija un perfil de configuración de marca de características existente.

1. En la sección **Marcas**, elija **Agregar nueva marca**.

1. En la sección **Definición de marca de características**, en **Nombre de la marca**, introduzca un nombre.

1. En **Clave de marca**, introduzca un identificador de marca para distinguir las marcas del mismo perfil de configuración. Las marcas del mismo perfil de configuración no puede tener la misma clave. Una vez creada la marca, puede editar el nombre de la marca, pero no su clave. 

1. (Opcional) En el campo **Descripción**, introduzca información sobre esta marca.

1. En la sección **Variantes**, seleccione **Marca multivariante**.

1. (Opcional) En la sección **Atributos de la marca de características**, elija **Definir atributo**. Los atributos le permiten proporcionar valores adicionales dentro de su marca. Para obtener más información sobre los atributos y las restricciones, consulte [Descripción de los atributos de las marcas de características](appconfig-creating-configuration-and-profile-feature-flags.md#appconfig-creating-configuration-profile-feature-flag-attributes).

   1. En **Clave**, especifique una clave de marca y elija su tipo en la lista **Tipo**. Para obtener información sobre las opciones admitidas en los campos **Valor** y **Restricciones**, consulte la sección sobre los atributos a la que se ha hecho referencia anteriormente.

   1. Seleccione **Valor obligatorio** para especificar si se requiere un valor de atributo.

   1. Para añadir atributos adicionales, elija **Definir atributo**.

   1. Seleccione **Aplicar** para guardar los cambios en los atributos.

1. En la sección **Variantes de la marca de características**, seleccione **Crear variante**.

   1. En **Nombre de la variante**, introduzca un nombre.

   1. Use la opción **Valor activado** para habilitar la variante.

   1. En el cuadro de texto **Regla**, introduzca una regla.

   1. Use las opciones **Crear variante** > **Crear variante arriba** o **Crea una variante a continuación** para crear variantes adicionales para esta marca. 

   1. En la sección **Variante predeterminada**, use la opción **Valor activado** para habilitar la variante predeterminada. Si lo desea, proporcione valores para los atributos definidos en el paso 10.

   1. Seleccione **Aplicar**.

1. Compruebe los detalles de la marca y sus variantes, y elija **Crear marca**.

Para obtener información sobre cómo implementar su nueva marca de características con variantes, consulte [Implementación de indicadores de características y datos de configuración en AWS AppConfig](deploying-feature-flags.md).

## Creación de una marca de características con múltiples variantes (línea de comandos)
<a name="appconfig-creating-multi-variant-feature-flags-procedures-commandline"></a>

El siguiente procedimiento describe cómo utilizar AWS Command Line Interface (en Linux o Windows) o las Herramientas para Windows PowerShell para crear un indicador de función con varias variantes para un perfil de configuración existente. También puede editar marcas de características existentes para crear variantes.

**Antes de empezar**  
Complete las siguientes tareas antes de crear una marca de características con múltiples variantes utilizando AWS CLI.
+ Cree un perfil de configuración de marca de características. Para obtener más información, consulte [Crear un perfil de configuración de indicadores de características en AWS AppConfig](appconfig-creating-configuration-and-profile-feature-flags.md).
+ Actualice a la versión de AWS CLI más reciente. Para obtener más información, consulte [Instalación o actualización a la última versión de AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) en la *Guía del usuario de la AWS Command Line Interface *.

**Cómo crear una marca de características con múltiples variantes**

1. Cree un archivo de configuración en su equipo local que especifique los detalles de la marca con múltiples variantes que desea crear. Guarde el archivo con una extensión de archivo `.json`. El archivo debe cumplir con el esquema JSON de [https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html). El contenido del esquema del archivo de configuración será similar al siguiente.

   ```
   {
     "flags": {
       "FLAG_NAME": {
         "attributes": {
             "ATTRIBUTE_NAME": {
             "constraints": {
               "type": "CONSTRAINT_TYPE"
             }
           }
         },
         "description": "FLAG_DESCRIPTION",
         "name": "VARIANT_NAME"
       }
     },
     "values": {
       "VARIANT_VALUE_NAME": {
         "_variants": [
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           },
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           },
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           },
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           }
         ]
       }
     },
     "version": "VERSION_NUMBER"
   }
   ```

   A continuación, se muestra un ejemplo con tres variantes y la variante predeterminada.

   ```
   {
     "flags": {
       "ui_refresh": {
         "attributes": {
           "dark_mode_support": {
             "constraints": {
               "type": "boolean"
             }
           }
         },
         "description": "A release flag used to release a new UI",
         "name": "UI Refresh"
       }
     },
     "values": {
       "ui_refresh": {
         "_variants": [
           {
             "attributeValues": {
               "dark_mode_support": true
             },
             "enabled": true,
             "name": "QA",
             "rule": "(ends_with $email \"qa-testers.mycompany.com\")"
           },
           {
             "attributeValues": {
               "dark_mode_support": true
             },
             "enabled": true,
             "name": "Beta Testers",
             "rule": "(exists key::\"opted_in_to_beta\")"
           },
           {
             "attributeValues": {
               "dark_mode_support": false
             },
             "enabled": true,
             "name": "Sample Population",
             "rule": "(split pct::10 by::$email)"
           },
           {
             "attributeValues": {
               "dark_mode_support": false
             },
             "enabled": false,
             "name": "Default Variant"
           }
         ]
       }
     },
     "version": "1"
   }
   ```

1. Utilice la API de `CreateHostedConfigurationVersion` para guardar los datos de configuración de su marca de características en AWS AppConfig.

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

   ```
   aws appconfig create-hosted-configuration-version \
     --application-id APPLICATION_ID \
     --configuration-profile-id CONFIGURATION_PROFILE_ID \
     --content-type "application/json" \
     --content file://path/to/feature_flag_configuration_data.json \
     --cli-binary-format raw-in-base64-out \
     outfile
   ```

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

   ```
   aws appconfig create-hosted-configuration-version ^
     --application-id APPLICATION_ID ^
     --configuration-profile-id CONFIGURATION_PROFILE_ID ^
     --content-type "application/json" ^
     --content file://path/to/feature_flag_configuration_data.json ^
     --cli-binary-format raw-in-base64-out ^
     outfile
   ```

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

   ```
   New-APPCHostedConfigurationVersion `
     -ApplicationId APPLICATION_ID `
     -ConfigurationProfileId CONFIGURATION_PROFILE_ID `
     -ContentType "application/json" `
     -Content file://path/to/feature_flag_configuration_data.json `
     -Raw
   ```

------

   `service_returned_content_file`Contiene los datos de configuración, que incluyen algunos metadatos AWS AppConfig generados.
**nota**  
Al crear la versión de configuración alojada, AWS AppConfig verifica que los datos se ajusten al esquema [https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html)JSON. AWS AppConfig además, valida que cada atributo del indicador de entidad de sus datos satisfaga las restricciones que ha definido para esos atributos.

# Descripción de la referencia de tipo de AWS.AppConfig.FeatureFlags
<a name="appconfig-type-reference-feature-flags"></a>

Utilice el esquema JSON de `AWS.AppConfig.FeatureFlags` como referencia para crear los datos de configuración de su marca de características.

```
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "flagSetDefinition": {
      "type": "object",
      "properties": {
        "version": {
          "$ref": "#/definitions/flagSchemaVersions"
        },
        "flags": {
          "$ref": "#/definitions/flagDefinitions"
        },
        "values": {
          "$ref": "#/definitions/flagValues"
        }
      },
      "required": ["version"],
      "additionalProperties": false
    },
    "flagDefinitions": {
      "type": "object",
      "patternProperties": {
        "^[a-z][a-zA-Z\\d_-]{0,63}$": {
          "$ref": "#/definitions/flagDefinition"
        }
      },
      "additionalProperties": false
    },
    "flagDefinition": {
      "type": "object",
      "properties": {
        "name": {
          "$ref": "#/definitions/customerDefinedName"
        },
        "description": {
          "$ref": "#/definitions/customerDefinedDescription"
        },
        "_createdAt": {
          "type": "string"
        },
        "_updatedAt": {
          "type": "string"
        },
        "_deprecation": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": ["planned"]
            },
            "date": {
              "type": "string",
              "format": "date"
            }
          },
         "additionalProperties": false
        },
        "attributes": {
          "$ref": "#/definitions/attributeDefinitions"
        }
      },
      "additionalProperties": false
    },
    "attributeDefinitions": {
      "type": "object",
      "patternProperties": {
        "^[a-z][a-zA-Z\\d_-]{0,63}$": {
          "$ref": "#/definitions/attributeDefinition"
        }
      },
      "maxProperties": 25,
      "additionalProperties": false
    },
    "attributeDefinition": {
      "type": "object",
      "properties": {
        "description": {
          "$ref": "#/definitions/customerDefinedDescription"
        },
        "constraints": {
          "oneOf": [
            { "$ref": "#/definitions/numberConstraints" },
            { "$ref": "#/definitions/stringConstraints" },
            { "$ref": "#/definitions/arrayConstraints" },
            { "$ref": "#/definitions/boolConstraints" }
          ]
        }
      },
      "additionalProperties": false
    },
    "flagValues": {
      "type": "object",
      "patternProperties": {
        "^[a-z][a-zA-Z\\d_-]{0,63}$": {
          "$ref": "#/definitions/flagValue"
        }
      },
      "additionalProperties": false
    },
    "flagValue": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "_createdAt": {
          "type": "string"
        },
        "_updatedAt": {
          "type": "string"
        },
        "_variants": {
          "type": "array",
          "maxLength": 32,
          "items": {
            "$ref": "#/definitions/variant"
          }
        }
      },
      "patternProperties": {
        "^[a-z][a-zA-Z\\d_-]{0,63}$": {
          "$ref": "#/definitions/attributeValue",
          "maxProperties": 25
        }
      },
      "additionalProperties": false
    },
    "attributeValue": {
      "oneOf": [
        { "type": "string", "maxLength": 1024 },
        { "type": "number" },
        { "type": "boolean" },
        {
          "type": "array",
          "oneOf": [
            {
              "items": {
                "type": "string",
                "maxLength": 1024
              }
            },
            {
              "items": {
                "type": "number"
              }
            }
          ]
        }
      ],
      "additionalProperties": false
    },
    "stringConstraints": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["string"]
        },
        "required": {
          "type": "boolean"
        },
        "pattern": {
          "type": "string",
          "maxLength": 1024
        },
        "enum": {
          "type": "array",
          "maxLength": 100,
          "items": {
            "oneOf": [
              {
                "type": "string",
                "maxLength": 1024
              },
              {
                "type": "integer"
              }
            ]
          }
        }
      },
      "required": ["type"],
      "not": {
        "required": ["pattern", "enum"]
      },
      "additionalProperties": false
    },
    "numberConstraints": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["number"]
        },
        "required": {
          "type": "boolean"
        },
        "minimum": {
          "type": "integer"
        },
        "maximum": {
          "type": "integer"
        }
      },
      "required": ["type"],
      "additionalProperties": false
    },
    "arrayConstraints": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["array"]
        },
        "required": {
          "type": "boolean"
        },
        "elements": {
          "$ref": "#/definitions/elementConstraints"
        }
      },
      "required": ["type"],
      "additionalProperties": false
    },
    "boolConstraints": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["boolean"]
        },
        "required": {
          "type": "boolean"
        }
      },
      "required": ["type"],
      "additionalProperties": false
    },
    "elementConstraints": {
      "oneOf": [
        { "$ref": "#/definitions/numberConstraints" },
        { "$ref": "#/definitions/stringConstraints" }
      ]
    },
    "variant": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "name": {
          "$ref": "#/definitions/customerDefinedName"
        },
        "rule": {
          "type": "string",
          "maxLength": 16384
        },
        "attributeValues": {
          "type": "object", 
          "patternProperties": {
            "^[a-z][a-zA-Z\\d_-]{0,63}$": {
              "$ref": "#/definitions/attributeValue"
            }
          },
          "maxProperties": 25,
          "additionalProperties": false
        }
      },
      "required": ["name", "enabled"],
      "additionalProperties": false
    },
    "customerDefinedName": {
      "type": "string",
      "pattern": "^[^\\n]{1,64}$"
    },
    "customerDefinedDescription": {
      "type": "string",
      "maxLength": 1024
    },
    "flagSchemaVersions": {
      "type": "string",
      "enum": ["1"]
    }
  },
  "type": "object",
  "$ref": "#/definitions/flagSetDefinition",
  "additionalProperties": false
}
```

**importante**  
Para recuperar los datos de configuración de las marcas de características, su aplicación debe llamar a la API `GetLatestConfiguration`. No puede recuperar los datos de configuración de las marcas de características mediante una llamada a `GetConfiguration`, lo cual está obsoleto. Para obtener más información, consulta [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_GetLatestConfiguration.html) en la *AWS AppConfig Referencia de la API de *.

Cuando la aplicación llama [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_GetLatestConfiguration.html)y recibe una configuración recién implementada, se elimina la información que define los indicadores y atributos de las características. El JSON simplificado contiene un mapa de claves que coinciden con cada una de las claves de marca que especificó. El JSON simplificado también contiene valores asignados de `true` o `false` para el atributo `enabled`. Si una marca establece `enabled` en `true`, también estará presente cualquier atributo de la marca. El siguiente esquema JSON describe el formato de la salida JSON.

```
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "patternProperties": {
    "^[a-z][a-zA-Z\\d_-]{0,63}$": {
      "$ref": "#/definitions/attributeValuesMap"
    }
  },
  "additionalProperties": false,
  "definitions": {
    "attributeValuesMap": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      },
      "required": ["enabled"],
      "patternProperties": {
        "^[a-z][a-zA-Z\\d_-]{0,63}$": {
          "$ref": "#/definitions/attributeValue"
        }
      },
      "maxProperties": 25,
      "additionalProperties": false
    },
    "attributeValue": {
      "oneOf": [
        { "type": "string","maxLength": 1024 },
        { "type": "number" },
        { "type": "boolean" },
        {
          "type": "array",
          "oneOf": [
            {
              "items": {
                "oneOf": [
                  {
                    "type": "string",
                    "maxLength": 1024
                  }
                ]
              }
            },
            {
              "items": {
                "oneOf": [
                  {
                    "type": "number"
                  }
                ]
              }
            }
          ]
        }
      ],
      "additionalProperties": false
    }
  }
}
```

# Guardado de una versión de marca de características anterior en una versión nueva
<a name="appconfig-creating-configuration-profile-feature-flags-editing-version"></a>

Al actualizar un indicador de función, guarda AWS AppConfig automáticamente los cambios en una nueva versión. Si desea utilizar una versión de marca de características anterior, debe copiarla en una versión preliminar y, a continuación, guardarla. No puede editar ni guardar los cambios de una versión de marca de características anterior sin guardarlos en una versión nueva. 

**Para editar una versión de marca de características anterior y guardarla en una versión nueva**

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 **Aplicaciones** y, a continuación, elija la aplicación con la marca de características que desea editar y guardar en una versión nueva.

1. En la pestaña **Perfiles de configuración y marcas de características**, elija el perfil de configuración con la marca de características que desea editar y guárdelo en una versión nueva.

1. En la pestaña **Marcas de características**, use la lista **Versión** para elegir la versión que desea editar y guardar en una versión nueva.

1. Seleccione **Copiar en versión preliminar**.

1. En el campo **Etiqueta de la versión**, introduzca una etiqueta nueva (opcional, pero recomendable).

1. En el campo **Descripción de la versión**, introduzca una descripción nueva (opcional, pero recomendable).

1. Seleccione **Guardar versión**.

1. Seleccione **Iniciar implementación** para implementar la nueva versión.

# Crear un perfil de configuración de formato libre en AWS AppConfig
<a name="appconfig-free-form-configurations-creating"></a>

Una *configuración de datos* es un conjunto de opciones que influyen en el comportamiento de la aplicación. Un *perfil de configuración* incluye, entre otras cosas, un URI que permite AWS AppConfig localizar los datos de configuración en la ubicación almacenada y un tipo de configuración. Con los perfiles de configuración de formato libre, puede almacenar sus datos en el almacén de configuración AWS AppConfig hospedado o en cualquiera de las siguientes herramientas Servicios de AWS y en las herramientas de Systems Manager:


****  

| Ubicación | Tipos de archivo admitidos | 
| --- | --- | 
|  AWS AppConfig almacén de configuración hospedado  |  YAML, JSON y texto si se agregan con. Consola de administración de AWS Cualquier tipo de archivo si se añade mediante la acción de la AWS AppConfig [CreateHostedConfigurationVersion](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateHostedConfigurationVersion.html)API.  | 
|  [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)  |  Cualquiera  | 
|  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)  |  Canalización (según la define el servicio)  | 
|  [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)  |  Secreto (según lo define el servicio)  | 
|  [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)  |  Parámetros de cadena estándar y segura (tal como los define almacén de parámetros)  | 
|  [AWS Systems Manager almacén de documentos (documentos SSM)](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents.html)  |  YAML, JSON, texto  | 

Un perfil de configuración también puede incluir validadores opcionales para garantizar que los datos de configuración sean correctos desde el punto de vista sintáctico y semántico. AWS AppConfig realiza una comprobación mediante los validadores al iniciar una implementación. Si se detecta algún error, la implementación se detiene antes de realizar cambios en los destinos de la configuración.

**nota**  
Si es posible, le recomendamos que aloje los datos de configuración en el almacén de configuración AWS AppConfig alojado, ya que es el que ofrece la mayoría de las funciones y mejoras.

Para las configuraciones de formato libre almacenadas en el almacén de configuraciones AWS AppConfig hospedado o en documentos SSM, puede crear la configuración de formato libre mediante la consola de Systems Manager al crear un perfil de configuración. El proceso se describe más adelante en este tema. 

Para las configuraciones de formato libre almacenadas en el almacén de parámetros, Secrets Manager o Amazon S3, primero debe crear el parámetro, el secreto o el objeto y almacenarlo en el almacén de configuración correspondiente. Después de almacenar los datos de configuración, utilice el procedimiento de este tema para crear el perfil de configuración.

**Topics**
+ [Descripción de los validadores](appconfig-creating-configuration-and-profile-validators.md)
+ [Descripción de las cuotas y limitaciones de los almacenes de configuración](appconfig-creating-configuration-and-profile-quotas.md)
+ [Descripción del almacén de configuración AWS AppConfig alojado](appconfig-creating-configuration-and-profile-about-hosted-store.md)
+ [Descripción de las configuraciones almacenadas en Amazon S3](appconfig-creating-configuration-and-profile-S3-source.md)
+ [Creación de un perfil de configuración AWS AppConfig de formato libre (consola)](appconfig-creating-free-form-configuration-and-profile-create-console.md)
+ [Creación de un perfil de configuración de AWS AppConfig formato libre (línea de comandos)](appconfig-creating-free-form-configuration-and-profile-create-commandline.md)

# Descripción de los validadores
<a name="appconfig-creating-configuration-and-profile-validators"></a>

Cuando crea un perfil de configuración, puede especificar hasta dos validadores. Un validador garantiza que los datos de configuración sean sintáctica y semánticamente correctos. Si piensa utilizar un validador, debe crearlo antes de crear el perfil de configuración. AWS AppConfig admite los siguientes tipos de validadores:
+ **AWS Lambda funciones**: compatible con indicadores de características y configuraciones de formato libre.
+ **Esquema JSON**: compatible con configuraciones de formulario libre. (valida AWS AppConfig automáticamente los indicadores de funciones comparándolos con un esquema JSON).

**Topics**
+ [AWS Lambda validadores de funciones](#appconfig-creating-configuration-and-profile-validators-lambda)
+ [Validadores de esquemas JSON](#appconfig-creating-configuration-and-profile-validators-json-schema)

## AWS Lambda validadores de funciones
<a name="appconfig-creating-configuration-and-profile-validators-lambda"></a>

Los validadores de funciones de Lambda deben configurarse con el siguiente esquema de eventos. AWS AppConfig utiliza este esquema para invocar la función de Lambda. El contenido es una cadena codificada en base64 y el URI es una cadena. 

```
{
    "applicationId": "The application ID of the configuration profile being validated", 
    "configurationProfileId": "The ID of the configuration profile being validated",
    "configurationVersion": "The version of the configuration profile being validated",
    "content": "Base64EncodedByteString", 
    "uri": "The configuration uri"    
}
```

AWS AppConfig verifica que el encabezado `X-Amz-Function-Error` Lambda esté establecido en la respuesta. Lambda establece este encabezado si la función arroja una excepción. Para obtener más información acerca de `X-Amz-Function-Error`, consulte [Tratamiento de errores y reintentos automáticos en AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html) en la * Guía del desarrollador de AWS Lambda *.

Aquí se incluye un ejemplo simple de un código de respuesta de Lambda para una validación satisfactoria.

```
import json

def handler(event, context):
     #Add your validation logic here
     print("We passed!")
```

Aquí se incluye un ejemplo simple de un código de respuesta de Lambda para una validación incorrecta.

```
def handler(event, context):
     #Add your validation logic here
     raise Exception("Failure!")
```

Aquí hay otro ejemplo que se valida solo si el parámetro de configuración es un número primo.

```
function isPrime(value) {
    if (value < 2) {
        return false;
    }

    for (i = 2; i < value; i++) {
        if (value % i === 0) {
            return false;
        }
    }

    return true;
}

exports.handler = async function(event, context) {
    console.log('EVENT: ' + JSON.stringify(event, null, 2));
    const input = parseInt(Buffer.from(event.content, 'base64').toString('ascii'));
    const prime = isPrime(input);
    console.log('RESULT: ' + input + (prime ? ' is' : ' is not') + ' prime');
    if (!prime) {
        throw input + "is not prime";
    }
}
```

AWS AppConfig llama a su Lambda de validación al llamar a las operaciones `StartDeployment` y `ValidateConfigurationActivity` API. Debe proporcionar permisos de `appconfig.amazonaws.com` para invocar su Lambda. Para obtener más información, consulte Cómo [conceder acceso a las funciones a los AWS servicios](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-serviceinvoke). AWS AppConfig limita el tiempo de ejecución de la validación de Lambda a 15 segundos, incluida la latencia de inicio.

## Validadores de esquemas JSON
<a name="appconfig-creating-configuration-and-profile-validators-json-schema"></a>

Si crea una configuración en un documento SSM, debe especificar o crear un esquema JSON para esa configuración. Un esquema JSON define las propiedades permitidas para cada ajuste de configuración de la aplicación. Este esquema JSON funciona como un conjunto de reglas para garantizar que los ajustes de configuración nuevos o actualizados se ajusten a las prácticas recomendadas requeridas por su aplicación. A continuación se muestra un ejemplo. 

```
    {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "$id$",
      "description": "BasicFeatureToggle-1",
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
          "[^\\s]+$": {
              "type": "boolean"
          }
      },
      "minProperties": 1
    }
```

Al crear una configuración a partir de un documento SSM, el sistema verifica automáticamente que la configuración se ajusta a los requisitos del esquema. Si no es así, AWS AppConfig devuelve un error de validación.

**importante**  
Tenga en cuenta la siguiente información importante sobre los validadores de esquemas JSON:  
Los datos de configuración almacenados en documentos de SSM deben validarse con un esquema JSON asociado para poder agregar la configuración al sistema. Los parámetros de SSM no requieren un método de validación, pero le recomendamos que cree una comprobación de validación para las configuraciones de parámetros de SSM nuevas o actualizadas mediante este método. AWS Lambda
La configuración de un documento SSM utiliza el tipo de documento `ApplicationConfiguration`. El esquema JSON correspondiente utiliza el tipo de documento `ApplicationConfigurationSchema`.
AWS AppConfig es compatible con la versión 4.X de JSON Schema para esquemas en línea. Si la configuración de la aplicación requiere una versión diferente de JSON Schema, debe crear un validador de Lambda.

# Descripción de las cuotas y limitaciones de los almacenes de configuración
<a name="appconfig-creating-configuration-and-profile-quotas"></a>

Los almacenes de configuración compatibles AWS AppConfig tienen las siguientes cuotas y limitaciones.


****  

|  | AWS AppConfig almacén de configuración alojado | Amazon S3 | Almacén de parámetros de Systems Manager | AWS Secrets Manager | Almacén de documentos de Systems Manager | AWS CodePipeline | 
| --- | --- | --- | --- | --- | --- | --- | 
|  **Límite de tamaño de la configuración**  | 2 MB por defecto, 4 MB como máximo |  2 MB Impuesto por S3 AWS AppConfig, no  |  4 KB (capa gratuita)/8 KB (parámetros avanzados)  | 64 KB |  64 KB  | 2 MBImpuesto por AWS AppConfig, no CodePipeline | 
|  **Límite de almacenamiento de recursos**  | 1 GB |  Sin límite  |  10 000 parámetros (capa gratuita)/100 000 parámetros (parámetros avanzados)  | 500.000 |  500 documentos  | Limitado por el número de perfiles de configuración por aplicación (100 perfiles por aplicación) | 
|  **Cifrado en el servidor**  | Sí |  [SSE-S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html), [SSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)  |  Sí  | Sí |  No  | Sí | 
|  **CloudFormation apoyo**  | Sí |  No para crear ni actualizar datos  |  Sí  | Sí |  No  | Sí | 
|  **Precios**  | Free |  Consulte [Precios de Amazon S3](https://aws.amazon.com//s3/pricing/)  |  Consulte [Precios de AWS Systems Manager](https://aws.amazon.com//systems-manager/pricing/)  | Consulte [Precios de AWS Secrets Manager](https://aws.amazon.com//secrets-manager/pricing/) |  Free  |  Consulte [Precios de AWS CodePipeline](https://aws.amazon.com//codepipeline/pricing/)  | 

# Descripción del almacén de configuración AWS AppConfig alojado
<a name="appconfig-creating-configuration-and-profile-about-hosted-store"></a>

AWS AppConfig incluye un almacén de configuración interno o alojado. Las configuraciones deben ser de 2 MB o menos. El almacén de configuración AWS AppConfig hospedado ofrece las siguientes ventajas en comparación con otras opciones de almacén de configuración. 
+ No es necesario configurar y configurar otros servicios, como Amazon Simple Storage Service (Amazon S3) o Parameter Store.
+ No necesita configurar los permisos AWS Identity and Access Management (IAM) para usar el almacén de configuración.
+ Puede almacenar configuraciones en YAML, JSON o como documentos de texto.
+ Usar el almacén no supone costo alguno.
+ Puede crear una configuración y agregarla al almacén cuando cree un perfil de configuración.

# Descripción de las configuraciones almacenadas en Amazon S3
<a name="appconfig-creating-configuration-and-profile-S3-source"></a>

Puede almacenar configuraciones en un bucket de Amazon Simple Storage Service (Amazon S3). Cuando se crea el perfil de configuración, se especifica el URI de un objeto único de S3 que se encuentra en un bucket. También debe especificar el nombre de recurso de Amazon (ARN) de un rol AWS Identity and Access Management (IAM) que da AWS AppConfig permiso para obtener el objeto. Antes de crear un perfil de configuración para un objeto de Amazon S3, tenga en cuenta las siguientes restricciones.


****  

| Restricción | Details | 
| --- | --- | 
|  Tamaño  |  Las configuraciones almacenadas como objetos de S3 pueden tener un tamaño máximo de 1 MB.  | 
|  Cifrado del objeto  |  Un perfil de configuración puede dirigirse a objetos cifrados en SSE-S3 y SSE-KMS.  | 
|  Clases de almacenamiento  |  AWS AppConfig admite las siguientes clases de almacenamiento de S3:`STANDARD`, `INTELLIGENT_TIERING` `REDUCED_REDUNDANCY``STANDARD_IA`, y. `ONEZONE_IA` No se admiten las siguientes clases: todas las clases Glacier de S3 (`DEEP_ARCHIVE` y `GLACIER`).  | 
|  Control de versiones  |  AWS AppConfig requiere que el objeto S3 utilice el control de versiones.  | 

## Configuración de permisos para una configuración almacenada como un objeto de Amazon S3
<a name="appconfig-creating-configuration-and-profile-S3-source-permissions"></a>

Al crear un perfil de configuración para una configuración almacenada como un objeto S3, debe especificar un ARN para una función de IAM que dé AWS AppConfig permiso para obtener el objeto. El rol debe incluir los permisos siguientes:

Permisos para acceder al objeto de S3
+ s3: GetObject
+ s3: GetObjectVersion

Permisos para mostrar los buckets de S3

s3: ListAllMyBuckets

Permisos para acceder al bucket de S3 donde se almacena el objeto
+ s3: GetBucketLocation
+ s3: GetBucketVersioning
+ s3: ListBucket
+ s3: ListBucketVersions

Complete el siguiente procedimiento para crear un rol que AWS AppConfig permita almacenar una configuración en un objeto S3.

**Creación de la política de IAM para acceder a un objeto de S3**  
Utilice el siguiente procedimiento para crear una política de IAM que AWS AppConfig permita almacenar una configuración en un objeto de S3.

**Para crear una política de IAM que permita acceder a un objeto de S3**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Políticas** y, a continuación, **Crear política**.

1. En la página **Crear política**, elija la pestaña **JSON**.

1. Actualice la siguiente política de ejemplo con información sobre el bucket de S3 y el objeto de configuración. A continuación, pegue la política en el campo de texto de la pestaña **JSON** . Sustituya *placeholder values* por su propia información.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:GetObjectVersion"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/my-configurations/my-configuration.json"
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetBucketLocation",
           "s3:GetBucketVersioning",
           "s3:ListBucketVersions",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket"
         ]
       },
       {
         "Effect": "Allow",
         "Action": "s3:ListAllMyBuckets",
         "Resource": "*"
       } 
     ]
   }
   ```

------

1. Elija **Revisar política**.

1. En la página **Review policy (Revisar política)**, escriba un nombre en el cuadro **Name (Nombre)** y, a continuación, escriba una descripción.

1. Elija **Crear política**. El sistema le devuelve a la página **Roles**.

**Creación del rol de IAM para acceder a un objeto de S3**  
Utilice el siguiente procedimiento para crear un rol de IAM que permita AWS AppConfig almacenar una configuración en un objeto de S3.

**Para crear un rol de IAM para acceder a Athena y Amazon S3**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Roles** y luego seleccione **Crear rol**.

1. En la sección **Seleccionar tipo de entidad de confianza**, elija **servicio de AWS **.

1. En la sección **Choose a use case (Elegir un caso de uso)** en **Common use cases (Casos de uso comunes)**, elija **EC2**, y, a continuación, elija **Next: Permissions (Siguiente: Permisos)**.

1. En la página **Attach permissions policy (Asociar política de permisos)** en el cuadro de búsqueda, escriba el nombre de la política que creó en el procedimiento anterior. 

1. Elija la política y, a continuación, elija **Siguiente: Etiquetas**.

1. En la página **Agregar etiquetas (opcional)** escriba una clave y un valor opcional y, a continuación, elija **Siguiente: Revisar**.

1. En la página **Review (Revisar)**, escriba un nombre en el campo **Role name (Nombre de rol)** y, a continuación, escriba una descripción.

1. Elija **Create role**. El sistema le devuelve a la página **Roles**.

1. En la página **Roles**, elija el rol que acaba de crear para abrir la página **Summary (Resumen)**. Anote los valores de **Role Name (Nombre de rol)** y **Role ARN (ARN de rol)**. Especifique el ARN de rol cuando cree el perfil de configuración más adelante en este tema.

**Creación de una relación de confianza**  
Utilice el siguiente procedimiento para configurar el rol de que acaba de crear para confiar en AWS AppConfig.

**Para añadir una relación de confianza**

1. En la página **Summary** del rol que acaba de crear, elija la pestaña **Trust Relationships** y, después, seleccione **Edit Trust Relationship**.

1. Elimine `"ec2.amazonaws.com"` y agregue `"appconfig.amazonaws.com"`, como se muestra en el ejemplo siguiente.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "appconfig.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. Elija **Actualizar política de confianza**.

# Creación de un perfil de configuración AWS AppConfig de formato libre (consola)
<a name="appconfig-creating-free-form-configuration-and-profile-create-console"></a>

Utilice el siguiente procedimiento para crear un perfil de configuración de AWS AppConfig formato libre y (opcionalmente) una configuración de formato libre mediante la consola. AWS Systems Manager 

**Cómo crear un perfil de configuración de formato libre**

1. [Abra la consola en AWS Systems Manager appconfig/. https://console.aws.amazon.com/systems-manager/](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. Elija la pestaña **Perfiles de configuración y marcas de características** y, a continuación, elija **Crear configuración**.

1. En la sección **Opciones de configuración**, elija **Configuración de formato libre**.

1. En **Nombre del perfil de configuración**, introduzca un nombre para el perfil de configuración.

1. (Opcional) Amplíe **Descripción** e introduzca una descripción.

1. (Opcional) Amplíe **Opciones adicionales** y complete lo siguiente, según sea necesario.

   1. En la sección **Asociar extensiones**, elija una extensión de la lista.

   1. En la sección **Etiquetas**, seleccione **Agregar nueva etiqueta** y, a continuación, especifique una clave y un valor opcional. 

1. Elija **Siguiente**.

1. En la página **Especificar datos de configuración**, en la sección **Definición de configuración**, elija una opción.

1. Complete los campos de la opción que ha seleccionado, tal y como se describe en la siguiente tabla.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/appconfig/latest/userguide/appconfig-creating-free-form-configuration-and-profile-create-console.html)

1. En la sección **Función de servicio**, elija **Nueva función de servicio** para AWS AppConfig crear la función de IAM que proporciona acceso a los datos de configuración. AWS AppConfig rellena automáticamente el campo del **nombre del rol** en función del nombre que ingresó anteriormente. O elija **Rol de servicio existente**. Elija el rol mediante la lista de **Role ARN (ARN de rol)**.

1. En la página **Agregar validadores**, elija **Esquema JSON** o **AWS Lambda**. Si elige **JSON Schema (Esquema JSON)**, introduzca el esquema JSON en el campo. Si elige **AWS Lambda**, elija el nombre de recurso de Amazon (ARN) y la versión de la función de la lista. 
**importante**  
Los datos de configuración almacenados en documentos de SSM deben validarse con un esquema JSON asociado para poder agregar la configuración al sistema. Los parámetros de SSM no requieren un método de validación, pero le recomendamos que cree una comprobación de validación para las configuraciones de parámetros de SSM nuevas o actualizadas mediante. AWS Lambda

1. Elija **Siguiente**.

1. En la página **Revisar y guardar**, elija **Guardar y continuar con la 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 [Implementación de indicadores de características y datos de configuración en AWS AppConfig](deploying-feature-flags.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 [Implementación de indicadores de características y datos de configuración en AWS AppConfig](deploying-feature-flags.md).

# Creación de un perfil de configuración de AWS AppConfig formato libre (línea de comandos)
<a name="appconfig-creating-free-form-configuration-and-profile-create-commandline"></a>

El siguiente procedimiento describe cómo utilizar el perfil de configuración de formato libre AWS CLI (en Linux o Windows) o cómo crear un AWS AppConfig perfil de Herramientas de AWS para PowerShell configuración de formato libre. Si lo prefiere, puede utilizar AWS CloudShell para ejecutar los comandos que se indican a continuación. Para obtener más información, consulte [¿Qué es AWS CloudShell?](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html) en la *Guía del usuario de AWS CloudShell *.

**nota**  
Para las configuraciones de formato libre alojadas en el almacén de configuraciones AWS AppConfig hospedado, especifique `hosted` el URI de ubicación.

**Para crear un perfil de configuración mediante el AWS CLI**

1. Abra el AWS CLI.

1. Ejecute el siguiente comando para crear un perfil de configuración de formato libre. 

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

   ```
   aws appconfig create-configuration-profile \
     --application-id APPLICATION_ID \
     --name NAME \
     --description CONFIGURATION_PROFILE_DESCRIPTION \
     --location-uri CONFIGURATION_URI or hosted \
     --retrieval-role-arn IAM_ROLE_ARN \
     --tags TAGS \
     --validators "Content=SCHEMA_CONTENT or LAMBDA_FUNCTION_ARN,Type=JSON_SCHEMA or LAMBDA"
   ```

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

   ```
   aws appconfig create-configuration-profile ^
     --application-id APPLICATION_ID ^
     --name NAME ^
     --description CONFIGURATION_PROFILE_DESCRIPTION ^
     --location-uri CONFIGURATION_URI or hosted  ^
     --retrieval-role-arn IAM_ROLE_ARN ^
     --tags TAGS ^
     --validators "Content=SCHEMA_CONTENT or LAMBDA_FUNCTION_ARN,Type=JSON_SCHEMA or LAMBDA"
   ```

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

   ```
   New-APPCConfigurationProfile `
     -Name NAME `
     -ApplicationId APPLICATION_ID `
     -Description CONFIGURATION_PROFILE_DESCRIPTION `
     -LocationUri CONFIGURATION_URI or hosted `
     -RetrievalRoleArn IAM_ROLE_ARN `
     -Tag TAGS `
     -Validators "Content=SCHEMA_CONTENT or LAMBDA_FUNCTION_ARN,Type=JSON_SCHEMA or LAMBDA"
   ```

------

**importante**  
Tenga en cuenta la siguiente informació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 [Implementación de indicadores de características y datos de configuración en AWS AppConfig](deploying-feature-flags.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*. 
Si creó una configuración en el almacén de configuraciones AWS AppConfig hospedado, puede crear nuevas versiones de la configuración mediante las operaciones de la [CreateHostedConfigurationVersion](https://docs.aws.amazon.com//appconfig/2019-10-09/APIReference/API_CreateHostedConfigurationVersion.html)API. Para ver AWS CLI los detalles y ejemplos de comandos de esta operación de API, consulte [create-hosted-configuration-version](https://docs.aws.amazon.com/cli/latest/reference/appconfig/create-hosted-configuration-version.html)la *Referencia de AWS CLI comandos*.

Continúe en [Implementación de indicadores de características y datos de configuración en AWS AppConfig](deploying-feature-flags.md).

# Creación de un perfil de configuración para orígenes de datos no nativos
<a name="appconfig-creating-configuration-profile-other-data-sources"></a>

AWS AppConfig admite el despliegue de datos de configuración desde casi cualquier almacén de datos. De forma nativa, AWS AppConfig admite la implementación de los datos de configuración almacenados en los siguientes servicios:
+ El almacén de configuración AWS AppConfig alojado
+ Amazon S3
+ AWS Secrets Manager
+ AWS Systems Manager Almacén de parámetros
+ Almacén de documentos de Systems Manager
+ AWS CodePipeline

Si los datos de configuración se almacenan en una ubicación que no es compatible de forma nativa AWS AppConfig, puede crear una [AWS AppConfig extensión](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html) para recuperar los datos de su origen. Por ejemplo, si utiliza una AWS AppConfig extensión, puede recuperar los datos de configuración almacenados en Amazon Relational Database Service (Amazon RDS), Amazon DynamoDB (DynamoDB) o en un repositorio local GitHub GitLab, por mencionar algunos. Al implementar una extensión, puede aprovechar la AWS AppConfig seguridad y las DevOps mejoras de sus aplicaciones y su entorno informático. También puede utilizar este método para migrar los datos de configuración de sistemas heredados a AWS AppConfig.

La creación de un perfil de configuración para orígenes de datos no admitidos de forma nativa en AWS AppConfig implica los siguientes procesos o acciones:

1. Cree una [función de AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) que obtenga datos de su origen de datos. Mientras una función Lambda pueda acceder a la fuente de datos, la AWS AppConfig extensión podrá recuperar los datos. 

1. Cree una AWS AppConfig extensión personalizada que invoque la función Lambda. Para obtener más información, consulte [Tutorial: Creación de extensiones personalizadas AWS AppConfig](working-with-appconfig-extensions-creating-custom.md).

1. Cree un perfil de configuración de AWS AppConfig formato libre. En concreto, cree un perfil de configuración que utilice la definición de **configuración alojada en AWS AppConfig **. El perfil de configuración funciona como un almacén de datos temporal después de que la función de Lambda recupere la configuración del origen. La aplicación recuperará los datos de configuración del almacén de configuración AWS AppConfig hospedado. Para obtener más información, consulte [Crear un perfil de configuración de formato libre en AWS AppConfig](appconfig-free-form-configurations-creating.md).

1. Cree una asociación de extensiones que se active mediante el punto de acción `PRE_CREATE_HOSTED_CONFIGURATION_VERSION`. Para obtener más información, consulte [Paso 4: Cree una asociación de extensiones para una extensión personalizada AWS AppConfig](working-with-appconfig-extensions-creating-custom-association.md).

Una vez configurada, cuando la aplicación solicita una nueva versión de los datos de configuración, la Lambda obtiene los datos de configuración y los incorpora al perfil de configuración. A continuación, AWS AppConfig guarda el perfil de configuración y los datos de terceros.

Cuando esté listo, podrá implementar el perfil de configuración en sus aplicaciones, igual que cualquier otro tipo de datos de configuración.

**nota**  
Puede elegir entre insertar datos de terceros en consonancia con los datos de configuración existentes o hacer que todo el contenido de los datos de configuración contenga solo los datos de terceros. Si desea insertar los datos en consonancia con otros datos existentes, esa lógica debe formar parte de la función de Lambda que importa los datos del proveedor de origen externo.

## Migración AWS AppConfig desde servicios de configuración tradicionales y propios
<a name="appconfig-creating-configuration-profile-other-data-sources-migrating"></a>

Si ha empezado a utilizar otro sistema AWS AppConfig y todavía tiene indicadores de funciones o datos de configuración heredados en otro sistema, puede utilizar el proceso descrito anteriormente en este tema para migrar de su sistema heredado a otro. AWS AppConfig Puede crear una extensión que extraiga datos de su sistema heredado y los despliegue a través de él. AWS AppConfig Si lo utiliza AWS AppConfig de esta forma, dispondrá de todos los controles y ventajas de la barrera de seguridad y, al mismo tiempo, seguirá utilizando sus almacenes de datos antiguos.