Recuperação de dados de configuração do Amazon ECS e do Amazon EKS - AWS AppConfig

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

Recuperação de dados de configuração do Amazon ECS e do Amazon EKS

Você pode se integrar AWS AppConfig ao Amazon Elastic Container Service (Amazon ECS) e ao Amazon Elastic Kubernetes Service (Amazon EKS) usando o Agent. AWS AppConfig O agente funciona como um contêiner auxiliar executado junto com seus aplicativos de contêiner Amazon ECS e Amazon EKS. O agente aprimora o processamento e o gerenciamento de aplicativos em contêineres 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 local, 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 em contêiner 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.

  • AWS AppConfig O agente atualiza os dados de configuração em seus contêineres sem precisar reiniciá-los ou reciclá-los.

* O AWS AppConfig agente armazena os 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.

Antes de começar

Para se integrar AWS AppConfig aos seus aplicativos de contêiner, você deve criar AWS AppConfig artefatos e dados de configuração, incluindo sinalizadores de recursos ou dados de configuração de formato livre. Para ter mais informações, consulte Criação de sinalizadores de recursos e dados de configuração de formato livre no AWS AppConfig.

Para recuperar dados de configuração hospedados por AWS AppConfig, seus aplicativos de contêiner 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 que é usada pelo perfil do IAM do seu serviço de contêiner. Especificamente, você deve adicionar as ações appconfig:StartConfigurationSession e appconfig:GetLatestConfiguration à política. Os perfis do IAM de serviço de contêineres incluem o seguinte:

  • A função de tarefa do Amazon ECS

  • A função do nó do Amazon EKS

  • A função de execução do AWS Fargate (Fargate) pod (se seus contêineres do Amazon EKS usarem o Fargate para processamento computacional)

Para obter informações sobre como adicionar permissões a uma política, consulte Adicionar e remover permissões de identidade do IAM no Guia do usuário do IAM.

Como iniciar o AWS AppConfig Agent para integração com o Amazon ECS

O contêiner auxiliar do AWS AppConfig agente está disponível automaticamente em seu ambiente Amazon ECS. Para usar o contêiner auxiliar do AWS AppConfig Agent, você deve iniciá-lo.

Para iniciar o Amazon ECS (console)
  1. Abra o console em https://console.aws.amazon.com/ecs/v2.

  2. No painel de navegação, escolha Task definitions (Definições de tarefa).

  3. Escolha a definição de tarefa para seu aplicativo e, em seguida, selecione a revisão mais recente.

  4. Escolha Criar revisão, Criar revisão.

  5. Escolha Adicionar mais contêineres.

  6. Em Nome, insira um nome exclusivo para o contêiner do AWS AppConfig agente.

  7. Em URI da imagem, insira: public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x

  8. Em Contêiner essencial, escolha Sim.

  9. Na seção Mapeamentos de portas, escolha Adicionar mapeamento de portas.

  10. Em Porta do contêiner, insira 2772.

    nota

    AWS AppConfig O agente é executado na porta 2772, por padrão. Você pode especificar uma porta diferente.

  11. Escolha Criar. O Amazon ECS cria uma nova revisão do contêiner e exibe os detalhes.

  12. No painel de navegação, escolha Clusters e, em seguida, escolha o cluster do aplicativo na lista.

  13. Na guia Serviços, selecione o serviço para seu aplicativo.

  14. Selecione Atualizar.

  15. Em Configuração de implantação, em Revisão, escolha a revisão mais recente.

  16. Selecione Atualizar. O Amazon ECS implanta a definição de tarefa mais recente.

  17. Após a conclusão da implantação, você pode verificar se o AWS AppConfig Agente está sendo executado na guia Configuração e tarefas. Na guia Tarefas, escolha a tarefa em execução.

  18. Na seção Contêineres, verifique se o contêiner do AWS AppConfig agente está listado.

  19. Para verificar se o AWS AppConfig agente foi iniciado, escolha a guia Registros. Localize uma declaração como a seguinte para o contêiner do AWS AppConfig Agente: [appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772

nota

Você pode ajustar o comportamento padrão do AWS AppConfig Agente inserindo ou alterando variáveis de ambiente. Para mais informações sobre as variáveis de ambiente disponíveis, consulte Usando variáveis de ambiente para configurar o AWS AppConfig Agente para Amazon ECS e Amazon EKS. Para obter informações sobre como alterar variáveis de ambiente no Amazon ECS, consulte Passar variáveis de ambiente para um contêiner no Guia do desenvolvedor do Amazon Elastic Container Service.

Como iniciar a integração do AWS AppConfig Agent com o Amazon EKS

O contêiner auxiliar do AWS AppConfig Agent está disponível automaticamente em seu ambiente Amazon EKS. Para usar o contêiner auxiliar do AWS AppConfig Agent, você deve iniciá-lo. O procedimento a seguir descreve como usar a ferramenta de linha de comando kubectl do Amazon EKS para fazer alterações no arquivo kubeconfig do aplicativo de contêiner. Para obter mais informações sobre como criar ou editar um arquivo kubeconfig, consulte Criação ou atualização de um arquivo kubeconfig para um cluster do Amazon EKS no Guia do usuário do Amazon EKS.

Para iniciar o AWS AppConfig Agent (ferramenta de linha de comando kubectl)
  1. Abra seu arquivo kubeconfig e verifique se o aplicativo Amazon EKS está sendo executado como uma implantação de contêiner único. O conteúdo do arquivo deve ser semelhante ao seguinte:

    apiVersion: apps/v1 kind: Deployment metadata: name: my-app namespace: my-namespace labels: app: my-application-label spec: replicas: 1 selector: matchLabels: app: my-application-label template: metadata: labels: app: my-application-label spec: containers: - name: my-app image: my-repo/my-image imagePullPolicy: IfNotPresent
  2. Adicione os detalhes da definição do contêiner do AWS AppConfig Agente ao seu arquivo de implantação YAML.

    - name: appconfig-agent image: public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x ports: - name: http containerPort: 2772 protocol: TCP env: - name: SERVICE_REGION value: region imagePullPolicy: IfNotPresent
    nota

    Observe as seguintes informações:

    • AWS AppConfig O agente é executado na porta 2772, por padrão. Você pode especificar uma porta diferente.

    • Você pode ajustar o comportamento padrão do AWS AppConfig Agente inserindo variáveis de ambiente. Para ter mais informações, consulte Usando variáveis de ambiente para configurar o AWS AppConfig Agente para Amazon ECS e Amazon EKS.

    • Para SERVICE_REGION, especifique o Região da AWS código (por exemplo,us-west-1) em que o AWS AppConfig Agente recupera os dados de configuração.

  3. Execute o comando a seguir na ferramenta kubectl para aplicar as alterações ao seu cluster.

    kubectl apply -f my-deployment.yml
  4. Após a conclusão da implantação, verifique se o AWS AppConfig Agente está em execução. Use o comando a seguir para visualizar o arquivo de log do pod do aplicativo.

    kubectl logs -n my-namespace -c appconfig-agent my-pod

    Localize uma declaração como a seguinte para o contêiner do AWS AppConfig Agente: [appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772

nota

Você pode ajustar o comportamento padrão do AWS AppConfig Agente inserindo ou alterando variáveis de ambiente. Para mais informações sobre as variáveis de ambiente disponíveis, consulte Usando variáveis de ambiente para configurar o AWS AppConfig Agente para Amazon ECS e Amazon EKS.

Usando variáveis de ambiente para configurar o AWS AppConfig Agente para Amazon ECS e Amazon EKS

Você pode configurar o AWS AppConfig Agente alterando as seguintes variáveis de ambiente para seu contêiner de agente.

Variável de ambiente Detalhes Valor padrão

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.

GET /applications/my_app/... Host: localhost:2772 Authorization: Bearer <token value>
Nenhum

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.

Importante

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 ter mais informações, consulte Segurança em AWS AppConfig.

Nenhum

HTTP_PORT

Esta variável de ambiente especifica a porta na qual o servidor HTTP do agente é executado.

2772

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. As variáveis diferenciam maiúsculas de minúsculas. Do mais detalhado ao menos detalhado, os níveis de log são: debug, info, warn, error e none. O Debug inclui informações detalhadas, incluindo informações de tempo, sobre o agente.

info

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. Você pode inserir um dos seguintes valores:

  • "app:env:manifest-config"

  • "file:/fully/qualified/path/to/manifest.json"

Para obter mais informações sobre esses recursos, consulte Recursos adicionais de recuperação.

verdadeiro

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

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

PREFETCH_LIST

Essa variável de ambiente especifica os dados de configuração que o agente solicita AWS AppConfig assim que é iniciado.

Nenhum

PRELOAD_BACKUPS

Se definido comotrue, 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 comofalse, o AWS AppConfig Agente só carrega 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 sua rede.

verdadeiro
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. Cada cabeçalho usa o formato a seguir:
"header: value"
Nenhum
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

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

Se a solicitação for para a recuperação inicial de dados, o agente retornará um erro ao seu aplicativo.

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.

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.

3000 milissegundos
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
ROLE_EXTERNAL_ID Esta variável de ambiente especifica o ID externo a ser usado com o ARN da função assumida. Nenhum
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
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

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.

verdadeiro

Recuperação de dados de configuração

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.

nota

Para recuperar dados de configuração se seu aplicativo usar uma barra invertida, por exemplo, “test-backend/test-service”, você precisará usar a codificação de URL.

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"