Utilizzo di AWS AppConfig Agent con Amazon ECS e Amazon EKS - AWS AppConfig

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di AWS AppConfig Agent con Amazon ECS e Amazon EKS

Puoi effettuare l'integrazione AWS AppConfig con Amazon Elastic Container Service (AmazonECS) e Amazon Elastic Kubernetes Service (EKSAmazon) utilizzando Agent. AWS AppConfig L'agente funziona come un contenitore secondario che funziona insieme alle tue applicazioni EKS container Amazon ECS e Amazon. L'agente migliora l'elaborazione e la gestione delle applicazioni containerizzate nei seguenti modi:

  • L'agente chiama AWS AppConfig per conto dell'utente utilizzando un ruolo AWS Identity and Access Management (IAM) e gestendo una cache locale di dati di configurazione. Estraendo i dati di configurazione dalla cache locale, l'applicazione richiede un minor numero di aggiornamenti del codice per gestire i dati di configurazione, recupera i dati di configurazione in millisecondi e non è interessata da problemi di rete che possono interrompere le chiamate per tali dati. *

  • L'agente offre un'esperienza nativa per il recupero e la risoluzione dei AWS AppConfig flag di funzionalità.

  • Immediatamente, l'agente fornisce le migliori pratiche per le strategie di memorizzazione nella cache, gli intervalli di polling e la disponibilità dei dati di configurazione locali, tenendo traccia dei token di configurazione necessari per le successive chiamate di servizio.

  • Durante l'esecuzione in background, l'agente analizza periodicamente il piano dati per verificare la presenza di aggiornamenti dei AWS AppConfig dati di configurazione. L'applicazione containerizzata può recuperare i dati connettendosi a localhost sulla porta 2772 (un valore di porta predefinito personalizzabile) e chiamando per recuperare i dati. HTTP GET

  • AWS AppConfig L'agente aggiorna i dati di configurazione nei contenitori senza dover riavviare o riciclare tali contenitori.

*AWS AppConfig L'agente memorizza i dati nella cache la prima volta che il servizio recupera i dati di configurazione. Per questo motivo, la prima chiamata per recuperare i dati è più lenta delle chiamate successive.

Prima di iniziare

Per l'integrazione AWS AppConfig con le applicazioni container, è necessario creare AWS AppConfig artefatti e dati di configurazione, inclusi flag di funzionalità o dati di configurazione in formato libero. Per ulteriori informazioni, consulta Creazione di flag di funzionalità e dati di configurazione in formato libero in AWS AppConfig.

Per recuperare i dati di configurazione ospitati da AWS AppConfig, le applicazioni container devono essere configurate con accesso al piano dati. AWS AppConfig Per consentire l'accesso alle applicazioni, aggiorna la politica di IAM autorizzazione utilizzata dal ruolo di servizio IAM del contenitore. In particolare, è necessario aggiungere le appconfig:GetLatestConfiguration azioni appconfig:StartConfigurationSession e alla policy. IAMI ruoli del servizio Container includono quanto segue:

  • Il ruolo dell'ECSattività di Amazon

  • Il ruolo del EKS nodo Amazon

  • Il ruolo di esecuzione del AWS Fargate (Fargate) pod (se i EKS contenitori Amazon utilizzano Fargate per l'elaborazione del calcolo)

Per ulteriori informazioni sull'aggiunta di autorizzazioni a una politica, consulta Aggiungere e rimuovere le autorizzazioni di IAM identità nella Guida per l'utente. IAM

Avvio dell' AWS AppConfig agente per l'ECSintegrazione con Amazon

Il contenitore sidecar AWS AppConfig Agent è automaticamente disponibile nel tuo ECS ambiente Amazon. Per utilizzarlo, è necessario avviarlo, come descritto nella procedura seguente.

Per avviare Amazon ECS (console)
  1. Apri la console nella https://console.aws.amazon.com/ecs/versione 2.

  2. Nel pannello di navigazione, scegli Task Definitions (Definizioni di processo).

  3. Scegliete la definizione dell'attività per l'applicazione, quindi selezionate la revisione più recente.

  4. Scegli Crea nuova revisione, Crea nuova revisione.

  5. Scegli Aggiungi altri contenitori.

  6. In Nome, inserisci un nome univoco per il contenitore AWS AppConfig dell'agente.

  7. Per Immagine URI, inserisci: public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x

  8. Per Essential container, scegli .

  9. Nella sezione Mappature delle porte, scegli Aggiungi mappatura delle porte.

  10. Per Container port, inserisci. 2772

    Nota

    AWS AppConfig Per impostazione predefinita, l'agente viene eseguito sulla porta 2772. È possibile specificare una porta diversa.

  11. Scegli Create (Crea) . Amazon ECS crea una nuova revisione del contenitore e ne visualizza i dettagli.

  12. Nel riquadro di navigazione, scegli Cluster, quindi scegli il cluster di applicazioni nell'elenco.

  13. Nella scheda Servizi, seleziona il servizio per la tua applicazione.

  14. Scegli Aggiorna.

  15. In Configurazione di distribuzione, per Revisione, scegli la revisione più recente.

  16. Scegli Aggiorna. Amazon ECS implementa la definizione di attività più recente.

  17. Al termine della distribuzione, puoi verificare che l' AWS AppConfig agente sia in esecuzione nella scheda Configurazione e attività. Nella scheda Attività, scegli l'attività in esecuzione.

  18. Nella sezione Contenitori, verifica che il contenitore AWS AppConfig dell'agente sia elencato.

  19. Per verificare che AWS AppConfig l'agente sia stato avviato, scegli la scheda Registri. Individua un'istruzione come la seguente per il contenitore dell' AWS AppConfig agente: [appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772

Nota

È possibile regolare il comportamento predefinito di AWS AppConfig Agent inserendo o modificando le variabili di ambiente. Per informazioni sulle variabili di ambiente disponibili, vedere(Facoltativo) Utilizzo di variabili di ambiente per configurare AWS AppConfig Agent per Amazon ECS e Amazon EKS. Per informazioni su come modificare le variabili di ambiente in AmazonECS, consulta Passing environment variables to a container nella Amazon Elastic Container Service Developer Guide.

Avvio dell' AWS AppConfig agente per l'EKSintegrazione con Amazon

Il contenitore sidecar AWS AppConfig Agent è automaticamente disponibile nel tuo EKS ambiente Amazon. Per usarlo, devi avviarlo. La procedura seguente descrive come utilizzare lo strumento da riga di EKS kubectl comando di Amazon per avviare l'agente.

Nota

Prima di continuare, assicurati che il kubeconfig file sia aggiornato. Per ulteriori informazioni sulla creazione o la modifica di un kubeconfig file, consulta Creazione o aggiornamento di un file kubeconfig per un EKS cluster Amazon nella Amazon EKS User Guide.

Per avviare AWS AppConfig Agent (strumento da riga di comando kubectl)
  1. Apri il manifesto della tua applicazione e verifica che EKS l'applicazione Amazon sia in esecuzione come distribuzione a contenitore singolo. Il contenuto del file dovrebbe essere simile al seguente.

    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. Aggiungi i dettagli della definizione del contenitore AWS AppConfig Agent al manifesto di distribuzione.

    - 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

    Osservare le seguenti informazioni.

  3. Esegui il kubectl comando seguente per applicare le modifiche al cluster. Replace (Sostituisci) my-deployment con il nome del manifesto di distribuzione.

    kubectl apply -f my-deployment.yml
  4. Al termine della distribuzione, verifica che AWS AppConfig l'agente sia in esecuzione. Utilizzate il comando seguente per visualizzare il file di registro del pod dell'applicazione.

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

    Individuate un'istruzione come la seguente per il contenitore AWS AppConfig Agent: [appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772

Nota

È possibile regolare il comportamento predefinito di AWS AppConfig Agent inserendo o modificando le variabili di ambiente. Per informazioni sulle variabili di ambiente disponibili, vedere(Facoltativo) Utilizzo di variabili di ambiente per configurare AWS AppConfig Agent per Amazon ECS e Amazon EKS.

(Facoltativo) Utilizzo di variabili di ambiente per configurare AWS AppConfig Agent per Amazon ECS e Amazon EKS

Puoi configurare AWS AppConfig Agent modificando le seguenti variabili di ambiente per il tuo contenitore di agenti.

Variabile di ambiente Informazioni Valore predefinito

ACCESS_TOKEN

Questa variabile di ambiente definisce un token che deve essere fornito quando si richiedono i dati di configurazione dal HTTP server dell'agente. Il valore del token deve essere impostato nell'intestazione di autorizzazione della HTTP richiesta con un tipo di autorizzazione di. Bearer Ecco un esempio.

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

BACKUP_DIRECTORY

Questa variabile di ambiente consente all' AWS AppConfig agente di salvare un backup di ogni configurazione recuperata nella directory specificata.

Importante

Le configurazioni di cui è stato eseguito il backup su disco non sono crittografate. Se la configurazione contiene dati sensibili, si AWS AppConfig consiglia di applicare il principio del privilegio minimo con le autorizzazioni del file system. Per ulteriori informazioni, consulta Sicurezza in AWS AppConfig.

Nessuno

HTTP_PORT

Questa variabile di ambiente specifica la porta su cui viene eseguito il server per l'HTTPagente.

2772

LOG_LEVEL

Questa variabile di ambiente specifica il livello di dettaglio registrato dall'agente. Ogni livello include il livello corrente e tutti i livelli superiori. Le variabili distinguono tra maiuscole e minuscole. Dal più dettagliato al meno dettagliato, i livelli di registro sono: debuginfo,warn,error, enone. Debuginclude informazioni dettagliate, incluse informazioni sulla tempistica, sull'agente.

info

LOG_PATH

La posizione su disco in cui vengono scritti i log. Se non specificato, i log vengono scritti su stderr.

Nessuno

MANIFEST

Questa variabile di ambiente configura AWS AppConfig Agent per sfruttare funzionalità aggiuntive relative alla configurazione, come il recupero di più account e il salvataggio della configurazione su disco. È possibile inserire uno dei seguenti valori:

  • "app:env:manifest-config"

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

Per ulteriori informazioni su queste caratteristiche, consultare Utilizzo di un manifesto per abilitare funzionalità di recupero aggiuntive.

true

MAX_CONNECTIONS

Questa variabile di ambiente configura il numero massimo di connessioni utilizzate dall'agente per recuperare le configurazioni. AWS AppConfig

3

POLL_INTERVAL

Questa variabile di ambiente controlla la frequenza con cui l'agente richiede dati di configurazione aggiornati. AWS AppConfig È possibile specificare un numero di secondi per l'intervallo. È inoltre possibile specificare un numero con un'unità di tempo: s per secondi, m per minuti e h per ore. Se non viene specificata un'unità, l'agente utilizza come impostazione predefinita i secondi. Ad esempio, 60, 60 e 1 m generano lo stesso intervallo di sondaggio.

45 secondi

PREFETCH_LIST

Questa variabile di ambiente specifica i dati di configurazione richiesti dall'agente non AWS AppConfig appena viene avviato.

Nessuno

PRELOAD_BACKUPS

Se impostato sutrue, AWS AppConfig l'agente carica i backup di configurazione presenti BACKUP_DIRECTORY nella memoria e verifica immediatamente se esiste una versione più recente del servizio. Se impostato sufalse, l' AWS AppConfig agente carica i contenuti da un backup di configurazione solo se non è in grado di recuperare i dati di configurazione dal servizio, ad esempio se c'è un problema con la rete.

true
PROXY_HEADERS Questa variabile di ambiente specifica le intestazioni richieste dal proxy a cui fa riferimento la variabile di ambiente. PROXY_URL Il valore è un elenco di intestazioni separate da virgole. Ogni intestazione utilizza il seguente modulo.
"header: value"
Nessuno
PROXY_URL Questa variabile di ambiente specifica il proxy da URL utilizzare per le connessioni dall'agente a AWS servizi, incluso. AWS AppConfigHTTPSe HTTP URLs sono supportati. Nessuno

REQUEST_TIMEOUT

Questa variabile di ambiente controlla la quantità di tempo da AWS AppConfig cui l'agente attende una risposta. Se il servizio non risponde, la richiesta ha esito negativo.

Se la richiesta riguarda il recupero iniziale dei dati, l'agente restituisce un errore all'applicazione.

Se il timeout si verifica durante un controllo in background per verificare la presenza di dati aggiornati, l'agente registra l'errore e riprova dopo un breve ritardo.

È possibile specificare il numero di millisecondi per il timeout. È inoltre possibile specificare un numero con un'unità di tempo: ms per millisecondi e s per secondi. Se non viene specificata un'unità, l'agente utilizza come impostazione predefinita i millisecondi. Ad esempio, 5000, 5000 ms e 5 secondi generano lo stesso valore di timeout della richiesta.

3000 millisecondi
ROLE_ARN Questa variabile di ambiente specifica l'Amazon Resource Name (ARN) di un IAM ruolo. AWS AppConfig L'agente assume questo ruolo per recuperare i dati di configurazione. Nessuno
ROLE_EXTERNAL_ID Questa variabile di ambiente specifica l'ID esterno da utilizzare con il ruolo assunto. ARN Nessuno
ROLE_SESSION_NAME Questa variabile di ambiente specifica il nome della sessione da associare alle credenziali per il ruolo assunto. IAM Nessuno
SERVICE_REGION Questa variabile di ambiente specifica un'alternativa Regione AWS utilizzata dall' AWS AppConfig agente per chiamare il servizio. AWS AppConfig Se non viene definita, l'agente tenta di determinare la regione corrente. In caso contrario, l'agente non si avvia. Nessuno

WAIT_ON_MANIFEST

Questa variabile di ambiente configura l' AWS AppConfig agente in modo che attenda l'elaborazione del manifesto prima di completare l'avvio.

true

Recupero dei dati di configurazione

È possibile recuperare i dati di configurazione dall' AWS AppConfig agente utilizzando una HTTP chiamata localhost. I seguenti esempi vengono utilizzati curl con un HTTP client. È possibile chiamare l'agente utilizzando qualsiasi HTTP client disponibile supportato dal linguaggio dell'applicazione o dalle librerie disponibili.

Nota

Per recuperare i dati di configurazione se l'applicazione utilizza una barra, ad esempio «test-backend/test-service», è necessario utilizzare la codifica. URL

Per recuperare il contenuto completo di qualsiasi configurazione distribuita

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

Per recuperare un singolo flag e i relativi attributi da una AWS AppConfig configurazione di tipo Feature Flag

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

Per accedere a più flag e ai relativi attributi da una AWS AppConfig configurazione di tipo Feature Flag

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