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.
Utilisation de l'Enterprise Blueprint Factory
Cette section vous aide à créer, mettre à jour ou supprimer des plans dans votre environnement. Il fournit des instructions détaillées pour gérer un plan tout au long de son cycle de vie.
Pour créer ou mettre à jour des plans personnalisés, vous devez savoir comment créer des modèles IaC, tels que des AWS CloudFormation modèles ou des AWS Cloud Development Kit (AWS CDK) constructions. Ce guide ne contient pas d'informations ni d'instructions sur la façon de définir les plans que vous publiez via Enterprise Blueprint Factory.
Prérequis
Les conditions préalables à l'utilisation de l'Enterprise Blueprint Factory dans votre AWS environnement sont les suivantes :
Création d'un plan
Les pipelines Enterprise Blueprint Factory déploient les plans que vous définissez dans le fichier de configuration. Le développeur lance le pipeline de configuration en fusionnant le fichier de configuration dans le référentiel de configuration. Ensuite, l'Enterprise Blueprint Factory utilise le ServiceCatalogLaunchConstraintRole pour déployer le plan en tant que produit dans Service Catalog. Pour plus d'informations sur les actions effectuées par le pipeline de configuration et le pipeline de publication lorsque vous créez un plan, consultez la section Création du plan dans ce guide.
Pour ajouter le plan au référentiel de produits
-
Assurez-vous d'avoir configuré votre Enterprise Blueprint Factory conformément aux instructions de la section Configuration de l'Enterprise Blueprint Factory de ce guide.
-
Vérifiez que la politique du
ServiceCataloglogLaunchConstraintRolerôle vous permet de fournir les ressources définies dans le plan. -
Dans le référentiel de produits (
ServiceCatalog-BlueprintProductRepo), créez un dossier pour le nouveau plan. -
Collez le modèle IaC (CloudFormation modèle ou AWS CDK construction) dans le dossier que vous avez créé.
-
Créez un fichier nommé product_config.json dans le dossier que vous avez créé.
-
Ouvrez le fichier product_config.json et collez-y le texte suivant :
{ "SchemaVersion": "1.0", "ProductVersionName": "1.0.1", "Deprecated_Versions" : [], "ProductVersionDescription": "<description>", "ProductType": "CLOUD_FORMATION_TEMPLATE", "Properties": { "TemplateFilePath": "./<folder name>/<file name>" } }Où :
-
<description>est une brève description de la version du plan -
<folder name>est le nom du dossier que vous avez créé dans le référentiel de produits -
<file name>est le nom du modèle IaC
Note
Vous pouvez mettre à jour la version du schéma ou les noms de version du produit en fonction des politiques de votre organisation.
-
-
Enregistrez et fermez le fichier product_config.json.
-
Entrez les commandes suivantes pour fusionner les modifications dans le référentiel de produits :
cd ServiceCatalog-BlueprintProductRepo git add <folder name>/<file name> <folder name>\product_config.json git commit -m "The first version of <file name> blueprint" git push origin main
Pour mettre à jour le fichier de configuration
-
Dans le référentiel de configuration (
ServiceCatalog-ConfigRepo), ouvrez le fichier config.yml. -
Modifiez la
portfoliossection etproductsla section selon les besoins du nouveau plan. Pour plus d'informations, consultez la section Fichier de configuration de ce guide. -
Enregistrez et fermez le fichier config.yml.
-
Entrez les commandes suivantes pour fusionner les modifications dans le référentiel de configuration :
cd ServiceCatalog-ConfigRepo git add config.yml git commit -m "<description of change>" git push origin mainL'approbation de cette pull request lance le pipeline de configuration. Le pipeline de configuration crée un pipeline de lancement pour le produit.
Pour consulter les journaux de déploiement
-
Connectez-vous au compte administratif d'Enterprise Blueprint Factory.
-
Ouvrez la AWS CodePipeline console
. -
Dans Nom, choisissez le pipeline de publication du produit. Par défaut, le nom du pipeline est
BluePrint_<Product-Name>-<CloudFormation-Stack-Name>. -
Choisissez Afficher l'historique.
-
Consultez l'état du pipeline et de l'exécution de l'étape. Pour plus d'informations sur le statut, voir Afficher le statut d'exécution dans la CodePipeline documentation.
-
En cas de défaillance du pipeline, examinez la cause de la panne. Pour obtenir des instructions sur la façon de configurer la surveillance de vos pipelines, consultez la section Surveillance des pipelines dans la CodePipeline documentation. Si le pipeline de publication a échoué en raison d'une vérification cfn-lint ou cfn_nag, corrigez l'erreur dans le modèle. Soumettez une autre pull request au dépôt du produit. Cela redémarre le pipeline de publication. Pour plus d'informations sur la correction des erreurs de modèle, consultez la section Dépannage de ce guide.
-
Attendez que l'état du pipeline de publication soit atteint
Succeeded.
Pour valider le déploiement
-
Connectez-vous à un compte client dans l'organisation.
-
Assumez le rôle
ServiceCatalogEndUserRoleIAM. -
Ouvrez la console Service Catalog
. -
Dans le volet de navigation, sélectionnez Products.
-
Vérifiez que le nouveau produit est disponible dans la liste des produits.
Mise à jour d'un plan
Pour plus d'informations sur les actions effectuées par le pipeline de configuration et le pipeline de publication lorsque vous créez un plan, consultez la section Mise à jour du plan dans ce guide.
Pour mettre à jour un plan
-
Dans le référentiel du produit, accédez au dossier du produit.
-
Collez le modèle IaC mis à jour. Assurez-vous que le nom du fichier est identique à celui de la version précédente.
-
Ouvrez le fichier product_config.json.
-
Pour
ProductVersionName, mettez à jour le numéro de version. -
Si vous souhaitez empêcher le déploiement futur de la version précédente du produit
Deprecated_Versions, entrez les numéros de version précédents dans une liste séparée par des virgules. -
Entrez les commandes suivantes pour fusionner les modifications dans le référentiel de produits :
cd ServiceCatalog-BlueprintProductRepo git add <folder name>/<file name> <folder name>\product_config.json git commit -m "Version <number> of <file name> blueprint" git push origin mainL'approbation de cette pull request lance le pipeline de lancement du produit.
Pour consulter les journaux de déploiement
-
Connectez-vous au compte administratif d'Enterprise Blueprint Factory.
-
Ouvrez la AWS CodePipeline console
. -
Dans Nom, choisissez le pipeline de publication. Par défaut, le nom du pipeline est
BluePrint_<Product-Name>-<CloudFormation-Stack-Name>. -
Choisissez Afficher l'historique.
-
Consultez l'état du pipeline et de l'exécution de l'étape. Pour plus d'informations sur le statut, voir Afficher le statut d'exécution dans la CodePipeline documentation.
-
En cas de défaillance du pipeline, examinez la cause de la panne. Pour obtenir des instructions sur la façon de configurer la surveillance de vos pipelines, consultez la section Surveillance des pipelines dans la CodePipeline documentation. Si le pipeline de publication a échoué en raison d'une vérification cfn-lint ou cfn_nag, corrigez l'erreur dans le modèle. Soumettez une autre pull request au dépôt du produit. Cela redémarre le pipeline de publication. Pour plus d'informations sur la correction des erreurs de modèle, consultez la section Dépannage de ce guide.
-
Attendez que l'état du pipeline de publication soit atteint
Succeeded.
Pour valider la mise à jour
-
Connectez-vous à un compte client dans l'organisation.
-
Assumez le rôle
ServiceCatalogEndUserRoleIAM. -
Ouvrez la console Service Catalog
. -
Dans le volet de navigation, sélectionnez Products.
-
Vérifiez que la nouvelle version du produit est disponible dans la liste des produits.
Supprimer un plan
Lorsque vous supprimez un produit, Service Catalog supprime toutes les versions du produit de chaque portefeuille contenant le produit. Pour plus d'informations, consultez la section Suppression de produits dans la documentation du Service Catalog. Pour plus d'informations sur les actions effectuées par le pipeline de configuration et le pipeline de publication lorsque vous créez un plan, consultez la section Suppression du plan dans ce guide.
Pour supprimer un plan
-
Dans le référentiel de configuration, ouvrez le fichier config.yml.
-
Modifiez la section des produits, supprimez ou commentez le produit que vous souhaitez supprimer.
-
Enregistrez et fermez le fichier config.yml.
-
Entrez les commandes suivantes pour fusionner les modifications dans le référentiel de configuration :
cd ServiceCatalog-ConfigRepo git add config.yml git commit -m "<description of change>" git push origin mainL'approbation de cette pull request lance le pipeline de configuration. Le pipeline de configuration supprime le produit et son pipeline de lancement.
-
Dans le référentiel du produit, supprimez le dossier du produit, y compris son contenu.
-
Entrez les commandes suivantes pour fusionner les modifications dans le référentiel de produits :
cd ServiceCatalog-BlueprintProductRepo git add . git commit -m "Delete <file name> blueprint" git push origin main
Pour valider la suppression
-
Connectez-vous à un compte client dans l'organisation.
-
Assumez le rôle
ServiceCatalogEndUserRoleIAM. -
Ouvrez la console Service Catalog
. -
Dans le volet de navigation, sélectionnez Products.
-
Vérifiez que le produit supprimé n'est plus disponible.
Résolution des problèmes
Lorsque vous créez ou mettez à jour un plan, les outils cfn-lint et cfn-nag valident le plan. Pour plus d'informations sur la validation dans le pipeline de publication, consultez la section Pipeline de publication de ce guide. Toute erreur de syntaxe ou de sécurité signalée entraîne l'échec du pipeline. Pour déployer correctement le plan dans le pipeline de publication, vous devez corriger les erreurs contenues dans le plan.
Voici un exemple de sortie qui montre deux erreurs liées à la sécurité, une défaillance et un avertissement.
BP-SNS.yml --------------------------------------------------- BP-SNS.yml --------------------------------------------------- | WARN W47 | | Resource: ["ExampleTopic"] | Line numbers: [5] | | SNS Topic should specify KmsMasterKeyId property --------------------------------------------------- | FAIL F18 | | Resource: ["ExampleTopicPolicy"] | Line numbers: [10] | | SNS topic policy should not allow * principal Failures count: 1 Warnings count: 1
Pour corriger ces erreurs, dans le fichier de plan, vous devez remplacer le * principal dans la politique thématique d'Amazon Simple Notification Service (Amazon SNS) et associer une clé AWS Key Management Service (AWS KMS) au sujet. L'exemple de code suivant illustre ces mises à jour.
ExampleTopic: Type: AWS::SNS::Topic Properties: TopicName: ExampleTopic ExampleTopicPolicy: Type: AWS::SNS::TopicPolicy Properties: KmsMasterKeyId: alias/aws/sns # Added KMS key PolicyDocument: Id: Id1 Version: '2012-10-17' Statement: - Sid: Sid2 Effect: Allow Principal: "Service" : "s3.amazonaws.com" # Replaced "AWS": '*' Action: 'sns:Publish' Resource: !Ref ExampleTopic Topics: - !Ref ExampleTopic