Validatoren verstehen - 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.

Validatoren verstehen

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.

  • JSONSchema: 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-kodierte Zeichenfolge, und der ist eine Zeichenfolge. URI

{ "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 ValidateConfigurationActivity API Operationen StartDeployment und 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.

JSONSchema-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, mit denen sichergestellt wird, dass neue oder aktualisierte Konfigurationseinstellungen den für Ihre Anwendung erforderlichen bewährten Methoden 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 anhand eines SSM Dokuments 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:

  • In SSM Dokumenten gespeicherte Konfigurationsdaten müssen anhand eines zugehörigen JSON Schemas validiert werden, bevor Sie die Konfiguration dem System hinzufügen können. SSMFür Parameter ist keine Validierungsmethode erforderlich. Es wird jedoch empfohlen, eine Gültigkeitsprüfung für neue oder aktualisierte SSM Parameterkonfigurationen mithilfe von zu 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 von JSON Schema erfordert, müssen Sie einen Lambda-Validator erstellen.