

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á.

# Usando o AWS AppConfig Agent com o Amazon EC2 e máquinas locais
<a name="appconfig-integration-ec2"></a>

Você pode se integrar AWS AppConfig com aplicativos executados em suas instâncias Linux do Amazon Elastic Compute Cloud (Amazon EC2) usando o Agent. AWS AppConfig O agente aprimora o processamento e o gerenciamento de aplicativos das seguintes maneiras:
+ O agente liga AWS AppConfig em seu nome usando uma função AWS Identity and Access Management (IAM) e gerenciando um cache local de dados de configuração. Ao extrair dados de configuração do cache local, seu aplicativo exige menos atualizações de código para gerenciar dados de configuração, recupera dados de configuração em milissegundos e não é afetado por problemas de rede que podem afetar as chamadas para esses dados.\*
+ O agente oferece uma experiência nativa para recuperar e resolver sinalizadores de AWS AppConfig recursos.
+ Pronto para uso, o agente fornece as práticas recomendadas para estratégias de armazenamento em cache, intervalos de pesquisa e disponibilidade de dados de configuração locais, enquanto rastreia os tokens de configuração necessários para chamadas de serviço subsequentes.
+ Durante a execução em segundo plano, o agente consulta periodicamente o plano de AWS AppConfig dados para atualizações de dados de configuração. Seu aplicativo pode recuperar os dados conectando-se ao localhost na porta 2772 (um valor de porta padrão personalizável) e chamando HTTP GET para recuperar os dados.

\* O AWS AppConfig agente armazena dados em cache na primeira vez que o serviço recupera seus dados de configuração. Por esse motivo, a primeira chamada para recuperar dados é mais lenta que as chamadas subsequentes.

**Topics**
+ [Etapa 1: (obrigatória) crie recursos e configure permissões](#appconfig-integration-ec2-resources-and-permissions)
+ [Etapa 2: (Obrigatório) Instalar e iniciar o AWS AppConfig agente nas instâncias do Amazon EC2](#appconfig-integration-ec2-installing)
+ [Etapa 3: (opcional, mas recomendado) Enviar arquivos de log para o CloudWatch Logs](#appconfig-integration-ec2-logs)
+ [Etapa 4: (opcional) Usando variáveis de ambiente para configurar o AWS AppConfig agente para o Amazon EC2](#appconfig-integration-ec2-configuring)
+ [Etapa 5: (obrigatória) recuperação de dados de configuração](#appconfig-integration-ec2-retrieving-data)
+ [Etapa 6 (opcional, mas recomendada): automatizar as atualizações do Agente AWS AppConfig](#appconfig-integration-ec2-updating-agent)

## Etapa 1: (obrigatória) crie recursos e configure permissões
<a name="appconfig-integration-ec2-resources-and-permissions"></a>

Para se integrar AWS AppConfig com aplicativos executados em suas instâncias do Amazon EC2, você deve criar AWS AppConfig artefatos e dados de configuração, incluindo sinalizadores de recursos ou dados de configuração de formato livre. Para obter mais informações, consulte [Criação de sinalizadores de recursos e dados de configuração de formato livre no AWS AppConfig](creating-feature-flags-and-configuration-data.md).

Para recuperar dados de configuração hospedados por AWS AppConfig, seus aplicativos devem ser configurados com acesso ao plano de AWS AppConfig dados. Para dar acesso aos seus aplicativos, atualize a política de permissões do IAM atribuída à função de instância do Amazon EC2. Especificamente, você deve adicionar as ações `appconfig:StartConfigurationSession` e `appconfig:GetLatestConfiguration` à política. Exemplo:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "appconfig:StartConfigurationSession",
                "appconfig:GetLatestConfiguration"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Para obter informações sobre como adicionar permissões a uma política, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *Guia do usuário do IAM*.

## Etapa 2: (Obrigatório) Instalar e iniciar o AWS AppConfig agente nas instâncias do Amazon EC2
<a name="appconfig-integration-ec2-installing"></a>

AWS AppConfig O agente está hospedado em um bucket do Amazon Simple Storage Service (Amazon S3) que é gerenciado por. AWS Use o procedimento a seguir para instalar a versão mais recente do agente em sua instância do Linux. Se seu aplicativo estiver distribuído entre várias instâncias, você deverá executar este procedimento em cada instância que hospeda o aplicativo.

**nota**  
Observe as seguintes informações:  
AWS AppConfig O agente está disponível para sistemas operacionais Linux que executam a versão 4.15 ou superior do kernel. Debian-based sistemas, como o Ubuntu, não são suportados.
O agente suporta arquiteturas x86\_64 e ARM64. 
Para aplicativos distribuídos, recomendamos adicionar os comandos de instalação e inicialização aos dados de usuário do Amazon EC2 do seu grupo do Auto Scaling. Se fizer isso, cada instância executará os comandos automaticamente. Para ter mais informações, consulte [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) no *Guia do usuário do Amazon EC2*. Além disso, consulte [Tutorial: configurar dados do usuário para recuperar o estado do ciclo de vida do destino por meio de metadados da instância](https://docs.aws.amazon.com/autoscaling/ec2/userguide/tutorial-lifecycle-hook-instance-metadata.html) no *Guia do usuário do Amazon EC2 Auto Scaling*.
Os procedimentos deste tópico descrevem como realizar ações como instalar o agente fazendo login na instância para executar o comando. Você pode executar os comandos em uma máquina cliente local e direcionar-se a uma ou mais instâncias usando o Run Command, que é uma ferramenta do AWS Systems Manager. Para obter mais informações, consulte [Comando AWS Systems Manager Run](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html) no *Guia do usuário do AWS Systems Manager *.
AWS AppConfig O agente nas instâncias Linux do Amazon EC2 é um `systemd` serviço.

**Para instalar e iniciar o AWS AppConfig Agente em uma instância**

1. Faça login na sua instância do Linux.

1. Abra um terminal ou execute um dos seguintes comandos com permissões de administrador:

   **x86\_64**

   ```
   sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/latest/aws-appconfig-agent.rpm
   ```

   **ARM64**

   ```
   sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/arm64/latest/aws-appconfig-agent.rpm
   ```

   Se você quiser instalar uma versão específica do AWS AppConfig Agente, `latest` substitua a URL por um número de versão específico. Veja um exemplo para x86\_64:

   ```
   sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/2.0.2/aws-appconfig-agent.rpm
   ```

1. Para iniciar o agente, execute o seguinte comando:

   ```
   sudo systemctl start aws-appconfig-agent
   ```

1. Execute o seguinte comando para verificar se o agente está em execução:

   ```
   sudo systemctl status aws-appconfig-agent
   ```

   Se houver êxito, o comando retornará informações como as seguintes:

   ```
   aws-appconfig-agent.service - aws-appconfig-agent
     ...
     Active: active (running) since Mon 2023-07-26 00:00:00 UTC; 0s ago
     ...
   ```

**nota**  
Para interromper o agente, execute o seguinte comando:  

```
sudo systemctl stop aws-appconfig-agent
```

## Etapa 3: (opcional, mas recomendado) Enviar arquivos de log para o CloudWatch Logs
<a name="appconfig-integration-ec2-logs"></a>

Por padrão, o AWS AppConfig Agente publica registros no STDERR. O Systemd redireciona STDOUT e STDERR para todos os serviços em execução na instância Linux para o diário do systemd. Você pode visualizar e gerenciar dados de log no diário do systemd se estiver executando o AWS AppConfig Agent em apenas uma ou duas instâncias. Uma solução melhor, uma solução altamente recomendada para aplicativos distribuídos, é gravar arquivos de log em disco e depois usar o CloudWatch agente da Amazon para carregar os dados de log na AWS nuvem. Além disso, você pode configurar o CloudWatch agente para excluir arquivos de log antigos da sua instância, o que evita que ela fique sem espaço em disco.

Para habilitar o log em disco, você deve definir a variável de ambiente `LOG_PATH`, conforme descrito em [Etapa 4: (opcional) Usando variáveis de ambiente para configurar o AWS AppConfig agente para o Amazon EC2](#appconfig-integration-ec2-configuring).

Para começar a usar o CloudWatch agente, consulte [Coletar métricas e registros de instâncias do Amazon EC2 e servidores locais com o CloudWatch agente no Guia do](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) usuário da *Amazon CloudWatch *. Você pode usar o Quick Setup, uma ferramenta no Systems Manager para instalar rapidamente o CloudWatch agente. Para obter mais informações, consulte [Gerenciamento do host de Configuração Rápida](https://docs.aws.amazon.com/systems-manager/latest/userguide/quick-setup-host-management.html) no *Guia do usuário do AWS Systems Manager *. 

**Atenção**  
Se você optar por gravar arquivos de log no disco sem usar o CloudWatch agente, deverá excluir os arquivos de log antigos. AWS AppConfig O agente gira automaticamente os arquivos de log a cada hora. Se você não excluir os arquivos de log antigos, sua instância poderá ficar sem espaço em disco. 

Depois de instalar o CloudWatch agente na sua instância, crie um arquivo de configuração do CloudWatch agente. O arquivo de configuração instrui o CloudWatch agente sobre como trabalhar com os arquivos de log do AWS AppConfig agente. Para obter mais informações sobre a criação de um arquivo de configuração do CloudWatch agente, consulte [Criar o arquivo de configuração do CloudWatch agente](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file.html).

Adicione a `logs` seção a seguir ao arquivo de configuração do CloudWatch agente na instância e salve suas alterações:

```
"logs": {
  "logs_collected": {
    "files": {
      "collect_list": [
        {
          "file_path": "/{{path_you_specified_for_logging}}",
          "log_group_name": "${{{YOUR_LOG_GROUP_NAME}}}/aws-appconfig-agent.log",
          "auto_removal": true
        },
        ...
      ]
    },
    ...
  },
  ...
}
```

Se o valor de `auto_removal` for`true`, o CloudWatch agente excluirá automaticamente os arquivos de log do AWS AppConfig Agente rotacionados.

## Etapa 4: (opcional) Usando variáveis de ambiente para configurar o AWS AppConfig agente para o Amazon EC2
<a name="appconfig-integration-ec2-configuring"></a>

Você pode configurar o AWS AppConfig Agente para o Amazon EC2 usando variáveis de ambiente. Para definir variáveis de ambiente para um serviço do `systemd`, crie um arquivo de unidade drop-in. O exemplo a seguir mostra como criar um arquivo de unidade drop-in para definir o nível de registro do AWS AppConfig agente como. `DEBUG`

**Exemplo de como criar um arquivo de unidade drop-in para variáveis de ambiente**

1. Faça login na sua instância do Linux.

1. Abra um terminal ou execute o comando a seguir com permissões de administrador. O comando cria um diretório de configuração:

   ```
   sudo mkdir /etc/systemd/system/aws-appconfig-agent.service.d
   ```

1. Execute o comando a seguir para criar o arquivo de unidade drop-in. {{file\_name}}Substitua por um nome para o arquivo. A extensão deve ser `.conf`:

   ```
   sudo touch /etc/systemd/system/aws-appconfig-agent.service.d/{{file_name}}.conf
   ```

1. Insira as informações no arquivo da unidade drop-in. O exemplo a seguir adiciona uma seção `Service` que define uma variável de ambiente. O exemplo define o nível de log do AWS AppConfig Agent como `DEBUG`.

   ```
   [Service]
   Environment=LOG_LEVEL=DEBUG
   ```

1. Execute o comando a seguir para recarregar a configuração do systemd:

   ```
   sudo systemctl daemon-reload
   ```

1. Execute o comando a seguir para reiniciar o AWS AppConfig Agente:

   ```
   sudo systemctl restart aws-appconfig-agent
   ```

Você pode configurar o AWS AppConfig Agent for Amazon EC2 especificando as seguintes variáveis de ambiente em um arquivo de unidade drop-in.

**nota**  
A tabela a seguir inclui uma coluna de **valores de amostra**. Dependendo da resolução do monitor, talvez seja necessário rolar até a parte inferior da tabela e depois rolar para a direita para ver a coluna.


****  

| Variável de ambiente | Detalhes | Valor padrão  | Exemplo(s) de valor(es) | 
| --- | --- | --- | --- | 
| `ACCESS_TOKEN` | Esta variável de ambiente define um token que deve ser fornecido ao solicitar dados de configuração do servidor HTTP do agente. O valor do token deve ser definido no cabeçalho de autorização da solicitação HTTP com um tipo de autorização `Bearer`. Aqui está um exemplo.<pre>GET /applications/my_app/...<br />                  Host: localhost:2772<br />                  Authorization: Bearer <token value></pre> | Nenhum | MyAccessToken | 
| `BACKUP_DIRECTORY` | Essa variável de ambiente permite que o AWS AppConfig Agente salve um backup de cada configuração recuperada no diretório especificado.  As configurações copiadas em disco não são criptografadas. Se sua configuração contiver dados confidenciais, recomendamos AWS AppConfig que você pratique o princípio do menor privilégio com as permissões do sistema de arquivos. Para obter mais informações, consulte [Segurança em AWS AppConfig](appconfig-security.md).  | Nenhum | /path/to/cópias de segurança | 
| `HTTP_PORT` | Esta variável de ambiente especifica a porta na qual o servidor HTTP do agente é executado. | 2772 | 2772 | 
| `HTTP_HOST` | A variável HTTP\_HOST controla como o AWS AppConfig Agente se vincula às interfaces de rede. O comportamento de vinculação difere com base no ambiente de execução para garantir segurança e acessibilidade ideais. |  ECS, SEMANAS [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/appconfig/latest/userguide/appconfig-integration-ec2.html)<br />EC2 e no local[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/appconfig/latest/userguide/appconfig-integration-ec2.html) | Opções de configuração personalizadas. Você pode substituir o comportamento padrão usando estes valores:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/appconfig/latest/userguide/appconfig-integration-ec2.html) | 
| `LOG_LEVEL` | Esta variável de ambiente especifica o nível de detalhes que o agente registra. Cada nível inclui o nível atual e todos os níveis superiores. O valor diferencia maiúsculas de minúsculas. Do mais detalhado ao menos detalhado, os níveis de log são: `trace`, `debug`, `info`, `warn`, `error`, `fatal` e `none`. O log do `trace` contém informações detalhadas, incluindo informações de tempo, sobre o agente. | info | trace<br />depurar<br />info<br />warn<br />erro<br />fatal<br />nenhuma | 
| `LOG_PATH` | O local do disco em que os logs são gravados. Se não especificado, os logs serão gravados em stderr. | Nenhum | path/to///logs/agent.log | 
| `MANIFEST` | Essa variável de ambiente configura o AWS AppConfig Agente para aproveitar os recursos adicionais por configuração, como recuperações de várias contas e salvamento da configuração em disco. Para obter mais informações sobre esses recursos, consulte [Usar um manifesto para habilitar recursos de recuperação adicionais](appconfig-agent-how-to-use-additional-features.md).  | Nenhum | Ao usar a AWS AppConfig configuração como manifesto:`MyApp:MyEnv:MyManifestConfig`.<br />Ao carregar o manifesto do disco: `file:/path/to/manifest.json` | 
| `MAX_CONNECTIONS` | Esta variável de ambiente configura o número máximo de conexões que o agente usa para recuperar configurações do AWS AppConfig.  | 3 | 3 | 
| `POLL_INTERVAL` | Essa variável de ambiente controla a frequência com que o agente pesquisa dados AWS AppConfig de configuração atualizados. É possível especificar um número de segundos para o intervalo. Você também pode especificar um número com uma unidade de tempo: s para segundos, m para minutos, e h para horas. Se nenhuma unidade for especificada, o agente usará segundos como padrão. Por exemplo, 60, 60 s e 1 min resultam no mesmo intervalo de pesquisa.  | 45 segundos | 45<br />45s<br />5 minutos<br />1h | 
| `PREFETCH_LIST` | Essa variável de ambiente especifica os dados de configuração que o agente solicita AWS AppConfig assim que é iniciado. Podem ser fornecidos vários identificadores de configuração em uma lista separada por vírgulas. | Nenhum | MyApp:MyEnv:MyConfig<br />abcd123:efgh456:ijkl789<br />MyApp:MyEnv:Config1,MyApp:MyEnv:Config2 | 
| `PRELOAD_BACKUPS` | Se definido como`true`, o AWS AppConfig Agente carrega os backups de configuração encontrados `BACKUP_DIRECTORY` na memória e verifica imediatamente se existe uma versão mais recente do serviço. Se definido como `false`, o AWS AppConfig Agent só carregará o conteúdo de um backup de configuração se não conseguir recuperar dados de configuração do serviço; por exemplo, se houver um problema com a rede. | true | verdadeiro<br />false | 
| PROXY\_HEADERS | Esta variável de ambiente especifica cabeçalhos que são exigidos pelo proxy referenciado na variável de ambiente PROXY\_URL. O valor é uma lista de cabeçalhos separados por vírgula.  | Nenhum | header: value<br />h1: v1, h2: v2 | 
| PROXY\_URL | Essa variável de ambiente especifica a URL do proxy a ser usada para conexões do agente com Serviços da AWS, inclusive AWS AppConfig. HTTPSe HTTP URLs são compatíveis. | Nenhum | http://localhost: 7474<br />https://my-proxy.example.com | 
| `REQUEST_TIMEOUT` | Essa variável de ambiente controla a quantidade de tempo do qual o agente espera por uma resposta. AWS AppConfig Se o serviço não responder, a solicitação falhará.<br />Se a solicitação for para a recuperação inicial de dados, o agente retornará um erro ao seu aplicativo.<br />Se o tempo limite ocorrer durante uma verificação de dados atualizados em segundo plano, o agente registrará o erro e tentará novamente após um pequeno atraso.<br />Você pode especificar o número de milissegundos para o tempo limite. Você pode também especificar um número com uma unidade de tempo: ms, para milissegundos, e s, para segundos. Se nenhuma unidade for especificada, o agente usará milissegundos como padrão. Por exemplo, 5000, 5000 ms e 5 s resultam no mesmo valor de tempo limite da solicitação. | 3000ms | 3000<br />3000ms<br />5s | 
| ROLE\_ARN | Essa variável de ambiente especifica o Amazon Resource Name (ARN) de uma função do IAM. AWS AppConfig O agente assume essa função para recuperar os dados de configuração. | Nenhum | arn: aws: iam: :123456789012: role/MyRole | 
| ROLE\_EXTERNAL\_ID | Esta variável de ambiente especifica o ID externo a ser usado com o ARN da função assumida. | Nenhum | MyExternalId | 
| ROLE\_SESSION\_NAME | Esta variável de ambiente especifica o nome da sessão a ser associado às credenciais do perfil do IAM assumido. | Nenhum | AWSAppConfigAgentSession | 
| SERVICE\_REGION | Essa variável de ambiente especifica uma alternativa Região da AWS que o AWS AppConfig Agente usa para chamar o AWS AppConfig serviço. Se não for definida, o agente tentará determinar a região atual. Se não for possível, o agente não iniciará. | Nenhum | us-east-1<br />eu-west-1 | 
| `WAIT_ON_MANIFEST` | Essa variável de ambiente configura o AWS AppConfig Agente para esperar até que o manifesto seja processado antes de concluir a inicialização. | true | verdadeiro<br />false | 

## Etapa 5: (obrigatória) recuperação de dados de configuração
<a name="appconfig-integration-ec2-retrieving-data"></a>

Você pode recuperar dados de configuração do AWS AppConfig Agente usando uma chamada HTTP localhost. Os exemplos a seguir usam `curl` com um cliente HTTP. Você pode chamar o agente usando qualquer cliente HTTP disponível compatível com a linguagem do aplicativo ou com as bibliotecas disponíveis, incluindo um AWS SDK.

** Para recuperar o conteúdo completo de qualquer configuração implantada**

```
$ curl "http://localhost:2772/applications/{{application_name}}/environments/{{environment_name}}/configurations/{{configuration_name}}"
```

**Para recuperar um único sinalizador e seus atributos de uma configuração do AWS AppConfig do tipo `Feature Flag`**

```
$ curl "http://localhost:2772/applications/{{application_name}}/environments/{{environment_name}}/configurations/{{configuration_name}}?flag={{flag_name}}"
```

**Para acessar vários sinalizadores e seus atributos a partir de uma configuração do AWS AppConfig do tipo `Feature Flag`**

```
$ curl "http://localhost:2772/applications/{{application_name}}/environments/{{environment_name}}/configurations/{{configuration_name}}?flag={{flag_name_one}}&flag={{flag_name_two}}"
```

## Etapa 6 (opcional, mas recomendada): automatizar as atualizações do Agente AWS AppConfig
<a name="appconfig-integration-ec2-updating-agent"></a>

AWS AppConfig O agente é atualizado periodicamente. Para garantir que você esteja executando a versão mais recente do AWS AppConfig Agent em suas instâncias, recomendamos adicionar os comandos a seguir aos seus dados de usuário do Amazon EC2. Você pode adicionar os comandos aos dados do usuário na instância ou no grupo do Auto Scaling do EC2. O script instala e inicia a versão mais recente do agente sempre que uma instância é iniciada ou reinicializada. 

```
#!/bin/bash
# install the latest version of the agent
yum install -y https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/latest/aws-appconfig-agent.rpm
# optional: configure the agent
mkdir /etc/systemd/system/aws-appconfig-agent.service.d
echo "${{{MY_AGENT_CONFIG}}}" > /etc/systemd/system/aws-appconfig-agent.service.d/overrides.conf 
systemctl daemon-reload
# start the agent
systemctl start aws-appconfig-agent
```