

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.

# Trabajando con el modo de AWS AppConfig desarrollo local del agente
<a name="appconfig-agent-how-to-use-local-development"></a>

AWS AppConfig El agente admite un *modo de desarrollo local*. Si habilita el modo de desarrollo local, el agente lee los datos de configuración de un directorio específico del disco. No recupera datos de configuración de AWS AppConfig. Puede simular las implementaciones de configuración actualizando los archivos en el directorio especificado. Recomendamos el modo de desarrollo local para los siguientes casos de uso:
+ Probar diferentes versiones de configuración antes de implementarlas utilizando AWS AppConfig.
+ Pruebe diferentes opciones de configuración para una nueva característica antes de confirmar los cambios en su repositorio de código.
+ Probar diferentes casos de configuración para comprobar que funcionan según lo esperado.

**aviso**  
No utilice el modo de desarrollo local en entornos de producción. Este modo no admite funciones de AWS AppConfig seguridad importantes, como la validación de la implementación y las reversiones automatizadas.

Utilice el siguiente procedimiento para configurar el AWS AppConfig agente para el modo de desarrollo local.

**Para configurar el AWS AppConfig agente para el modo de desarrollo local**

1. Instale el agente mediante el método descrito para su entorno informático. AWS AppConfig El agente trabaja con lo siguiente Servicios de AWS:
   + [AWS Lambda](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-lambda-extensions.html)
   + [Amazon EC2](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html)
   + [Amazon ECS y Amazon EKS](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent.html)

1. Si el agente está en ejecución, deténgalo.

1. Agregue `LOCAL_DEVELOPMENT_DIRECTORY` a la lista de variables de entorno. Especifique un directorio en el sistema de archivos que proporcione al agente permisos de lectura. Por ejemplo, `/tmp/local_configs`.

1. Cree un archivo en el directorio. El nombre de archivo debe utilizar el formato siguiente:

   ```
   application_name:environment_name:configuration_profile_name
   ```

   A continuación se muestra un ejemplo:

   ```
   Mobile:Development:EnableMobilePaymentsFeatureFlagConfiguration
   ```
**nota**  
Para ver ejemplos de marcas de características que puede añadir a un archivo de su directorio `LOCAL_DEVELOPMENT_DIRECTORY`, consulte [Ejemplos de indicadores de características para el modo de desarrollo local del AWS AppConfig agente](appconfig-agent-how-to-use-local-development-samples.md).
(Opcional) Puede controlar el tipo de contenido que el agente devuelve para sus datos de configuración en función de la extensión que le dé al archivo. Por ejemplo, si nombra el archivo con la extensión.json, el agente devolverá un tipo de contenido de `application/json` cuando la aplicación lo solicite. Si omite la extensión, el agente utilizará `application/octet-stream` para el tipo de contenido. Si necesita un control preciso, puede proporcionar una extensión en el formato `.type%subtype`. El agente devolverá un tipo de contenido de `.type/subtype`.

1. Ejecute el siguiente comando para reiniciar el agente y solicitar los datos de configuración.

   ```
   curl http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name
   ```

El agente comprueba si hay cambios en el archivo local en el intervalo de sondeo especificado para el agente. Si no se especifica el intervalo de sondeo, el agente utiliza el intervalo predeterminado de 45 segundos. Esta comprobación en el intervalo de sondeo garantiza que el agente se comporte de la misma manera en un entorno de desarrollo local que cuando está configurado para interactuar con el AWS AppConfig servicio. 

**nota**  
Para implementar una nueva versión de un archivo de configuración de desarrollo local, actualice el archivo con datos nuevos.

# Ejemplos de indicadores de características para el modo de desarrollo local del AWS AppConfig agente
<a name="appconfig-agent-how-to-use-local-development-samples"></a>

Esta sección incluye ejemplos de indicadores de características que puede utilizar con AWS AppConfig Agent en el modo de desarrollo local. El modo de desarrollo local espera que los datos de las marcas de características estén en el formato de tiempo de recuperación de los datos. El *formato de tiempo de recuperación* es el formato que se devuelve cuando se recupera el indicador de la [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html)API, que solo contiene el valor del indicador. El formato de hora de recuperación no incluye la definición completa de una marca (tal como se pasa a la API). [CreateHostedConfigurationVersion](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateHostedConfigurationVersion.html) La definición completa de una marca también contiene información como los nombres y valores de los atributos, las restricciones y el estado habilitado de la marca. 

**Topics**
+ [Ejemplos de marcas de características básicas](#appconfig-agent-how-to-use-local-development-samples-basic)
+ [Ejemplos de marcas de características con múltiples variantes](#appconfig-agent-how-to-use-local-development-samples-multi-variant)

## Ejemplos de marcas de características básicas
<a name="appconfig-agent-how-to-use-local-development-samples-basic"></a>

Utilice los siguientes ejemplos básicos de indicadores de funciones con AWS AppConfig Agent en el modo de desarrollo local.

**nota**  
Si quiere que el agente indique el tipo de contenido de sus datos de indicadores de entidades locales `application/json` (como lo haría cuando se recuperan datos de indicadores de un entorno que no está AWS AppConfig en modo de desarrollo local), sus archivos de indicadores de entidades locales deben usar la extensión.json. Por ejemplo, `Local:MyFeatureFlags:SampleB1.json`.

**Ejemplo 1**: Una única marca que representa una actualización de la IU.

```
{
    "ui_refresh": {
        "enabled": true,
        "new_styleguide_colors": true
    }
}
```

**Ejemplo 2**: Varias marcas que representan marcas de características operativas.

```
{
   "background_worker": {
        "enabled": true,
        "num_threads": 4,
        "queue_name": "MyWorkQueue"
   },
   "emergency_shutoff_switch": {
        "enabled": false
   },
   "logger_settings": {
        "enabled": true,
        "level": "INFO"
   }
}
```

## Ejemplos de marcas de características con múltiples variantes
<a name="appconfig-agent-how-to-use-local-development-samples-multi-variant"></a>

El formato de tiempo de recuperación de una configuración de marca de características que contiene al menos una marca de características con múltiples variantes se representa como datos [Amazon Ion](https://amazon-ion.github.io/ion-docs/) en lugar de como datos de JSON. En este formato, las marcas con múltiples variantes se representan como una lista anotada y las marcas básicas se representan como una cadena anotada. Los elementos de la lista de una marca con múltiples variantes son una tupla (una lista con una longitud de dos), que representa una sola variante, o una cadena, que representa la variante predeterminada. Dentro de una tupla de variantes, el primer elemento es una expresión en forma de s que representa la regla de la variante y el segundo elemento es una cadena que representa el contenido de la variante.

Para que el agente interprete correctamente estos archivos, sus archivos de marcas de características locales deben usar la siguiente extensión: .`application%ion%type=AWS.AppConfig.FeatureFlags`. Por ejemplo, `Local:MyFeatureFlags:SampleMV1.application%ion%type=AWS.AppConfig.FeatureFlags`.

**Ejemplo 1**: Una marca con múltiples variantes que representa una versión por niveles de una característica nueva.

```
'tiered_release'::[
  [
    (or (and (eq $group "Tier1") (split by::$userId pct::1 seed::"2025.01.01")) (and (eq $group "Tier2") (split by::$userId pct::7 seed::"2025.01.01"))),
    '''{"_variant": "ShowFeature", "enabled": true}'''
  ],
  '''{"_variant": "HideFeature", "enabled": false}'''
]
```

**Ejemplo 2**: Varias marcas que representan diferentes pantallas de experiencia de usuario en función del ID del usuario. Las dos primeras marcas tienen múltiples variantes y la última marca es básica.

```
'colorway'::[
  [
    (contains $userId "beta"),
    '''{"_variant": "BetaTesters", "enabled": true, "background": "blue", "foreground": "red"}''',
  ],
  [
    (split by::$userId pct::10),
    '''{"_variant": "SplitRollOutRedAndBlue", "enabled": true, "background": "blue", "foreground": "red"}''',
  ],
  '''{"_variant": "default", "enabled": true, "background": "green", "foreground": "green"}''',
]

'simple_feature'::[
  [
    (contains $userId "beta"),
    '''{"_variant": "BetaTesters", "enabled": true}'''
  ],
  '''{"_variant": "default", "enabled": false}'''
]

'button_color'::'''{"enabled": true, "color": "orange"}'''
```