AWS AppConfig Agent mit Amazon ECS und Amazon verwenden EKS - AWS AppConfig

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS AppConfig Agent mit Amazon ECS und Amazon verwenden EKS

Sie können Amazon Elastic Container Service (AmazonECS) und Amazon Elastic Kubernetes Service (AmazonEKS) mithilfe AWS AppConfig von Agent integrieren AWS AppConfig . Der Agent fungiert als Sidecar-Container, der neben Ihren Amazon ECS - und EKS Amazon-Container-Anwendungen ausgeführt wird. Der Agent verbessert die Verarbeitung und Verwaltung containerisierter Anwendungen auf folgende Weise:

  • Der Agent ruft in Ihrem Namen AWS AppConfig auf, indem er eine AWS Identity and Access Management (IAM) -Rolle verwendet und einen lokalen Cache mit Konfigurationsdaten verwaltet. Durch das Abrufen von Konfigurationsdaten aus dem lokalen Cache benötigt Ihre Anwendung weniger Codeaktualisierungen zur Verwaltung der Konfigurationsdaten, ruft Konfigurationsdaten in Millisekunden ab und ist nicht von Netzwerkproblemen betroffen, die Aufrufe solcher Daten unterbrechen können. *

  • Der Agent bietet eine native Oberfläche zum Abrufen und Auflösen von AWS AppConfig Feature-Flags.

  • Der sofort einsatzbereite Agent bietet bewährte Methoden für Caching-Strategien, Abfrageintervalle und die Verfügbarkeit lokaler Konfigurationsdaten und verfolgt gleichzeitig die für nachfolgende Serviceanfragen benötigten Konfigurationstoken.

  • Während der Ausführung im Hintergrund fragt der Agent die AWS AppConfig Datenebene regelmäßig nach Aktualisierungen der Konfigurationsdaten ab. Ihre containerisierte Anwendung kann die Daten abrufen, indem sie über Port 2772 (ein anpassbarer Standard-Portwert) eine Verbindung zu localhost herstellt und aufruft, um die Daten abzurufen HTTPGET.

  • AWS AppConfig Der Agent aktualisiert die Konfigurationsdaten in Ihren Containern, ohne diese Container neu starten oder recyceln zu müssen.

* Der AWS AppConfig Agent speichert Daten im Cache, wenn der Service Ihre Konfigurationsdaten zum ersten Mal abruft. Aus diesem Grund ist der erste Aufruf zum Abrufen von Daten langsamer als nachfolgende Aufrufe.

Bevor Sie beginnen

Für die Integration AWS AppConfig mit Ihren Containeranwendungen müssen Sie AWS AppConfig Artefakte und Konfigurationsdaten, einschließlich Feature-Flags oder Freiform-Konfigurationsdaten, erstellen. Weitere Informationen finden Sie unter Erstellen von Feature-Flags und Freiform-Konfigurationsdaten in AWS AppConfig.

Um Konfigurationsdaten abzurufen, die von gehostet werden AWS AppConfig, müssen Ihre Containeranwendungen mit Zugriff auf die AWS AppConfig Datenebene konfiguriert sein. Um Ihren Anwendungen Zugriff zu gewähren, aktualisieren Sie die IAM Berechtigungsrichtlinie, die von Ihrer IAM Container-Servicerolle verwendet wird. Insbesondere müssen Sie der Richtlinie die appconfig:GetLatestConfiguration Aktionen appconfig:StartConfigurationSession und hinzufügen. Zu den IAM Container-Servicerollen gehören:

  • Die ECS Amazon-Aufgabenrolle

  • Die EKS Amazon-Knotenrolle

  • Die AWS Fargate (Fargate) Pod-Ausführungsrolle (wenn Ihre EKS Amazon-Container Fargate für die Rechenverarbeitung verwenden)

Weitere Informationen zum Hinzufügen von Berechtigungen zu einer Richtlinie finden Sie unter Hinzufügen und Entfernen von IAM Identitätsberechtigungen im IAMBenutzerhandbuch.

Den AWS AppConfig Agenten für die ECS Amazon-Integration starten

Der AWS AppConfig Agent-Sidecar-Container ist automatisch in Ihrer ECS Amazon-Umgebung verfügbar. Um ihn zu verwenden, müssen Sie ihn starten, wie im folgenden Verfahren beschrieben.

Um Amazon ECS (Konsole) zu starten
  1. Öffnen Sie die Konsole auf https://console.aws.amazon.com/ecs/Version 2.

  2. Wählen Sie im Navigationsbereich Task definitions (Aufgabendefinitionen) aus.

  3. Wählen Sie die Aufgabendefinition für Ihre Anwendung und dann die neueste Version aus.

  4. Wählen Sie Neue Revision erstellen, Neue Revision erstellen aus.

  5. Wählen Sie Weitere Container hinzufügen.

  6. Geben Sie unter Name einen eindeutigen Namen für den AWS AppConfig Agent-Container ein.

  7. Geben Sie für Bild URI Folgendes ein: public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x

  8. Wählen Sie für Essential-Container die Option Ja aus.

  9. Wählen Sie im Abschnitt Portzuordnungen die Option Portzuordnung hinzufügen aus.

  10. Geben Sie für Container-Port den Wert ein. 2772

    Anmerkung

    AWS AppConfig Der Agent wird standardmäßig auf Port 2772 ausgeführt. Sie können einen anderen Port angeben.

  11. Wählen Sie Create (Erstellen) aus. Amazon ECS erstellt eine neue Container-Revision und zeigt die Details an.

  12. Wählen Sie im Navigationsbereich Clusters und dann Ihren Anwendungscluster in der Liste aus.

  13. Wählen Sie auf der Registerkarte Dienste den Dienst für Ihre Anwendung aus.

  14. Wählen Sie Aktualisieren.

  15. Wählen Sie unter Bereitstellungskonfiguration für Revision die neueste Revision aus.

  16. Wählen Sie Aktualisieren. Amazon ECS stellt die neueste Aufgabendefinition bereit.

  17. Nach Abschluss der Bereitstellung können Sie auf der Registerkarte Konfiguration und Aufgaben überprüfen, ob der AWS AppConfig Agent ausgeführt wird. Wählen Sie auf der Registerkarte Aufgaben die laufende Aufgabe aus.

  18. Vergewissern Sie sich, dass der AWS AppConfig Agent-Container im Abschnitt Container aufgeführt ist.

  19. Um zu überprüfen, ob der AWS AppConfig Agent gestartet wurde, wählen Sie die Registerkarte Logs. Suchen Sie für den AWS AppConfig Agent-Container nach einer Aussage wie der folgenden: [appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772

Anmerkung

Sie können das Standardverhalten des AWS AppConfig Agenten anpassen, indem Sie Umgebungsvariablen eingeben oder ändern. Hinweise zu den verfügbaren Umgebungsvariablen finden Sie unter(Optional) Verwenden von Umgebungsvariablen zur Konfiguration von AWS AppConfig Agent for Amazon ECS und Amazon EKS. Informationen zum Ändern von Umgebungsvariablen in Amazon ECS finden Sie unter Übergeben von Umgebungsvariablen an einen Container im Amazon Elastic Container Service Developer Guide.

Den AWS AppConfig Agenten für die EKS Amazon-Integration starten

Der AWS AppConfig Agent-Sidecar-Container ist automatisch in Ihrer EKS Amazon-Umgebung verfügbar. Um ihn zu verwenden, müssen Sie ihn starten. Das folgende Verfahren beschreibt, wie Sie das EKS kubectl Amazon-Befehlszeilentool verwenden, um den Agenten zu starten.

Anmerkung

Bevor Sie fortfahren, stellen Sie sicher, dass Ihre kubeconfig Datei auf dem neuesten Stand ist. Weitere Informationen zum Erstellen oder Bearbeiten einer kubeconfig Datei finden Sie unter Erstellen oder Aktualisieren einer kubeconfig-Datei für einen EKS Amazon-Cluster im EKSAmazon-Benutzerhandbuch.

So starten Sie den AWS AppConfig Agenten (kubectl-Befehlszeilentool)
  1. Öffnen Sie das Manifest für Ihre Anwendung und vergewissern Sie sich, dass Ihre EKS Amazon-Anwendung als Einzelcontainer-Bereitstellung ausgeführt wird. Der Inhalt der Datei sollte etwa wie folgt aussehen.

    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. Fügen Sie Ihrem Bereitstellungsmanifest die Details der AWS AppConfig Agent-Container-Definition hinzu.

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

    Notieren Sie die folgenden Informationen:

  3. Führen Sie den folgenden kubectl Befehl aus, um die Änderungen auf Ihren Cluster anzuwenden. Ersetzen my-deployment mit dem Namen Ihres Bereitstellungsmanifests.

    kubectl apply -f my-deployment.yml
  4. Stellen Sie nach Abschluss der Bereitstellung sicher, dass der AWS AppConfig Agent ausgeführt wird. Verwenden Sie den folgenden Befehl, um die Anwendungs-Pod-Protokolldatei anzuzeigen.

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

    Suchen Sie für den AWS AppConfig Agent-Container nach einer Anweisung wie der folgenden: [appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772

Anmerkung

Sie können das Standardverhalten des AWS AppConfig Agenten anpassen, indem Sie Umgebungsvariablen eingeben oder ändern. Hinweise zu den verfügbaren Umgebungsvariablen finden Sie unter(Optional) Verwenden von Umgebungsvariablen zur Konfiguration von AWS AppConfig Agent for Amazon ECS und Amazon EKS.

(Optional) Verwenden von Umgebungsvariablen zur Konfiguration von AWS AppConfig Agent for Amazon ECS und Amazon EKS

Sie können AWS AppConfig Agent konfigurieren, indem Sie die folgenden Umgebungsvariablen für Ihren Agent-Container ändern.

Umgebungsvariable Details Standardwert

ACCESS_TOKEN

Diese Umgebungsvariable definiert ein Token, das bereitgestellt werden muss, wenn Konfigurationsdaten vom HTTP Agent-Server angefordert werden. Der Wert des Tokens muss im Header der HTTP Anforderungsautorisierung mit dem Autorisierungstyp festgelegt werdenBearer. Ein Beispiel.

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

BACKUP_DIRECTORY

Diese Umgebungsvariable ermöglicht es dem AWS AppConfig Agenten, eine Sicherungskopie jeder abgerufenen Konfiguration im angegebenen Verzeichnis zu speichern.

Wichtig

Auf der Festplatte gesicherte Konfigurationen sind nicht verschlüsselt. Wenn Ihre Konfiguration vertrauliche Daten enthält, AWS AppConfig empfiehlt Ihnen, bei Ihren Dateisystemberechtigungen das Prinzip der geringsten Rechte anzuwenden. Weitere Informationen finden Sie unter Sicherheit in AWS AppConfig.

None

HTTP_PORT

Diese Umgebungsvariable gibt den Port an, auf dem der HTTP Server für den Agenten läuft.

2772

LOG_LEVEL

Diese Umgebungsvariable gibt den Detaillierungsgrad an, den der Agent protokolliert. Jede Ebene umfasst die aktuelle Ebene und alle höheren Ebenen. Bei den Variablen wird zwischen Groß- und Kleinschreibung unterschieden. Die Protokollebenen, von den meisten bis hin zu den am wenigsten detailliertendebug, lauten wie folgt: infowarn,error,, undnone. Debugenthält detaillierte Informationen, einschließlich Zeitinformationen, über den Agenten.

info

LOG_PATH

Der Speicherort auf der Festplatte, in den die Protokolle geschrieben werden. Wenn nicht angegeben, werden Protokolle auf stderr geschrieben.

None

MANIFEST

Diese Umgebungsvariable konfiguriert den AWS AppConfig Agenten so, dass er zusätzliche konfigurationsspezifische Funktionen wie das Abrufen mehrerer Konten und das Speichern der Konfiguration auf der Festplatte nutzt. Sie können einen der folgenden Werte eingeben:

  • "app:env:manifest-config"

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

Weitere Informationen zu diesen Funktionen finden Sie unter Verwenden eines Manifests, um zusätzliche Abruffunktionen zu aktivieren.

true

MAX_CONNECTIONS

Diese Umgebungsvariable konfiguriert die maximale Anzahl von Verbindungen, von denen der Agent Konfigurationen AWS AppConfig abruft.

3

POLL_INTERVAL

Diese Umgebungsvariable steuert, wie oft der Agent AWS AppConfig nach aktualisierten Konfigurationsdaten fragt. Sie können eine Anzahl von Sekunden für das Intervall angeben. Sie können auch eine Zahl mit einer Zeiteinheit angeben: s für Sekunden, m für Minuten und h für Stunden. Wenn keine Einheit angegeben ist, verwendet der Agent standardmäßig Sekunden. Beispielsweise ergeben 60, 60 Sekunden und 1 m dasselbe Abfrageintervall.

45 Sekunden

PREFETCH_LIST

Diese Umgebungsvariable gibt die Konfigurationsdaten an, die der Agent anfordert, AWS AppConfig sobald er gestartet wird.

None

PRELOAD_BACKUPS

Wenn auf gesetzttrue, lädt der AWS AppConfig Agent die im gefundenen Konfigurationssicherungen BACKUP_DIRECTORY in den Speicher und überprüft sofort, ob eine neuere Version des Dienstes existiert. Wenn diese Option auf gesetzt istfalse, lädt der AWS AppConfig Agent den Inhalt einer Konfigurationssicherung nur dann, wenn er keine Konfigurationsdaten vom Dienst abrufen kann, z. B. wenn ein Problem mit Ihrem Netzwerk vorliegt.

true
PROXY_HEADERS Diese Umgebungsvariable gibt Header an, die von dem Proxy benötigt werden, auf den in der PROXY_URL Umgebungsvariablen verwiesen wird. Der Wert ist eine durch Kommas getrennte Liste von Headern. Jeder Header verwendet das folgende Formular.
"header: value"
None
PROXY_URL Diese Umgebungsvariable gibt den Proxy URL an, der für Verbindungen vom Agenten zu verwendet werden soll AWS-Services, einschließlich AWS AppConfig. HTTPSund HTTP URLs werden unterstützt. None

REQUEST_TIMEOUT

Diese Umgebungsvariable steuert, wie lange der Agent auf eine Antwort wartet. AWS AppConfig Wenn der Dienst nicht antwortet, schlägt die Anfrage fehl.

Wenn es sich bei der Anfrage um den ersten Datenabruf handelt, gibt der Agent einen Fehler an Ihre Anwendung zurück.

Wenn das Timeout während einer Hintergrundüberprüfung auf aktualisierte Daten auftritt, protokolliert der Agent den Fehler und versucht es nach einer kurzen Verzögerung erneut.

Sie können die Anzahl der Millisekunden für das Timeout angeben. Sie können auch eine Zahl mit einer Zeiteinheit angeben: ms für Millisekunden und s für Sekunden. Wenn keine Einheit angegeben ist, verwendet der Agent standardmäßig Millisekunden. Beispiel: 5000, 5000 ms und 5 Sekunden führen zu demselben Wert für das Anforderungs-Timeout.

3000 Millisekunden
ROLE_ARN Diese Umgebungsvariable gibt den Amazon-Ressourcennamen (ARN) einer IAM Rolle an. AWS AppConfig Der Agent übernimmt diese Rolle, um Konfigurationsdaten abzurufen. None
ROLE_EXTERNAL_ID Diese Umgebungsvariable gibt die externe ID an, die mit der angenommenen Rolle verwendet werden sollARN. None
ROLE_SESSION_NAME Diese Umgebungsvariable gibt den Sitzungsnamen an, der den Anmeldeinformationen für die angenommene IAM Rolle zugeordnet werden soll. None
SERVICE_REGION Diese Umgebungsvariable gibt eine Alternative an AWS-Region , die der AWS AppConfig Agent verwendet, um den AWS AppConfig Dienst aufzurufen. Wenn diese Option nicht definiert ist, versucht der Agent, die aktuelle Region zu ermitteln. Wenn dies nicht möglich ist, kann der Agent nicht gestartet werden. None

WAIT_ON_MANIFEST

Diese Umgebungsvariable konfiguriert den AWS AppConfig Agenten so, dass er wartet, bis das Manifest verarbeitet ist, bevor der Start abgeschlossen wird.

true

Konfigurationsdaten werden abgerufen

Sie können Konfigurationsdaten mithilfe eines HTTP Localhost-Aufrufs vom AWS AppConfig Agenten abrufen. Die folgenden Beispiele werden curl mit einem HTTP Client verwendet. Sie können den Agenten mit jedem verfügbaren HTTP Client aufrufen, der von Ihrer Anwendungssprache oder verfügbaren Bibliotheken unterstützt wird.

Anmerkung

Wenn Ihre Anwendung einen Schrägstrich verwendet, z. B. „test-backend/test-service“, müssen Sie Kodierung verwenden, um Konfigurationsdaten abzurufen. URL

Um den vollständigen Inhalt einer bereitgestellten Konfiguration abzurufen

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

Um ein einzelnes Flag und seine Attribute aus einer AWS AppConfig Konfiguration des Typs abzurufen Feature Flag

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

Um von einer AWS AppConfig Konfiguration des Typs aus auf mehrere Flags und ihre Attribute zuzugreifen Feature Flag

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