Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Comprendre les validateurs
Lorsque vous créez un profil de configuration, vous avez la possibilité de spécifier jusqu'à deux validateurs. Un validateur garantit que vos données de configuration sont syntaxiquement et sémantiquement correctes. Si vous envisagez d'utiliser un validateur, vous devez le créer avant de créer le profil de configuration. AWS AppConfig prend en charge les types de validateurs suivants :
-
AWS Lambda fonctions : prise en charge pour les indicateurs de fonctionnalités et les configurations de forme libre.
-
JSONSchéma : pris en charge pour les configurations de formulaire libre. (valide AWS AppConfig automatiquement les indicateurs de fonctionnalité par rapport à un JSON schéma.)
AWS Lambda validateurs de fonctions
Les validateurs de fonctions Lambda doivent être configurés avec le schéma d'événements suivant. AWS AppConfig utilise ce schéma pour appeler la fonction Lambda. Le contenu est une chaîne codée en base64, et le URI est une chaîne.
{ "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 vérifie que l'en-tête X-Amz-Function-Error
Lambda est défini dans la réponse. Lambda définit cet en-tête si la fonction génère une exception. Pour plus d'informationsX-Amz-Function-Error
, consultez la section Gestion des erreurs et tentatives automatiques AWS Lambda dans le Guide du AWS Lambda développeur.
Voici un exemple simple de code de réponse Lambda pour une validation réussie.
import json def handler(event, context): #Add your validation logic here print("We passed!")
Voici un exemple simple de code de réponse Lambda pour une validation infructueuse.
def handler(event, context): #Add your validation logic here raise Exception("Failure!")
Voici un autre exemple qui n'est valide que si le paramètre de configuration est un nombre premier.
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 appelle votre Lambda de validation lorsque vous appelez les opérations StartDeployment
et ValidateConfigurationActivity
API. Vous devez fournir des appconfig.amazonaws.com
autorisations pour appeler votre Lambda. Pour plus d'informations, consultez la section Autorisation de l'accès aux fonctions aux AWS services. AWS AppConfig limite la durée d'exécution Lambda de validation à 15 secondes, y compris la latence de démarrage.
JSONValidateurs de schéma
Si vous créez une configuration dans un SSM document, vous devez spécifier ou créer un JSON schéma pour cette configuration. Un JSON schéma définit les propriétés autorisées pour chaque paramètre de configuration d'application. Le JSON schéma fonctionne comme un ensemble de règles garantissant que les paramètres de configuration nouveaux ou mis à jour sont conformes aux meilleures pratiques requises par votre application. Voici un exemple.
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "$id$", "description": "BasicFeatureToggle-1", "type": "object", "additionalProperties": false, "patternProperties": { "[^\\s]+$": { "type": "boolean" } }, "minProperties": 1 }
Lorsque vous créez une configuration à partir d'un SSM document, le système vérifie automatiquement que la configuration est conforme aux exigences du schéma. Si tel n'est pas le cas, AWS AppConfig renvoie une erreur de validation.
Important
Notez les informations importantes suivantes concernant les validateurs de JSON schéma :
-
Les données de configuration stockées dans SSM les documents doivent être validées par rapport à un JSON schéma associé avant que vous puissiez ajouter la configuration au système. SSMles paramètres ne nécessitent pas de méthode de validation, mais nous vous recommandons de créer un contrôle de validation pour les configurations de SSM paramètres nouvelles ou mises à jour en utilisant AWS Lambda.
-
La configuration d'un SSM document utilise le type de
ApplicationConfiguration
document. Le JSON schéma correspondant utilise le type deApplicationConfigurationSchema
document. -
AWS AppConfig prend en charge la version 4.X du JSON schéma pour le schéma en ligne. Si la configuration de votre application nécessite une version différente de JSON Schema, vous devez créer un validateur Lambda.