Création d'un profil de configuration dans AWS AppConfig - AWS AppConfig

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.

Création d'un profil de configuration dans AWS AppConfig

Un profil de configuration inclut, entre autres, un URI qui permet de AWS AppConfig localiser vos données de configuration dans leur emplacement enregistré et un type de configuration. AWS AppConfig prend en charge deux types de profils de configuration : les indicateurs de fonctionnalité et les configurations de forme libre. Une configuration d'indicateur de fonctionnalité stocke les données dans le magasin de configuration AWS AppConfig hébergé et l'URI est simplehosted. Une configuration libre peut stocker des données dans le magasin de configuration AWS AppConfig hébergé, dans diverses fonctionnalités de Systems Manager ou dans un AWS service intégré à. AWS AppConfig Pour plus d’informations, consultez Création d'un profil de configuration sous forme libre dans AWS AppConfig.

Un profil de configuration peut également inclure des validateurs facultatifs pour garantir l'exactitude syntaxique et sémantique de vos données de configuration. AWS AppConfig effectue une vérification à l'aide des validateurs lorsque vous démarrez un déploiement. Si des erreurs sont détectées, le déploiement s'arrête avant d'apporter des modifications aux cibles de la configuration.

Note

Dans la mesure du possible, nous vous recommandons d'héberger vos données de configuration dans le magasin de configuration AWS AppConfig hébergé, qui offre le plus de fonctionnalités et d'améliorations.

À propos des 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.

  • Schéma JSON : pris en charge pour les configurations de formulaire libre. (valide AWS AppConfig automatiquement les indicateurs de fonctionnalité par rapport à un schéma JSON.)

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 l'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, latence de démarrage comprise.

Validateurs de schéma JSON

Si vous créez une configuration dans un document SSM, vous devez spécifier ou créer un schéma JSON pour cette configuration. Un schéma JSON définit les propriétés autorisées pour chaque paramètre de configuration d'application. Ce schéma JSON fonctionne comme un ensemble de règles visant à garantir que les nouveaux paramètres de configuration ou les paramètres de configuration mis à jour sont conformes aux bonnes 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 document SSM, 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 schéma JSON :

  • Les données de configuration stockées dans les documents SSM doivent être validées par rapport à un schéma JSON associé avant de pouvoir ajouter la configuration au système. Les paramètres SSM 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 paramètres SSM nouvelles ou mises à jour en utilisant. AWS Lambda

  • Une configuration dans un document SSM utilise le type de ApplicationConfiguration document. Le schéma JSON correspondant utilise le type de ApplicationConfigurationSchema document.

  • AWS AppConfig prend en charge le schéma JSON version 4.X pour le schéma en ligne. Si la configuration de votre application nécessite une version différente du schéma JSON, vous devez créer un validateur Lambda.