Création d'un profil de configuration d'indicateur de fonctionnalité 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 d'indicateur de fonctionnalité dans AWS AppConfig

Vous pouvez utiliser des indicateurs de fonctionnalité pour activer ou désactiver des fonctionnalités au sein de vos applications ou pour configurer différentes caractéristiques des fonctionnalités de vos applications à l'aide d'attributs d'indicateur. AWS AppConfig stocke les configurations d'indicateurs de fonctionnalités dans le magasin de configuration AWS AppConfig hébergé dans un format d'indicateur de fonctionnalité qui contient des données et des métadonnées relatives à vos indicateurs et aux attributs des indicateurs. Pour plus d'informations sur le magasin de configuration AWS AppConfig hébergé, consultez À propos du magasin de configuration AWS AppConfig hébergé la section.

Avant de commencer

Dans la procédure suivante, dans la section optionnelle Chiffrement, vous pouvez choisir une clé AWS Key Management Service (AWS KMS). Cette clé gérée par le client vous permet de chiffrer les nouvelles versions des données de configuration dans le magasin de configuration AWS AppConfig hébergé. Pour plus d'informations sur cette clé, consultez la section AWS AppConfig Supporte les touches du gestionnaire de clientèleSécurité dans AWS AppConfig.

La procédure suivante vous permet également d'associer une extension à un profil de configuration d'indicateur de fonctionnalité. Une extension augmente votre capacité à injecter de la logique ou du comportement à différents moments du AWS AppConfig flux de travail de création ou de déploiement d'une configuration. Pour plus d’informations, consultez À propos des AWS AppConfig extensions.

Enfin, dans la section Attributs des indicateurs d'entités, lorsque vous entrez les détails des attributs d'un nouvel indicateur d'entité, vous pouvez spécifier des contraintes. Les contraintes garantissent que les valeurs d'attribut inattendues ne sont pas déployées dans votre application. AWS AppConfig prend en charge les types d'attributs de drapeau suivants et les contraintes correspondantes.

Type Contrainte Description
String Expression régulière

Modèle Regex pour la chaîne

Enum

Liste des valeurs acceptables pour la chaîne

Nombre Minimum

Valeur numérique minimale pour l'attribut

Maximum

Valeur numérique maximale pour l'attribut

Booléen Aucun Aucun
Tableau de chaînes Expression régulière Modèle Regex pour les éléments du tableau
Enum Liste des valeurs acceptables pour les éléments du tableau
Tableau de numéros Minimum Valeur numérique minimale pour les éléments du tableau
Maximum Valeur numérique maximale pour les éléments du tableau

Création d'un profil de configuration d'indicateur de fonctionnalité (console)

Utilisez la procédure suivante pour créer un profil de configuration d'indicateur de AWS AppConfig fonctionnalité à l'aide de la AWS AppConfig console.

Pour créer un profil de configuration
  1. Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/appconfig/.

  2. Dans le volet de navigation, choisissez Applications, puis choisissez une application que vous avez créée dansCréation d'un espace de noms pour votre application dans AWS AppConfig.

  3. Choisissez l'onglet Profils de configuration et indicateurs de fonctionnalités, puis choisissez Créer une configuration.

  4. Dans la section Options de configuration, choisissez Feature flag.

  5. Faites défiler vers le bas. Dans la section Profil de configuration, pour Nom du profil de configuration, entrez un nom.

  6. (Facultatif) Développez la description et entrez une description.

  7. (Facultatif) Développez les options supplémentaires et effectuez les opérations suivantes, si nécessaire.

    1. Dans la liste Chiffrement, choisissez une clé AWS Key Management Service (AWS KMS) dans la liste.

    2. Dans la section Associer des extensions, choisissez une extension dans la liste.

    3. Dans la section Balises, choisissez Ajouter une nouvelle balise, puis spécifiez une clé et une valeur facultative.

  8. Choisissez Suivant.

  9. Dans la section Définition du drapeau de fonctionnalité, pour Nom du drapeau, entrez un nom.

  10. Pour la touche Drapeau, entrez un identifiant de drapeau pour distinguer les indicateurs au sein d'un même profil de configuration. Les drapeaux d'un même profil de configuration ne peuvent pas avoir la même clé. Une fois le drapeau créé, vous pouvez modifier le nom du drapeau, mais pas la clé du drapeau.

  11. (Facultatif) Développez la description et entrez les informations relatives à cet indicateur.

  12. Sélectionnez Ceci est un drapeau à court terme et choisissez éventuellement une date à laquelle le drapeau doit être désactivé ou supprimé. Notez que cela AWS AppConfig ne désactive pas le drapeau.

  13. Dans la section Attributs du drapeau, choisissez Définir l'attribut. Les attributs vous permettent de fournir des valeurs supplémentaires dans votre drapeau.

  14. Pour Clé, spécifiez une touche indicateur et choisissez son type dans la liste Type. Vous pouvez éventuellement valider les valeurs des attributs par rapport aux contraintes spécifiées. L'image suivante illustre cet affichage :

    Exemple d'attributs d'indicateur pour un indicateur de AWS AppConfig fonctionnalité

    Choisissez Définir un attribut pour ajouter des attributs supplémentaires.

    Note

    Notez les informations suivantes.

    • Pour les noms d'attributs, le mot « activé » est réservé. Vous ne pouvez pas créer un attribut d'indicateur de fonctionnalité appelé « activé ». Il n'y a aucun autre mot réservé.

    • Les attributs d'un indicateur de fonctionnalité ne sont inclus dans la GetLatestConfiguration réponse que si cet indicateur est activé.

    • Les clés d'attribut d'un drapeau donné doivent être uniques.

    • Sélectionnez Valeur requise pour indiquer si une valeur d'attribut est requise.

  15. Dans la section Valeur de l'indicateur de fonctionnalité, choisissez Activé pour activer l'indicateur. Utilisez cette même option pour désactiver un indicateur lorsqu'il atteint une date de dépréciation spécifiée, le cas échéant.

  16. Choisissez Suivant.

  17. Sur la page Réviser et enregistrer, vérifiez les détails de l'indicateur, puis enregistrez et poursuivez le déploiement.

Passez à Déploiement d'indicateurs de fonctionnalités et de données de configuration dans AWS AppConfig.

Création d'un indicateur de fonctionnalité et d'un profil de configuration d'indicateur de fonctionnalité (ligne de commande)

La procédure suivante décrit comment utiliser le AWS Command Line Interface (sous Linux ou Windows) ou les outils pour Windows PowerShell pour créer un profil de configuration avec indicateur de AWS AppConfig fonctionnalité. Si vous préférez, vous pouvez AWS CloudShell exécuter les commandes répertoriées ci-dessous. Pour plus d'informations, consultez Présentation d' AWS CloudShell dans le Guide de l'utilisateur AWS CloudShell .

Pour créer une configuration de drapeaux de fonctionnalités étape par étape
  1. Ouvrez le AWS CLI.

  2. Créez un profil de configuration d'indicateur de fonctionnalité en spécifiant son type commeAWS.AppConfig.FeatureFlags. Le profil de configuration doit être utilisé hosted comme URI de localisation.

    Linux
    aws appconfig create-configuration-profile \ --application-id The_application_ID \ --name A_name_for_the_configuration_profile \ --location-uri hosted \ --type AWS.AppConfig.FeatureFlags
    Windows
    aws appconfig create-configuration-profile ^ --application-id The_application_ID ^ --name A_name_for_the_configuration_profile ^ --location-uri hosted ^ --type AWS.AppConfig.FeatureFlags
    PowerShell
    New-APPCConfigurationProfile ` -Name A_name_for_the_configuration_profile ` -ApplicationId The_application_ID ` -LocationUri hosted ` -Type AWS.AppConfig.FeatureFlags
  3. Créez les données de configuration de votre indicateur de fonctionnalité. Vos données doivent être au format JSON et conformes au schéma AWS.AppConfig.FeatureFlags JSON. Pour plus d'informations sur le schéma, consultezType de référence pour AWS.AppConfig.FeatureFlags.

  4. Utilisez l'CreateHostedConfigurationVersionAPI pour enregistrer les données de configuration de votre indicateur de fonctionnalité dans AWS AppConfig.

    Linux
    aws appconfig create-hosted-configuration-version \ --application-id The_application_ID \ --configuration-profile-id The_configuration_profile_id \ --content-type "application/json" \ --content file://path/to/feature_flag_configuration_data \ file_name_for_system_to_store_configuration_data
    Windows
    aws appconfig create-hosted-configuration-version ^ --application-id The_application_ID ^ --configuration-profile-id The_configuration_profile_id ^ --content-type "application/json" ^ --content file://path/to/feature_flag_configuration_data ^ file_name_for_system_to_store_configuration_data
    PowerShell
    New-APPCHostedConfigurationVersion ` -ApplicationId The_application_ID ` -ConfigurationProfileId The_configuration_profile_id ` -ContentType "application/json" ` -Content file://path/to/feature_flag_configuration_data ` file_name_for_system_to_store_configuration_data

    Voici un exemple de commande Linux.

    aws appconfig create-hosted-configuration-version \ --application-id 1a2b3cTestApp \ --configuration-profile-id 4d5e6fTestConfigProfile \ --content-type "application/json" \ --content Base64Content

    Le content paramètre utilise les données base64 codées suivantes.

    { "flags": { "flagkey": { "name": "WinterSpecialBanner" } }, "values": { "flagkey": { "enabled": true } }, "version": "1" }

    Le système retourne des informations telles que les suivantes.

    Linux
    {
       "ApplicationId"          : "1a2b3cTestApp",
       "ConfigurationProfileId" : "4d5e6fTestConfigProfile",
       "VersionNumber"          : "1",
       "ContentType"            : "application/json"
    }
    Windows
    {
       "ApplicationId"          : "1a2b3cTestApp",
       "ConfigurationProfileId" : "4d5e6fTestConfigProfile",
       "VersionNumber"          : "1",
       "ContentType"            : "application/json"
    }
    PowerShell
    ApplicationId          : 1a2b3cTestApp
    ConfigurationProfileId : 4d5e6fTestConfigProfile
    VersionNumber          : 1
    ContentType            : application/json

    Le service_returned_content_file contient vos données de configuration, y compris certaines métadonnées AWS AppConfig générées.

    Note

    Lorsque vous créez la version de configuration hébergée AWS AppConfig , vérifiez que vos données sont conformes au schéma AWS.AppConfig.FeatureFlags JSON. AWS AppConfig confirme également que chaque attribut d'indicateur d'entité de vos données répond aux contraintes que vous avez définies pour ces attributs.

Type de référence pour AWS.AppConfig.FeatureFlags

Utilisez le schéma AWS.AppConfig.FeatureFlags JSON comme référence pour créer les données de configuration de vos indicateurs de fonctionnalité.

{ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "flagSetDefinition": { "type": "object", "properties": { "version": { "$ref": "#/definitions/flagSchemaVersions" }, "flags": { "$ref": "#/definitions/flagDefinitions" }, "values": { "$ref": "#/definitions/flagValues" } }, "required": ["version", "flags"], "additionalProperties": false }, "flagDefinitions": { "type": "object", "patternProperties": { "^[a-z][a-zA-Z\\d-]{0,63}$": { "$ref": "#/definitions/flagDefinition" } }, "maxProperties": 100, "additionalProperties": false }, "flagDefinition": { "type": "object", "properties": { "name": { "$ref": "#/definitions/customerDefinedName" }, "description": { "$ref": "#/definitions/customerDefinedDescription" }, "_createdAt": { "type": "string" }, "_updatedAt": { "type": "string" }, "_deprecation": { "type": "object", "properties": { "status": { "type": "string", "enum": ["planned"] } }, "additionalProperties": false }, "attributes": { "$ref": "#/definitions/attributeDefinitions" } }, "additionalProperties": false }, "attributeDefinitions": { "type": "object", "patternProperties": { "^[a-z][a-zA-Z\\d-_]{0,63}$": { "$ref": "#/definitions/attributeDefinition" } }, "maxProperties": 25, "additionalProperties": false }, "attributeDefinition": { "type": "object", "properties": { "description": { "$ref": "#/definitions/customerDefinedDescription" }, "constraints": { "oneOf": [ { "$ref": "#/definitions/numberConstraints" }, { "$ref": "#/definitions/stringConstraints" }, { "$ref": "#/definitions/arrayConstraints" }, { "$ref": "#/definitions/boolConstraints" } ] } }, "additionalProperties": false }, "flagValues": { "type": "object", "patternProperties": { "^[a-z][a-zA-Z\\d-_]{0,63}$": { "$ref": "#/definitions/flagValue" } }, "maxProperties": 100, "additionalProperties": false }, "flagValue": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "_createdAt": { "type": "string" }, "_updatedAt": { "type": "string" } }, "patternProperties": { "^[a-z][a-zA-Z\\d-_]{0,63}$": { "$ref": "#/definitions/attributeValue", "maxProperties": 25 } }, "required": ["enabled"], "additionalProperties": false }, "attributeValue": { "oneOf": [ { "type": "string", "maxLength": 1024 }, { "type": "number" }, { "type": "boolean" }, { "type": "array", "oneOf": [ { "items": { "type": "string", "maxLength": 1024 } }, { "items": { "type": "number" } } ] } ], "additionalProperties": false }, "stringConstraints": { "type": "object", "properties": { "type": { "type": "string", "enum": ["string"] }, "required": { "type": "boolean" }, "pattern": { "type": "string", "maxLength": 1024 }, "enum": { "type": "array", "maxLength": 100, "items": { "oneOf": [ { "type": "string", "maxLength": 1024 }, { "type": "integer" } ] } } }, "required": ["type"], "not": { "required": ["pattern", "enum"] }, "additionalProperties": false }, "numberConstraints": { "type": "object", "properties": { "type": { "type": "string", "enum": ["number"] }, "required": { "type": "boolean" }, "minimum": { "type": "integer" }, "maximum": { "type": "integer" } }, "required": ["type"], "additionalProperties": false }, "arrayConstraints": { "type": "object", "properties": { "type": { "type": "string", "enum": ["array"] }, "required": { "type": "boolean" }, "elements": { "$ref": "#/definitions/elementConstraints" } }, "required": ["type"], "additionalProperties": false }, "boolConstraints": { "type": "object", "properties": { "type": { "type": "string", "enum": ["boolean"] }, "required": { "type": "boolean" } }, "required": ["type"], "additionalProperties": false }, "elementConstraints": { "oneOf": [ { "$ref": "#/definitions/numberConstraints" }, { "$ref": "#/definitions/stringConstraints" } ] }, "customerDefinedName": { "type": "string", "pattern": "^[^\\n]{1,64}$" }, "customerDefinedDescription": { "type": "string", "maxLength": 1024 }, "flagSchemaVersions": { "type": "string", "enum": ["1"] } }, "type": "object", "$ref": "#/definitions/flagSetDefinition", "additionalProperties": false }
Important

Pour récupérer les données de configuration des indicateurs de fonctionnalité, votre application doit appeler l'GetLatestConfigurationAPI. Vous ne pouvez pas récupérer les données de configuration des indicateurs de fonctionnalité en appelantGetConfiguration, ce qui est obsolète. Pour plus d'informations, consultez GetLatestConfigurationla référence de AWS AppConfig l'API.

Lorsque votre application appelle GetLatestConfigurationet reçoit une configuration nouvellement déployée, les informations qui définissent vos indicateurs et attributs de fonctionnalités sont supprimées. Le JSON simplifié contient une carte de clés correspondant à chacune des clés d'indicateur que vous avez spécifiées. Le JSON simplifié contient également des valeurs mappées de true ou false pour l'enabledattribut. Si un drapeau est enabled défini surtrue, tous les attributs du drapeau seront également présents. Le schéma JSON suivant décrit le format de la sortie JSON.

{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "patternProperties": { "^[a-z][a-zA-Z\\d-_]{0,63}$": { "$ref": "#/definitions/attributeValuesMap" } }, "maxProperties": 100, "additionalProperties": false, "definitions": { "attributeValuesMap": { "type": "object", "properties": { "enabled": { "type": "boolean" } }, "required": ["enabled"], "patternProperties": { "^[a-z][a-zA-Z\\d-_]{0,63}$": { "$ref": "#/definitions/attributeValue" } }, "maxProperties": 25, "additionalProperties": false }, "attributeValue": { "oneOf": [ { "type": "string","maxLength": 1024 }, { "type": "number" }, { "type": "boolean" }, { "type": "array", "oneOf": [ { "items": { "oneOf": [ { "type": "string", "maxLength": 1024 } ] } }, { "items": { "oneOf": [ { "type": "number" } ] } } ] } ], "additionalProperties": false } } }