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.
Tópicos
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)
Abra o console na https://console.aws.amazon.com/ecs/v2
. -
No painel de navegação, escolha Task definitions (Definições de tarefa).
-
Escolha a definição de tarefa para seu aplicativo e, em seguida, selecione a revisão mais recente.
-
Escolha Criar revisão, Criar revisão.
-
Escolha Adicionar mais contêineres.
-
Em Nome, insira um nome exclusivo para o contêiner do AWS AppConfig agente.
-
Em Imagem URI, insira:
public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x
-
Em Contêiner essencial, escolha Sim.
-
Na seção Mapeamentos de portas, escolha Adicionar mapeamento de portas.
-
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.
-
Escolha Criar. ECSA Amazon cria uma nova revisão do contêiner e exibe os detalhes.
-
No painel de navegação, escolha Clusters e, em seguida, escolha o cluster do aplicativo na lista.
-
Na guia Serviços, selecione o serviço para seu aplicativo.
-
Selecione Atualizar.
-
Em Configuração de implantação, em Revisão, escolha a revisão mais recente.
-
Selecione Atualizar. A Amazon ECS implanta a definição de tarefa mais recente.
-
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.
-
Na seção Contêineres, verifique se o contêiner do AWS AppConfig agente está listado.
-
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)
-
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 -
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: IfNotPresentnota
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 obter mais informações, consulte (Opcional) 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.
-
-
Execute o
kubectl
comando a seguir para aplicar as alterações ao seu cluster. Substituirmy-deployment
com o nome do seu manifesto de implantação.kubectl apply -f
my-deployment
.yml -
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-agentmy-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 |
---|---|---|
|
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 de
|
Nenhum |
|
Essa variável de ambiente permite que o AWS AppConfig Agente salve um backup de cada configuração recuperada no diretório especificado. ImportanteAs 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 |
|
Essa variável de ambiente especifica a porta na qual o HTTP servidor do agente é executado. |
2772 |
|
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: |
|
|
O local do disco em que os logs são gravados. Se não especificado, os logs serão gravados em stderr. |
Nenhum |
|
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:
Para obter mais informações sobre esses recursos, consulte Usando um manifesto para habilitar recursos adicionais de recuperação. |
verdadeiro |
|
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 |
|
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 |
|
Essa variável de ambiente especifica os dados de configuração que o agente solicita AWS AppConfig assim que é iniciado. |
Nenhum |
|
Se definido como |
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:
|
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. HTTPS e HTTP URLs são suportados. |
Nenhum |
|
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 |
|
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
"