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.
Comment AWS Proton approvisionne l'infrastructure
AWS Proton peut fournir l'infrastructure de plusieurs manières :
-
AWS-provisionnement géré : AWS Proton appelle le moteur de provisionnement en votre nom. Cette méthode ne prend en charge que les ensembles de AWS CloudFormation modèles. Pour de plus amples informations, veuillez consulter AWS CloudFormation fichiers IaC.
-
CodeBuild provisionnement : permet AWS Proton AWS CodeBuild d'exécuter les commandes shell que vous fournissez. Vos commandes peuvent lire les entrées qui AWS Proton fournissent et sont responsables du provisionnement ou du déprovisionnement de l'infrastructure et de la génération de valeurs de sortie. Un ensemble de modèles pour cette méthode inclut vos commandes dans un fichier manifeste et tous les programmes, scripts ou autres fichiers dont ces commandes peuvent avoir besoin.
À titre d'exemple d'utilisation du CodeBuild provisionnement, vous pouvez inclure du code qui utilise le AWS Cloud Development Kit (AWS CDK) pour provisionner AWS des ressources, ainsi qu'un manifeste qui installe le CDK et exécute votre code CDK.
Pour de plus amples informations, veuillez consulter CodeBuild ensemble de modèles de provisionnement.
Note
Vous pouvez utiliser le CodeBuild provisionnement avec des environnements et des services. Pour le moment, vous ne pouvez pas approvisionner les composants de cette façon.
-
Provisionnement autogéré : AWS Proton envoie une pull request (PR) à un référentiel que vous fournissez, dans lequel votre propre système de déploiement d'infrastructure exécute le processus de provisionnement. Cette méthode ne prend en charge que les ensembles de modèles Terraform. Pour de plus amples informations, veuillez consulter Fichiers Terraform iAC.
AWS Proton détermine et définit la méthode de provisionnement pour chaque environnement et service séparément. Lorsque vous créez ou mettez à jour un environnement ou un service, AWS Proton examinez le bundle de modèles que vous fournissez et déterminez la méthode de provisionnement indiquée par le bundle de modèles. Au niveau de l'environnement, vous fournissez les paramètres dont l'environnement et ses services potentiels peuvent avoir besoin pour leurs méthodes de provisionnement : rôles AWS Identity and Access Management (IAM), connexion à un compte d'environnement ou référentiel d'infrastructure.
Les développeurs qui fournissent AWS Proton un service ont la même expérience quelle que soit la méthode de provisionnement. Les développeurs n'ont pas besoin de connaître la méthode de provisionnement et n'ont pas besoin de modifier quoi que ce soit au cours du processus de provisionnement des services. Le modèle de service définit la méthode de provisionnement, et chaque environnement dans lequel un développeur déploie le service fournit les paramètres nécessaires au provisionnement des instances de service.
Le schéma suivant résume les principales caractéristiques des différentes méthodes de provisionnement. Les sections qui suivent le tableau fournissent des détails sur chaque méthode.
Méthode de provisionnement | Modèles | Provisionné par | État suivi par |
---|---|---|---|
AWS-géré |
manifeste, schéma, fichier IaC (CloudFormation) |
AWS Proton (à travers CloudFormation) |
AWS Proton (à travers CloudFormation) |
CodeBuild |
manifeste (avec commandes), schéma, dépendances des commandes (par exemple, AWS CDK code) |
AWS Proton (à travers CodeBuild) |
AWS Proton (vos commandes renvoient le statut CodeBuild) |
autogéré |
manifeste, schéma, fichiers IaC (Terraform) |
Votre code (via des actions Git) |
Votre code (transmis AWS via un appel d'API) |
Comment fonctionne AWS le provisionnement géré
Lorsqu'un environnement ou un service utilise le provisionnement AWS géré, l'infrastructure est provisionnée comme suit :
-
Un AWS Proton client (un administrateur ou un développeur) crée la AWS Proton ressource (un environnement ou un service). Le client sélectionne un modèle pour la ressource et fournit les paramètres requis. Pour plus d'informations, consultez la section suivante,Considérations relatives au AWS provisionnement géré.
-
AWS Proton affiche un AWS CloudFormation modèle complet pour le provisionnement de la ressource.
-
AWS Proton appels AWS CloudFormation pour démarrer le provisionnement à l'aide du modèle rendu.
-
AWS Proton surveille en permanence le AWS CloudFormation déploiement.
-
Une fois le provisionnement terminé, AWS Proton signale les erreurs en cas d'échec et capture les résultats du provisionnement, tels que l'identifiant Amazon VPC, en cas de succès.
Le schéma suivant montre que AWS Proton la plupart de ces étapes sont effectuées directement.

Considérations relatives au AWS provisionnement géré
-
Rôle de provisionnement de l'infrastructure : lorsqu'un environnement ou l'une des instances de service qui y sont exécutées peut utiliser le provisionnement AWS géré, un administrateur doit configurer un rôle IAM (directement ou dans le cadre d'une connexion à un compte d' AWS Proton environnement). AWS Proton utilise ce rôle pour approvisionner l'infrastructure de ces ressources de provisionnement AWS gérées. Le rôle doit disposer des autorisations nécessaires AWS CloudFormation pour créer toutes les ressources incluses dans les modèles de ces ressources.
Pour plus d’informations, consultez Rôles IAM et AWS Proton Exemples de politiques relatives aux rôles de service IAM.
-
Provisionnement de services : lorsqu'un développeur déploie une instance de service qui utilise le provisionnement AWS géré dans l'environnement, AWS Proton utilise le rôle fourni à cet environnement pour provisionner l'infrastructure de l'instance de service. Les développeurs ne voient pas ce rôle et ne peuvent pas le modifier.
-
Service avec pipeline — Un modèle de service qui utilise le provisionnement AWS géré peut inclure une définition de pipeline écrite dans le schéma AWS CloudFormation YAML. AWS Proton crée également le pipeline en appelant AWS CloudFormation. Le rôle AWS Proton utilisé pour créer un pipeline est distinct du rôle de chaque environnement individuel. Ce rôle est fourni AWS Proton séparément, une seule fois au niveau du AWS compte, et il est utilisé pour approvisionner et gérer tous les pipelines AWS gérés. Ce rôle doit être autorisé à créer des pipelines et d'autres ressources dont vos pipelines ont besoin.
Les procédures suivantes montrent comment attribuer le rôle de pipeline à AWS Proton.
Comment fonctionne CodeBuild le provisionnement
Lorsqu'un environnement ou un service utilise le CodeBuild provisionnement, l'infrastructure est provisionnée comme suit :
-
Un AWS Proton client (un administrateur ou un développeur) crée la AWS Proton ressource (un environnement ou un service). Le client sélectionne un modèle pour la ressource et fournit les paramètres requis. Pour plus d'informations, consultez la section suivante,Considérations relatives au CodeBuild provisionnement.
-
AWS Proton affiche un fichier d'entrée avec les valeurs des paramètres d'entrée pour le provisionnement de la ressource.
-
AWS Proton appels CodeBuild pour démarrer un travail. La CodeBuild tâche exécute les commandes shell du client spécifiées dans le modèle. Ces commandes fournissent l'infrastructure souhaitée, tout en lisant éventuellement les valeurs d'entrée.
-
Lorsque le provisionnement est terminé, la commande finale du client renvoie l'état de provisionnement CodeBuild et appelle l'action d'NotifyResourceDeploymentStatusChange AWS Proton API pour fournir des résultats, tels que l'identifiant Amazon VPC, s'il en existe un.
Important
Assurez-vous que vos commandes renvoient correctement l'état de provisionnement CodeBuild et fournissent les sorties. Dans le cas contraire, ils ne AWS Proton pourront pas suivre correctement l'état du provisionnement et ne pourront pas fournir de résultats corrects aux instances de service.
Le schéma suivant illustre les étapes exécutées et AWS Proton les étapes que vos commandes exécutent dans le cadre d'une CodeBuild tâche.

Considérations relatives au CodeBuild provisionnement
-
Rôle de provisionnement de l'infrastructure : lorsqu'un environnement ou l'une des instances de service qui y sont exécutées peut utiliser le provisionnement CodeBuild basé, un administrateur doit configurer un rôle IAM (directement ou dans le cadre d'une connexion à un compte d' AWS Proton environnement). AWS Proton utilise ce rôle pour approvisionner l'infrastructure de ces ressources de CodeBuild provisionnement. Le rôle doit disposer des autorisations nécessaires pour CodeBuild créer toutes les ressources que vous commandez dans les modèles de mise à disposition de ces ressources.
Pour plus d’informations, consultez Rôles IAM et AWS Proton Exemples de politiques relatives aux rôles de service IAM.
-
Provisionnement de services : lorsqu'un développeur déploie une instance de service qui utilise le CodeBuild provisionnement dans l'environnement, AWS Proton utilise le rôle fourni à cet environnement pour provisionner l'infrastructure de l'instance de service. Les développeurs ne voient pas ce rôle et ne peuvent pas le modifier.
-
Service avec pipeline : un modèle de service qui utilise le CodeBuild provisionnement peut inclure des commandes pour approvisionner un pipeline. AWS Proton crée également le pipeline en appelant CodeBuild. Le rôle AWS Proton utilisé pour créer un pipeline est distinct du rôle de chaque environnement individuel. Ce rôle est fourni AWS Proton séparément, une seule fois au niveau du AWS compte, et il est utilisé pour approvisionner et gérer tous les pipelines CodeBuild basés. Ce rôle doit être autorisé à créer des pipelines et d'autres ressources dont vos pipelines ont besoin.
Les procédures suivantes montrent comment attribuer le rôle de pipeline à AWS Proton.
Comment fonctionne le provisionnement autogéré
Lorsqu'un environnement est configuré pour utiliser le provisionnement autogéré, l'infrastructure est provisionnée comme suit :
-
Un AWS Proton client (un administrateur ou un développeur) crée la AWS Proton ressource (un environnement ou un service). Le client sélectionne un modèle pour la ressource et fournit les paramètres requis. Pour un environnement, le client fournit également un référentiel d'infrastructure lié. Pour plus d'informations, consultez la section suivante,Considérations relatives au provisionnement autogéré.
-
AWS Proton affiche un modèle Terraform complet. Il se compose d'un ou de plusieurs fichiers Terraform, potentiellement dans plusieurs dossiers, et d'un fichier de
.tfvars
variables. AWS Proton écrit les valeurs des paramètres fournies lors de l'appel de création de ressources dans ce fichier de variables. -
AWS Proton soumet un PR au référentiel d'infrastructure avec le modèle Terraform rendu.
-
Lorsque le client (administrateur ou développeur) fusionne le PR, l'automatisation du client déclenche le démarrage du provisionnement de l'infrastructure à l'aide du modèle fusionné.
Note
Si le client (administrateur ou développeur) ferme le PR, AWS Proton reconnaît le PR comme étant fermé et marque le déploiement comme annulé.
-
Lorsque le provisionnement est terminé, l'automatisation du client appelle l'action de l'NotifyResourceDeploymentStatusChange AWS Proton API pour indiquer l'achèvement, fournir le statut (réussite ou échec) et fournir des résultats, tels que l'identifiant Amazon VPC, le cas échéant.
Important
Assurez-vous que votre code d'automatisation vous rappelle l'état et AWS Proton les sorties du provisionnement. Si ce n'est pas le cas, vous AWS Proton pouvez considérer le provisionnement comme en attente plus longtemps qu'il ne le devrait et continuer à afficher le statut En cours.
Le schéma suivant illustre les étapes exécutées AWS Proton et les étapes exécutées par votre propre système de provisionnement.

Considérations relatives au provisionnement autogéré
-
Référentiel d'infrastructure : lorsqu'un administrateur configure un environnement pour un provisionnement autogéré, il doit fournir un référentiel d'infrastructure lié. AWS Proton PRs se soumet à ce référentiel pour approvisionner l'infrastructure de l'environnement et toutes les instances de service qui y sont déployées. L'action d'automatisation appartenant au client dans le référentiel doit assumer un rôle IAM avec les autorisations nécessaires pour créer toutes les ressources incluses dans votre environnement et vos modèles de services, ainsi qu'une identité qui reflète le compte de destination. AWS Pour un exemple GitHub d'action qui assume un rôle, voir Assumer un rôle
dans la documentation « Configurer les AWS informations d'identification » Action for GitHub Actions. -
Autorisations : votre code d'approvisionnement doit s'authentifier auprès d'un compte si nécessaire (par exemple, s'authentifier auprès d'un AWS compte) et fournir une autorisation de mise en service des ressources (par exemple, fournir un rôle).
-
Provisionnement de services : lorsqu'un développeur déploie une instance de service qui utilise le provisionnement autogéré dans l'environnement, AWS Proton soumet un PR au référentiel associé à l'environnement afin de fournir l'infrastructure de l'instance de service. Les développeurs ne voient pas le dépôt et ne peuvent pas le modifier.
Note
Les développeurs qui créent des services utilisent le même processus, quelle que soit la méthode de provisionnement, et la différence en est déduite. Cependant, avec l'autogestion du provisionnement, les développeurs peuvent avoir une réponse plus lente, car ils doivent attendre que quelqu'un (qui n'est peut-être pas eux-mêmes) fusionne le PR dans le référentiel d'infrastructure avant que le provisionnement puisse commencer.
-
Service avec pipeline — Un modèle de service pour un environnement avec un provisionnement autogéré peut inclure une définition de pipeline (par exemple, un AWS CodePipeline pipeline), écrite en Terraform HCL. Pour AWS Proton permettre le provisionnement de ces pipelines, un administrateur fournit un référentiel de pipelines lié à AWS Proton. Lors du provisionnement d'un pipeline, l'action d'automatisation appartenant au client dans le référentiel doit assumer un rôle IAM avec les autorisations nécessaires pour approvisionner le pipeline et une identité qui reflète le compte de destination. AWS Le référentiel et le rôle du pipeline sont distincts de ceux utilisés pour chaque environnement individuel. Le référentiel lié est fourni AWS Proton séparément, une seule fois au niveau du AWS compte, et il est utilisé pour approvisionner et gérer tous les pipelines. Le rôle doit être autorisé à créer des pipelines et d'autres ressources dont vos pipelines ont besoin.
Les procédures suivantes montrent comment fournir le référentiel et le rôle du pipeline à AWS Proton.
-
Suppression des ressources provisionnées autogérées — Les modules Terraform peuvent inclure des éléments de configuration nécessaires au fonctionnement de Terraform, en plus des définitions de ressources. Par conséquent, il n'est pas AWS Proton possible de supprimer tous les fichiers Terraform d'une instance d'environnement ou de service. AWS Proton Marquez plutôt les fichiers à supprimer et mettez à jour un indicateur dans les métadonnées PR. Votre automatisation peut lire cet indicateur et l'utiliser pour déclencher une commande de destruction Terraform.