Tutoriel : Créez un pipeline qui publie votre application sans serveur sur le AWS Serverless Application Repository - AWS CodePipeline

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.

Tutoriel : Créez un pipeline qui publie votre application sans serveur sur le AWS Serverless Application Repository

Vous pouvez l'utiliser AWS CodePipeline pour fournir en continu votre application AWS SAM sans serveur au AWS Serverless Application Repository.

Important

Dans le cadre de la création d'un pipeline, un compartiment d'artefacts S3 fourni par le client sera utilisé CodePipeline pour les artefacts. (Ceci est différent du compartiment utilisé pour une action source S3.) Si le compartiment d'artefacts S3 se trouve dans un compte différent de celui de votre pipeline, assurez-vous que le compartiment d'artefacts S3 appartient Comptes AWS à une personne sûre et fiable.

Ce didacticiel explique comment créer et configurer un pipeline pour créer votre application sans serveur hébergée GitHub et publiée AWS Serverless Application Repository automatiquement sur le. Le pipeline est utilisé GitHub comme fournisseur de source et CodeBuild comme fournisseur de build. Pour publier votre application sans serveur sur le AWS Serverless Application Repository, vous déployez une application (à partir du AWS Serverless Application Repository) et associez la fonction Lambda créée par cette application en tant que fournisseur d'actions Invoke dans votre pipeline. Vous pouvez ensuite fournir des mises à jour d'applications en continu AWS Serverless Application Repository, sans écrire de code.

Important

La plupart des actions que vous ajoutez à votre pipeline dans cette procédure impliquent AWS des ressources que vous devez créer avant de créer le pipeline. AWS les ressources pour vos actions source doivent toujours être créées dans la même AWS région où vous créez votre pipeline. Par exemple, si vous créez votre pipeline dans la région USA Est (Ohio), votre CodeCommit référentiel doit se trouver dans la région USA Est (Ohio).

Vous pouvez ajouter des actions interrégionales lorsque vous créez votre pipeline. AWS les ressources pour les actions interrégionales doivent se trouver dans la même AWS région que celle où vous prévoyez d'exécuter l'action. Pour de plus amples informations, veuillez consulter Ajouter une action interrégionale dans CodePipeline.

Avant de commencer

Dans ce didacticiel, nous supposons ce qui suit :

Étape 1 : Créer un fichier buildspec.yml

Créez un buildspec.yml fichier avec le contenu suivant et ajoutez-le au GitHub référentiel de votre application sans serveur. Remplacez template.yml avec le AWS SAM modèle de votre application et bucketname avec le compartiment S3 dans lequel votre application empaquetée est stockée.

version: 0.2 phases: install: runtime-versions: python: 3.8 build: commands: - sam package --template-file template.yml --s3-bucket bucketname --output-template-file packaged-template.yml artifacts: files: - packaged-template.yml

Étape 2 : Créer et configurer votre pipeline

Suivez ces étapes pour créer votre pipeline Région AWS là où vous souhaitez publier votre application sans serveur.

  1. Connectez-vous à la CodePipeline console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/codepipeline/.

  2. Si nécessaire, passez à l' Région AWS endroit où vous souhaitez publier votre application sans serveur.

  3. Choisissez Créer un pipeline. Sur la page Choisir des paramètres de pipeline, dans Nom du pipeline, saisissez le nom de votre pipeline.

  4. Dans Type de pipeline, choisissez V2. Pour de plus amples informations, veuillez consulter Types de canalisations. Choisissez Suivant.

  5. Dans Rôle de service, choisissez Nouveau rôle de service CodePipeline pour autoriser la création d'un rôle de service dansIAM.

  6. Laissez les paramètres sous Advanced settings (Paramètres avancés) à leurs valeurs par défaut, puis choisissez Suivant.

  7. Sur la page Ajouter une source, dans Source provider, sélectionnez GitHub.

  8. Sous Connexion, choisissez une connexion existante ou créez-en une nouvelle. Pour créer ou gérer une connexion pour votre action GitHub source, consultezGitHub connexions.

  9. Dans Repository, choisissez votre référentiel GitHub source.

  10. Dans Branche, choisissez votre GitHub succursale.

  11. Conservez les valeurs par défaut restantes pour l'action source. Choisissez Suivant.

  12. Sur la page Ajouter une étape de génération, ajoutez une étape de génération :

    1. Dans le champ Fournisseur de génération, choisissez AWS CodeBuild. Pour Région, utilisez la région du pipeline.

    2. Sélectionnez Create a project (Créer un projet).

    3. Dans Nom du projet, saisissez un nom pour ce projet de génération.

    4. Dans le champ Image d'environnement, choisissez Image gérée. Pour Système d'exploitation, choisissez Ubuntu.

    5. Pour Exécution et Version d'exécution, choisissez l'exécution et la version d'exécution requises pour votre application sans serveur.

    6. Pour Rôle de service, choisissez Nouveau rôle de service.

    7. Pour Build specifications (Spécifications de génération), choisissez Use a buildspec file (Utiliser un fichier buildspec).

    8. Choisissez Continuer vers CodePipeline. Cela ouvre la CodePipeline console et crée un CodeBuild projet qui utilise le buildspec.yml dans votre référentiel pour la configuration. Le projet de construction utilise un rôle de service pour gérer les Service AWS autorisations. Cette étape peut prendre quelques minutes.

    9. Choisissez Suivant.

  13. Sur la page Ajouter une étape de déploiement, choisissez Ignorer l'étape de déploiement, puis acceptez le message d'avertissement en choisissant à nouveau Ignorer. Choisissez Suivant.

  14. Choisissez Créer un pipeline. Vous devez voir un diagramme montrant les étapes source et de génération.

  15. Accordez au rôle de CodeBuild service l'autorisation d'accéder au compartiment S3 dans lequel votre application packagée est stockée.

    1. Dans la phase de construction de votre nouveau pipeline, choisissez CodeBuild.

    2. Choisissez l'onglet Détails de la génération.

    3. Dans Environment, choisissez le rôle de CodeBuild service pour ouvrir la IAM console.

    4. Développez la sélection pour CodeBuildBasePolicy, puis choisissez Modifier la stratégie.

    5. Choisissez JSON.

    6. Ajoutez un nouvel énoncé de stratégie avec le contenu suivant. L'instruction permet CodeBuild de placer des objets dans le compartiment S3 où est stockée votre application empaquetée. Remplacez bucketname avec le nom de votre compartiment S3.

      { "Effect": "Allow", "Resource": [ "arn:aws:s3:::bucketname/*" ], "Action": [ "s3:PutObject" ] }
    7. Choisissez Review policy (Examiner une politique).

    8. Sélectionnez Enregistrer les modifications.

Étape 3 : Déployer l'application de publication

Procédez comme suit pour déployer l'application qui contient la fonction Lambda qui effectue la publication sur. AWS Serverless Application Repository Cette application s'appelle aws-serverless-codepipeline-serverlessrepo-publish.

Note

Vous devez déployer l'application sur le même site Région AWS que votre pipeline.

  1. Accédez à la page de l'application et choisissez Déployer.

  2. Sélectionnez Je reconnais que cette application crée des IAM rôles personnalisés.

  3. Choisissez Deploy (Déployer).

  4. Choisissez View AWS CloudFormation Stack pour ouvrir la AWS CloudFormation console.

  5. Développez la section Ressources. Vous voyez ServerlessRepoPublish, qui est du type AWS: :Lambda : :Function. Prenez note de l'ID physique de cette ressource pour l'étape suivante. Vous utilisez cet identifiant physique lorsque vous créez la nouvelle action de publication dans CodePipeline.

Étape 4 : Créer l'action de publication

Procédez comme suit pour créer l'action de publication dans votre pipeline.

  1. Ouvrez la CodePipeline console à l'adresse https://console.aws.amazon.com/codepipeline/.

  2. Dans le volet de navigation de gauche, choisissez le pipeline à modifier.

  3. Choisissez Modifier.

  4. Après la dernière étape de votre pipeline, choisissez +Ajouter une étape. Dans Nom de l'étape, saisissez un nom, tel que Publish, puis choisissez Ajouter une étape.

  5. Dans la nouvelle étape, choisissez + Add action group (+ Ajouter un groupe d'actions).

  6. Saisissez un nom d'action. Dans Fournisseur d'action, dans Invoquer, choisissez AWS Lambda.

  7. Dans Artefacts d'entrée, sélectionnez BuildArtifact.

  8. Dans Nom de la fonction, choisissez l'ID physique de la fonction Lambda que vous avez noté à l'étape précédente.

  9. Choisissez Enregistrer pour l'action.

  10. Choisissez Effectué pour l'étape.

  11. Dans le coin supérieur droit, choisissez Enregistrer.

  12. Pour vérifier votre pipeline, modifiez votre application dans GitHub. Par exemple, modifiez la description de l'application dans la Metadata section de votre fichier AWS SAM modèle. Validez le changement et envoyez-le à votre GitHub agence. Cela déclenche l'exécution de votre pipeline. Une fois le pipeline terminé, vérifiez que votre application a été mise à jour avec vos modifications dans le AWS Serverless Application Repository.