

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Trabalhando com o modo de desenvolvimento local do AWS AppConfig agente
<a name="appconfig-agent-how-to-use-local-development"></a>

AWS AppConfig O agente suporta um *modo de desenvolvimento local*. Se você habilitar o modo de desenvolvimento local, o agente lerá os dados de configuração de um diretório especificado no disco. Ele não recupera dados de configuração de AWS AppConfig. É possível simular implantações de configuração atualizando arquivos no diretório especificado. Recomendamos o modo de desenvolvimento local para os seguintes casos de uso:
+ Testar diferentes versões de configuração antes de implantá-las usando o AWS AppConfig.
+ Testar diferentes opções de configuração para um novo atributo antes de confirmar as alterações no seu repositório de código.
+ Testar diferentes cenários de configuração para verificar se funcionam conforme o esperado.

**Atenção**  
Não use o modo de desenvolvimento local em ambientes de produção. Esse modo não oferece suporte a recursos de AWS AppConfig segurança importantes, como validação de implantação e reversões automatizadas.

Use o procedimento a seguir para configurar o AWS AppConfig Agente para o modo de desenvolvimento local.

**Para configurar o AWS AppConfig Agente para o modo de desenvolvimento local**

1. Instale o agente usando o método descrito para seu ambiente computacional. AWS AppConfig O agente trabalha com o seguinte Serviços da 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 e Amazon EKS](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent.html)

1. Se o agente estiver em execução, interrompa-o.

1. Adicione `LOCAL_DEVELOPMENT_DIRECTORY` à lista de variáveis de ambiente. Especifique um diretório no sistema de arquivos que forneça permissões de leitura ao agente. Por exemplo, .`/tmp/local_configs`

1. Crie um arquivo no diretório. O nome do arquivo deve usar o seguinte formato:

   ```
   application_name:environment_name:configuration_profile_name
   ```

   Exemplo:

   ```
   Mobile:Development:EnableMobilePaymentsFeatureFlagConfiguration
   ```
**nota**  
Para ver exemplos de sinalizadores de atributos que você pode adicionar a um arquivo no seu diretório `LOCAL_DEVELOPMENT_DIRECTORY`, consulte [Amostras de sinalizadores de recursos para o modo de desenvolvimento local do AWS AppConfig agente](appconfig-agent-how-to-use-local-development-samples.md).
(Opcional) É possível controlar o tipo de conteúdo que o agente exibe para seus dados de configuração com base na extensão atribuída ao arquivo. Por exemplo, se você nomear o arquivo com uma extensão .json, o agente exibirá um tipo de conteúdo de `application/json` quando a aplicação o solicitar. Se você omitir a extensão, o agente usará `application/octet-stream` para o tipo de conteúdo. Se precisar de um controle preciso, poderá fornecer uma extensão no formato `.type%subtype`. O agente exibirá um tipo de conteúdo de `.type/subtype`.

1. Execute o comando a seguir para reiniciar o agente e solicitar dados de configuração.

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

O agente confere as alterações no arquivo local no intervalo de pesquisa especificado para ele. Se o intervalo de pesquisa não for especificado, o agente usará o intervalo padrão de 45 segundos. Essa verificação no intervalo da pesquisa garante que o agente se comporte da mesma forma em um ambiente de desenvolvimento local e quando configurado para interagir com o serviço. AWS AppConfig 

**nota**  
Para implantar uma nova versão de um arquivo de configuração de desenvolvimento local, atualize o arquivo com novos dados.

# Amostras de sinalizadores de recursos para o modo de desenvolvimento local do AWS AppConfig agente
<a name="appconfig-agent-how-to-use-local-development-samples"></a>

Esta seção inclui exemplos de sinalizadores de recursos que você pode usar com o AWS AppConfig Agent no modo de desenvolvimento local. O modo de desenvolvimento local espera dados do sinalizador de atributos no formato de tempo de recuperação dos dados. O formato de *tempo de recuperação é o formato* retornado quando o sinalizador é recuperado da [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html)API, que contém apenas o valor do sinalizador. O formato de tempo de recuperação não inclui a definição completa de um sinalizador (conforme passada para a [CreateHostedConfigurationVersion](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateHostedConfigurationVersion.html)API). A definição completa de um sinalizador também contém informações como nomes e valores de atributos, restrições e o estado ativado do sinalizador. 

**Topics**
+ [Exemplos básicos de sinalizadores de atributos](#appconfig-agent-how-to-use-local-development-samples-basic)
+ [Exemplos de sinalizadores de atributos multivariante](#appconfig-agent-how-to-use-local-development-samples-multi-variant)

## Exemplos básicos de sinalizadores de atributos
<a name="appconfig-agent-how-to-use-local-development-samples-basic"></a>

Use os seguintes exemplos de sinalizadores de recursos básicos com o AWS AppConfig Agent no modo de desenvolvimento local.

**nota**  
Se você quiser que o agente reporte o tipo de conteúdo dos seus dados de sinalização de recurso local como `application/json` (como faria ao recuperar dados de sinalização AWS AppConfig em um ambiente que não está no modo de desenvolvimento local), seus arquivos de sinalização de recurso locais devem usar a extensão.json. Por exemplo, .`Local:MyFeatureFlags:SampleB1.json`

**Exemplo 1**: um único sinalizador que representa uma atualização da interface do usuário.

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

**Exemplo 2**: vários sinalizadores que representam sinalizadores de atributos operacionais.

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

## Exemplos de sinalizadores de atributos multivariante
<a name="appconfig-agent-how-to-use-local-development-samples-multi-variant"></a>

O formato de tempo de recuperação de uma configuração de sinalizador de atributos que contém pelo menos um sinalizador de atributos multivariante é representado como dados do [Amazon Ion](https://amazon-ion.github.io/ion-docs/), em vez de dados JSON. Nesse formato, os sinalizadores multivariante são representados como uma lista anotada, e os sinalizadores básicos são representados como uma string anotada. Os elementos da lista de um sinalizador multivariante são uma tupla (uma lista com tamanho de dois), que representa uma única variante, ou uma string, que representa a variante padrão. Em uma tupla variante, o primeiro elemento é uma expressão “s” que representa a regra da variante, e o segundo elemento é uma string que representa o conteúdo da variante.

Para que o agente interprete corretamente esses arquivos, seus arquivos de sinalizadores de atributos locais devem usar a seguinte extensão: .`application%ion%type=AWS.AppConfig.FeatureFlags`. Por exemplo, .`Local:MyFeatureFlags:SampleMV1.application%ion%type=AWS.AppConfig.FeatureFlags`

**Exemplo 1**: um sinalizador multivariante que representa uma versão em camadas de um novo atributo.

```
'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}'''
]
```

**Exemplo 2**: vários sinalizadores que representam diferentes exibições de UX com base no ID do usuário. Os dois primeiros sinalizadores são multivariante, e o sinalizador final é básico.

```
'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"}'''
```