Erstellen eines Konfigurationsprofils in AWS AppConfig - 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.

Erstellen eines Konfigurationsprofils in AWS AppConfig

Ein Konfigurationsprofil umfasst unter anderem eine URI, die es ermöglicht, Ihre Konfigurationsdaten AWS AppConfig an ihrem gespeicherten Speicherort zu finden, und einen Konfigurationstyp. AWS AppConfig unterstützt zwei Arten von Konfigurationsprofilen: Feature-Flags und Freiform-Konfigurationen. Eine Feature-Flag-Konfiguration speichert Daten im AWS AppConfig gehosteten Konfigurationsspeicher, und der URI ist einfachhosted. Eine Freiformkonfiguration kann Daten im AWS AppConfig gehosteten Konfigurationsspeicher, in verschiedenen Systems Manager Manager-Funktionen oder in einem AWS Dienst speichern, der in integriert ist. AWS AppConfig Weitere Informationen finden Sie unter Erstellen eines Freiform-Konfigurationsprofils in AWS AppConfig.

Ein Konfigurationsprofil kann auch optionale Validatoren enthalten, um sicherzustellen, dass Ihre Konfigurationsdaten syntaktisch und semantisch korrekt sind. AWS AppConfig führt eine Überprüfung mithilfe der Validatoren durch, wenn Sie eine Bereitstellung starten. Werden Fehler erkannt, wird die Bereitstellung beendet, bevor Änderungen an den Zielen der Konfiguration vorgenommen werden.

Anmerkung

Wenn möglich, empfehlen wir, Ihre Konfigurationsdaten im AWS AppConfig gehosteten Konfigurationsspeicher zu hosten, da dieser die meisten Funktionen und Verbesserungen bietet.

Über Validatoren

Wenn Sie ein Konfigurationsprofil erstellen, haben Sie die Möglichkeit, bis zu zwei Validatoren anzugeben. Ein Validator stellt sicher, dass Ihre Konfigurationsdaten syntaktisch und semantisch korrekt sind. Wenn Sie einen Validator verwenden möchten, müssen Sie ihn erstellen, bevor Sie das Konfigurationsprofil erstellen. AWS AppConfig unterstützt die folgenden Arten von Validatoren:

  • AWS Lambda Funktionen: Wird für Feature-Flags und Freiformkonfigurationen unterstützt.

  • JSON-Schema: Wird für Freiformkonfigurationen unterstützt. (validiert Feature-Flags AWS AppConfig automatisch anhand eines JSON-Schemas.)

AWS Lambda Funktionsvalidatoren

Lambda-Funktionsvalidatoren müssen mit dem folgenden Ereignisschema konfiguriert werden. AWS AppConfig verwendet dieses Schema, um die Lambda-Funktion aufzurufen. Der Inhalt ist eine Base64-codierte Zeichenfolge und der URI ist eine Zeichenfolge.

{ "applicationId": "The application ID of the configuration profile being validated", "configurationProfileId": "The ID of the configuration profile being validated", "configurationVersion": "The version of the configuration profile being validated", "content": "Base64EncodedByteString", "uri": "The configuration uri" }

AWS AppConfig überprüft, ob der X-Amz-Function-Error Lambda-Header in der Antwort gesetzt ist. Lambda setzt diesen Header, wenn die Funktion eine Ausnahme auslöst. Weitere Informationen zu X-Amz-Function-Error finden Sie unter Fehlerbehandlung und automatische Wiederholungen AWS Lambda im AWS Lambda Entwicklerhandbuch.

Hier ist ein einfaches Beispiel für einen Lambda-Antwortcode für eine erfolgreiche Validierung.

import json def handler(event, context): #Add your validation logic here print("We passed!")

Hier ist ein einfaches Beispiel für einen Lambda-Antwortcode für eine erfolglose Validierung.

def handler(event, context): #Add your validation logic here raise Exception("Failure!")

Hier sehen Sie ein weiteres Beispiel, bei dem nur überprüft wird, ob der Konfigurationsparameter eine Primzahl ist.

function isPrime(value) { if (value < 2) { return false; } for (i = 2; i < value; i++) { if (value % i === 0) { return false; } } return true; } exports.handler = async function(event, context) { console.log('EVENT: ' + JSON.stringify(event, null, 2)); const input = parseInt(Buffer.from(event.content, 'base64').toString('ascii')); const prime = isPrime(input); console.log('RESULT: ' + input + (prime ? ' is' : ' is not') + ' prime'); if (!prime) { throw input + "is not prime"; } }

AWS AppConfig ruft Ihre Validierung Lambda auf, wenn Sie die StartDeployment und ValidateConfigurationActivity API-Operationen aufrufen. Sie müssen appconfig.amazonaws.com Berechtigungen bereitstellen, um Ihr Lambda aufzurufen. Weitere Informationen finden Sie unter Funktionszugriff auf Dienste gewähren. AWS AWS AppConfig begrenzt die Validierungs-Lambda-Laufzeit auf 15 Sekunden, einschließlich Startlatenz.

JSON-Schema-Validatoren

Wenn Sie eine Konfiguration in einem SSM-Dokument erstellen, müssen Sie ein JSON-Schema für diese Konfiguration angeben oder erstellen. Ein JSON-Schema definiert die zulässigen Eigenschaften für jede Anwendungskonfigurationseinstellung. Das JSON-Schema funktioniert wie eine Reihe von Regeln. Es stellt sicher, dass neue oder aktualisierte Konfigurationseinstellungen den bewährten Methoden Ihrer Anwendung entsprechen. Ein Beispiel.

{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "$id$", "description": "BasicFeatureToggle-1", "type": "object", "additionalProperties": false, "patternProperties": { "[^\\s]+$": { "type": "boolean" } }, "minProperties": 1 }

Wenn Sie eine Konfiguration aus einem SSM-Dokument erstellen, überprüft das System automatisch, ob die Konfiguration den Schemaanforderungen entspricht. Ist dies nicht der Fall, gibt AWS AppConfig einen Validierungsfehler zurückgegeben.

Wichtig

Beachten Sie die folgenden wichtigen Informationen zu JSON-Schemavalidatoren:

  • Konfigurationsdaten, die in SSM-Dokumenten gespeichert sind, müssen anhand eines zugehörigen JSON-Schemas validiert werden, bevor Sie die Konfiguration dem System hinzufügen können. SSM-Parameter erfordern keine Validierungsmethode, wir empfehlen jedoch, dass Sie eine Validierungsprüfung für neue oder aktualisierte SSM-Parameterkonfigurationen mithilfe von erstellen. AWS Lambda

  • Eine Konfiguration in einem SSM-Dokument verwendet den ApplicationConfiguration Dokumenttyp. Das entsprechende JSON-Schema verwendet den ApplicationConfigurationSchema Dokumenttyp.

  • AWS AppConfig unterstützt JSON-Schemaversion 4.X für Inline-Schemas. Wenn Ihre Anwendungskonfiguration eine andere Version des JSON-Schemas erfordert, müssen Sie einen Lambda-Validator erstellen.