Usando o AWS AppConfig Agent com a Amazon ECS e a 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á.

Usando o AWS AppConfig Agent com a Amazon ECS e a Amazon EKS

Você pode se integrar AWS AppConfig ao Amazon Elastic Container Service (AmazonECS) e ao Amazon Elastic Kubernetes Service (EKSAmazon) usando o Agent. AWS AppConfig O agente funciona como um contêiner auxiliar executado junto com seus aplicativos de contêineres da ECS Amazon e da AmazonEKS. 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 ligando para recuperar os dados. HTTP GET

  • 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 obter 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 IAM permissões usada pela sua IAM função de serviço de contêiner. Especificamente, você deve adicionar as ações appconfig:StartConfigurationSession e appconfig:GetLatestConfiguration à política. As IAM funções do serviço de contêiner incluem o seguinte:

  • O papel da ECS tarefa da Amazon

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

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

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

Iniciando o AWS AppConfig agente para ECS integração com a Amazon

O contêiner auxiliar do AWS AppConfig Agent está disponível automaticamente em seu ambiente AmazonECS. Para usá-lo, você deve iniciá-lo, conforme descrito no procedimento a seguir.

Para iniciar a Amazon ECS (console)
  1. Abra o console na 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 Imagem URI, 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. ECSA Amazon 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. A 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 (Opcional) 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 na AmazonECS, consulte Passar variáveis de ambiente para um contêiner no Amazon Elastic Container Service Developer Guide.

Iniciando o AWS AppConfig agente para EKS integração com a Amazon

O contêiner auxiliar do AWS AppConfig Agent está disponível automaticamente em seu ambiente AmazonEKS. Para usá-lo, você deve iniciá-lo. O procedimento a seguir descreve como usar a ferramenta de linha de EKS kubectl comando da Amazon para iniciar o agente.

nota

Antes de continuar, verifique se kubeconfig o arquivo está atualizado. Para obter mais informações sobre como criar ou editar um kubeconfig arquivo, consulte Criação ou atualização de um arquivo kubeconfig para um EKS cluster da Amazon no Guia do usuário da Amazon EKS.

Para iniciar o AWS AppConfig Agent (ferramenta de linha de comando kubectl)
  1. Abra o manifesto do seu aplicativo e verifique se o EKS aplicativo da Amazon 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 manifesto de implantação.

    - 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:

  3. Execute o kubectl comando a seguir para aplicar as alterações ao seu cluster. Substituir my-deployment com o nome do seu manifesto de implantação.

    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 (Opcional) Usando variáveis de ambiente para configurar o AWS AppConfig Agente para Amazon ECS e Amazon EKS.

(Opcional) 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

Essa variável de ambiente define um token que deve ser fornecido ao solicitar dados de configuração do HTTP servidor do agente. O valor do token deve ser definido no cabeçalho de autorização da HTTP solicitação com um tipo de autorização deBearer. 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 obter mais informações, consulte Segurança em AWS AppConfig.

Nenhum

HTTP_PORT

Essa variável de ambiente especifica a porta na qual o HTTP servidor 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

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

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 Usando um manifesto para habilitar 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 o proxy URL a ser usado para conexões do agente com Serviços da AWS, inclusive AWS AppConfig. HTTPSe HTTP URLs são suportados. 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 IAM função. AWS AppConfig O agente assume essa função para recuperar os dados de configuração. Nenhum
ROLE_EXTERNAL_ID Essa variável de ambiente especifica a ID externa a ser usada com a função ARN assumida. Nenhum
ROLE_SESSION_NAME Essa variável de ambiente especifica o nome da sessão a ser associado às credenciais da função assumidaIAM. 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 são usados curl com um HTTP cliente. Você pode chamar o agente usando qualquer HTTP cliente disponível suportado pela linguagem do aplicativo ou pelas 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. 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"