Création d'un environnement - AWS Proton

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 environnement

Apprenez à créer des AWS Proton environnements.

Vous pouvez créer un AWS Proton environnement de deux manières :
  • Créez, gérez et approvisionnez un environnement standard à l'aide d'un modèle d'environnement standard. AWS Proton fournit une infrastructure pour votre environnement.

  • Connectez-vous AWS Proton à une infrastructure gérée par le client à l'aide d'un modèle d'environnement géré par le client. Vous provisionnez vos propres ressources partagées en dehors de AWS Proton, puis vous fournissez des sorties de provisionnement qui AWS Proton peuvent être utilisées.

Vous pouvez choisir l'une des différentes approches de provisionnement lorsque vous créez un environnement.
  • AWS provisionnement géré : créez, gérez et approvisionnez un environnement à partir d'un seul compte. AWS Proton approvisionne votre environnement.

    Cette méthode ne prend en charge que les modèles de code d' CloudFormation infrastructure (IaC).

  • AWS provisionnement géré vers un autre compte : dans un seul compte de gestion, créez et gérez un environnement approvisionné sur un autre compte avec des connexions à des comptes d'environnement. AWS Proton approvisionne votre environnement dans l'autre compte. Pour plus d’informations, consultez Création d'un environnement sur un compte et mise à disposition sur un autre compte et Connexions aux comptes environnementaux.

    Cette méthode ne prend en charge que les CloudFormation modèles IaC.

  • Provisionnement autogéré : AWS Proton envoie des pull requests de provisionnement à un référentiel lié doté de votre propre infrastructure de provisionnement.

    Cette méthode ne prend en charge que les modèles Terraform 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 CDK et exécute votre CDK code.

    Pour plus d’informations, consultez 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.

Grâce au provisionnement AWS géré (à la fois sur le même compte et vers un autre compte), passez AWS Proton des appels directs pour approvisionner vos ressources.

Avec le provisionnement autogéré, AWS Proton émet des pull requests pour fournir des fichiers iAc compilés que votre moteur iAc utilise pour provisionner des ressources.

Pour plus d’informations, consultez Comment AWS Proton approvisionne l'infrastructure, Packs de modèles et Exigences relatives au schéma pour les ensembles de modèles d'environnement.

Création et mise en service d'un environnement standard dans le même compte

Utilisez la console ou AWS CLI pour créer et approvisionner un environnement dans un seul compte. Le provisionnement est géré par AWS.

AWS Management Console
Utilisez la console pour créer et approvisionner un environnement dans un seul compte
  1. Dans la AWS Proton console, choisissez Environments.

  2. Choisissez Create environment.

  3. Sur la page Choisir un modèle d'environnement, sélectionnez un modèle et choisissez Configurer.

  4. Sur la page Configurer l'environnement, dans la section Provisioning, choisissez AWS Managed Provisioning.

  5. Dans la section Compte de déploiement, choisissez Ceci Compte AWS.

  6. Sur la page Configurer l'environnement, dans la section Paramètres d'environnement, entrez un nom d'environnement.

  7. (Facultatif) Entrez une description de l'environnement.

  8. Dans la section Rôles environnementaux, sélectionnez le rôle de AWS Proton service que vous avez créé dans le cadre de celui-ciConfiguration des rôles AWS Proton de service.

  9. (Facultatif) Dans la section Rôle du composant, sélectionnez un rôle de service qui permet à des composants directement définis de s'exécuter dans l'environnement et limite les ressources qu'ils peuvent fournir. Pour plus d’informations, consultez Composants AWS Proton.

  10. (Facultatif) Dans la section Tags, choisissez Ajouter un nouveau tag et entrez une clé et une valeur pour créer un tag géré par le client.

  11. Choisissez Suivant.

  12. Dans la page Configurer les paramètres personnalisés de l'environnement, vous devez entrer des valeurs pour les required paramètres. Vous pouvez saisir des valeurs pour les optional paramètres ou utiliser les valeurs par défaut lorsqu'elles sont définies.

  13. Choisissez Next et passez en revue vos entrées.

  14. Choisissez Créer.

    Consultez les détails et l'état de l'environnement, ainsi que les balises AWS gérées et les balises gérées par le client pour votre environnement.

  15. Dans le panneau de navigation, choisissez Environments (Environnements).

    Une nouvelle page affiche la liste de vos environnements ainsi que le statut et d'autres détails relatifs à l'environnement.

AWS CLI

Utilisez le AWS CLI pour créer et approvisionner un environnement dans un seul compte.

Pour créer un environnement, vous devez spécifier le rôle du AWS Proton serviceARN, le chemin d'accès à votre fichier de spécifications, le nom de l'environnement, le modèle d'environnementARN, les versions principales et secondaires et la description (facultatif).

Les exemples suivants montrent un fichier de spécifications YAML formaté qui spécifie les valeurs de deux entrées définies dans le fichier de schéma du modèle d'environnement. Vous pouvez utiliser la get-environment-template-minor-version commande pour afficher le schéma du modèle d'environnement.

proton: EnvironmentSpec spec: my_sample_input: "the first" my_other_sample_input: "the second"

Créez un environnement en exécutant la commande suivante.

$ aws proton create-environment \ --name "MySimpleEnv" \ --template-name simple-env \ --template-major-version 1 \ --proton-service-role-arn "arn:aws:iam::123456789012:role/AWS ProtonServiceRole" \ --spec "file://env-spec.yaml"

Réponse :

{ "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv", "createdAt": "2020-11-11T23:03:05.405000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2020-11-11T23:03:05.405000+00:00", "name": "MySimpleEnv", "protonServiceRoleArn": "arn:aws:iam::123456789012:role/ProtonServiceRole", "templateName": "simple-env" } }

Après avoir créé un nouvel environnement, vous pouvez consulter une liste de AWS balises gérées par le client, comme illustré dans l'exemple de commande suivant. AWS Proton génère automatiquement des tags AWS gérés pour vous. Vous pouvez également modifier et créer des balises gérées par le client à l'aide du AWS CLI. Pour plus d’informations, consultez AWS Protonressources et balises.

Commande :

$ aws proton list-tags-for-resource \ --resource-arn "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv"

Création d'un environnement sur un compte et mise à disposition sur un autre compte

Utilisez la console ou AWS CLI créez un environnement standard dans un compte de gestion qui provisionne l'infrastructure environnementale dans un autre compte. Le provisionnement est géré par AWS.

Avant d'utiliser la console ouCLI, effectuez les étapes suivantes.
  1. Identifiez le compte Compte AWS IDs de gestion et d'environnement et copiez-le pour une utilisation ultérieure.

  2. Dans le compte d'environnement, créez un rôle AWS Proton de service avec des autorisations minimales pour la création de l'environnement. Pour plus d’informations, consultez AWS Proton rôle de service pour le provisionnement à l'aide AWS CloudFormation.

AWS Management Console
Utilisez la console pour créer un environnement dans un compte et le provisionner dans un autre.
  1. Dans le compte d'environnement, créez une connexion au compte d'environnement et utilisez-la pour envoyer une demande de connexion au compte de gestion.
    1. Dans AWS Proton la console, choisissez Environment account connections dans le volet de navigation.

    2. Sur la page de connexions aux comptes Environment, choisissez Request to connect.

      Note

      Vérifiez que l'identifiant de compte indiqué dans l'en-tête de la page de connexion au compte d'environnement correspond à votre identifiant de compte d'environnement préidentifié.

    3. Sur la page Demande de connexion, dans la section Rôle dans l'environnement, sélectionnez Rôle de service existant et le nom du rôle de service que vous avez créé pour l'environnement.

    4. Dans la section Se connecter au compte de gestion, entrez l'ID du compte de gestion et un nom d'environnement pour votre AWS Proton environnement. Copiez le nom pour une utilisation ultérieure.

    5. Choisissez Demande de connexion dans le coin inférieur droit de la page.

    6. Votre demande apparaît comme étant en attente dans le tableau des connexions de l'environnement envoyées à un compte de gestion et un modal indique comment accepter la demande depuis le compte de gestion.

  2. Dans le compte de gestion, acceptez une demande de connexion depuis le compte d'environnement.
    1. Connectez-vous à votre compte de gestion et choisissez Environment account connections dans la AWS Proton console.

    2. Sur la page Connexions au compte d'environnement, dans le tableau des demandes de connexion au compte d'environnement, sélectionnez la connexion au compte d'environnement dont l'ID de compte d'environnement correspond à votre identifiant de compte d'environnement pré-identifié.

      Note

      Vérifiez que l'identifiant de compte indiqué dans l'en-tête de la page de connexion au compte Environnement correspond à votre identifiant de compte de gestion préidentifié.

    3. Choisissez Accepter. Le statut passe de PENDING àCONNECTED.

  3. Dans le compte de gestion, créez un environnement.
    1. Dans le volet de navigation, sélectionnez Modèles d'environnement.

    2. Sur la page Modèles d'environnement, choisissez Créer un modèle d'environnement.

    3. Sur la page Choisir un modèle d'environnement, choisissez un modèle d'environnement.

    4. Sur la page Configurer l'environnement, dans la section Provisioning, choisissez AWS Managed Provisioning.

    5. Dans la section Compte de déploiement, choisissez Un autre AWS compte ;.

    6. Dans la section Détails de l'environnement, sélectionnez la connexion à votre compte d'environnement et le nom de l'environnement.

    7. Choisissez Suivant.

    8. Remplissez les formulaires et choisissez Suivant jusqu'à ce que vous atteigniez la page Réviser et créer.

    9. Vérifiez et choisissez Créer un environnement.

AWS CLI

Utilisez le AWS CLI pour créer un environnement dans un compte et le provisionner dans un autre.

Dans le compte d'environnement, créez une connexion au compte d'environnement et demandez à vous connecter en exécutant la commande suivante.

$ aws proton create-environment-account-connection \ --environment-name "simple-env-connected" \ --role-arn "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role" \ --management-account-id "111111111111"

Réponse :

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:13:50.847000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "PENDING" } }

Dans le compte de gestion, acceptez la demande de connexion au compte d'environnement en exécutant la commande suivante.

$ aws proton accept-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Réponse :

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

Consultez la connexion à votre compte d'environnement en exécutant la commande suivante.

$ aws proton get-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Réponse :

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

Dans le compte de gestion, créez un environnement en exécutant la commande suivante.

$ aws proton create-environment \ --name "simple-env-connected" \ --template-name simple-env-template \ --template-major-version "1" \ --template-minor-version "1" \ --spec "file://simple-env-template/specs/original.yaml" \ --environment-account-connection-id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Réponse :

{ "environment": { "arn": "arn:aws:proton:region-id:111111111111:environment/simple-env-connected", "createdAt": "2021-04-28T23:02:57.944000+00:00", "deploymentStatus": "IN_PROGRESS", "environmentAccountConnectionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "lastDeploymentAttemptedAt": "2021-04-28T23:02:57.944000+00:00", "name": "simple-env-connected", "templateName": "simple-env-template" } }

Création et approvisionnement d'un environnement à l'aide d'un provisionnement autogéré

Lorsque vous utilisez le provisionnement autogéré, vous AWS Proton soumettez des pull requests de provisionnement à un référentiel lié doté de votre propre infrastructure de provisionnement. Les pull requests démarrent votre propre flux de travail, qui fait appel à AWS des services, pour fournir une infrastructure.

Considérations relatives au provisionnement autogéré :
  • Avant de créer un environnement, configurez un répertoire de ressources de référentiel pour un provisionnement autogéré. Pour plus d’informations, consultez AWS Proton infrastructure sous forme de fichiers de code.

  • Après avoir créé l'environnement, AWS Proton attend de recevoir des notifications asynchrones concernant l'état du provisionnement de votre infrastructure. Votre code de provisionnement doit utiliser le AWS Proton NotifyResourceStateChange API pour envoyer ces notifications asynchrones à. AWS Proton

Vous pouvez utiliser le provisionnement autogéré dans la console ou avec le. AWS CLI Les exemples suivants montrent comment utiliser le provisionnement autogéré avec Terraform.

AWS Management Console
Utilisez la console pour créer un environnement Terraform à l'aide d'un provisionnement autogéré.
  1. Dans la AWS Proton console, choisissez Environments.

  2. Choisissez Create environment.

  3. Sur la page Choisir un modèle d'environnement, sélectionnez un modèle Terraform et choisissez Configurer.

  4. Sur la page Configurer l'environnement, dans la section Provisioning, choisissez Self-managed Provisioning.

  5. Dans la section Détails du référentiel de provisionnement :

    1. Si vous n'avez pas encore lié votre référentiel de provisionnement à AWS Proton, choisissez Nouveau référentiel, choisissez l'un des fournisseurs de référentiels, puis, pour la CodeStarconnexion, choisissez l'une de vos connexions.

      Note

      Si vous n'êtes pas encore connecté au compte du fournisseur de référentiel concerné, choisissez Ajouter une nouvelle CodeStar connexion. Créez ensuite une connexion, puis cliquez sur le bouton d'actualisation situé à côté du menu de CodeStar connexion. Vous devriez maintenant pouvoir choisir votre nouvelle connexion dans le menu.

      Si vous avez déjà lié votre dépôt à AWS Proton, choisissez Dépôt existant.

    2. Pour Nom du référentiel, choisissez un référentiel. Le menu déroulant affiche les référentiels liés pour le référentiel existant ou la liste des référentiels dans le compte du fournisseur pour le nouveau référentiel.

    3. Dans Nom de la branche, choisissez l'une des branches du référentiel.

  6. Dans la section Paramètres d'environnement, entrez un nom d'environnement.

  7. (Facultatif) Entrez une description de l'environnement.

  8. (Facultatif) Dans la section Tags, choisissez Ajouter un nouveau tag et entrez une clé et une valeur pour créer un tag géré par le client.

  9. Choisissez Suivant.

  10. Dans la page Configurer les paramètres personnalisés de l'environnement, vous devez entrer des valeurs pour les required paramètres. Vous pouvez saisir des valeurs pour les optional paramètres ou utiliser les valeurs par défaut lorsqu'elles sont définies.

  11. Choisissez Next et passez en revue vos entrées.

  12. Choisissez Create pour envoyer une pull request.

    • Si vous approuvez la pull request, le déploiement est en cours.

    • Si vous rejetez la pull request, la création de l'environnement est annulée.

    • Si le délai d'expiration de la pull request est dépassé, la création de l'environnement n'est pas terminée.

  13. Consultez les détails et l'état de l'environnement, ainsi que les balises AWS gérées et les balises gérées par le client pour votre environnement.

  14. Dans le panneau de navigation, choisissez Environments (Environnements).

    Une nouvelle page affiche la liste de vos environnements ainsi que le statut et d'autres détails relatifs à l'environnement.

AWS CLI

Lorsque vous créez un environnement à l'aide du provisionnement autogéré, vous ajoutez le provisioningRepository paramètre et omettez les ProtonServiceRoleArn paramètres et. environmentAccountConnectionId

Utilisez le AWS CLI pour créer un environnement Terraform avec un provisionnement autogéré.
  1. Créez un environnement et envoyez une pull request au référentiel pour examen et approbation.

    Les exemples suivants montrent un fichier de spécifications YAML formaté qui définit les valeurs de deux entrées en fonction du fichier de schéma du modèle d'environnement. Vous pouvez utiliser la get-environment-template-minor-version commande pour afficher le schéma du modèle d'environnement.

    Spécification :

    proton: EnvironmentSpec spec: ssm_parameter_value: "test"

    Créez un environnement en exécutant la commande suivante.

    $ aws proton create-environment \ --name "pr-environment" \ --template-name "pr-env-template" \ --template-major-version "1" \ --provisioning-repository="branch=main,name=myrepos/env-repo,provider=GITHUB" \ --spec "file://env-spec.yaml"

    Réponse : >

    { "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/pr-environment", "createdAt": "2021-11-18T17:06:58.679000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2021-11-18T17:06:58.679000+00:00", "name": "pr-environment", "provisioningRepository": { "arn": "arn:aws:proton:region-id:123456789012:repository/github:myrepos/env-repo", "branch": "main", "name": "myrepos/env-repo", "provider": "GITHUB" }, "templateName": "pr-env-template" }
  2. Passez en revue la demande.

    • Si vous approuvez la demande, le provisionnement est en cours.

    • Si vous rejetez la demande, la création de l'environnement est annulée.

    • Si le délai d'expiration de la pull request est dépassé, la création de l'environnement n'est pas terminée.

  3. Fournissez de manière asynchrone le statut de provisionnement à. AWS Proton L'exemple suivant indique AWS Proton un provisionnement réussi.

    $ aws proton notify-resource-deployment-status-change \ --resource-arn "arn:aws:proton:region-id:123456789012:environment/pr-environment" \ --status "SUCCEEDED"