

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.

# Générez un CI/CD pipeline de démarrage avec AWS SAM
<a name="serverless-generating-example-ci-cd"></a>

Lorsque vous êtes prêt à automatiser le déploiement, vous pouvez utiliser l'un des modèles AWS SAM de pipeline de démarrage pour générer un pipeline de déploiement pour le CI/CD système que vous choisissez d'utiliser. Votre pipeline de déploiement est ce que vous configurez et utilisez pour automatiser le déploiement de votre application sans serveur. Un modèle de pipeline de démarrage est préconfiguré pour vous aider à configurer rapidement votre pipeline de déploiement pour votre application sans serveur. 

Avec un modèle de pipeline de démarrage, vous pouvez générer des pipelines en quelques minutes à l'aide de la [sam pipeline init](sam-cli-command-reference-sam-pipeline-init.md) commande.

Les modèles de pipeline de démarrage utilisent la JSON/YAML syntaxe familière du CI/CD système et intègrent les meilleures pratiques, telles que la gestion des artefacts sur plusieurs comptes et régions, et l'utilisation du minimum d'autorisations requises pour déployer l'application. [Actuellement, la AWS SAM CLI prend en charge la génération de configurations de CI/CD pipeline de démarrage pour les [AWS CodePipeline](https://aws.amazon.com/codepipeline)pipelines [Jenkins](https://www.jenkins.io/), [GitLab CI/CD](https://docs.gitlab.com/ee/ci/), [GitHub Actions](https://github.com/features/actions) et Bitbucket.](https://support.atlassian.com/bitbucket-cloud/docs/get-started-with-bitbucket-pipelines/)

Voici les tâches de haut niveau que vous devez effectuer pour générer une configuration de pipeline de démarrage :

1. **Création de ressources d'infrastructure** : votre pipeline nécessite certaines AWS ressources, par exemple l'utilisateur IAM et les rôles dotés des autorisations nécessaires, un compartiment Amazon S3 et éventuellement un référentiel Amazon ECR.

1. **Connectez votre dépôt Git à votre CI/CD système** : votre CI/CD système doit savoir quel dépôt Git déclenchera l'exécution du pipeline. Notez que cette étape peut ne pas être nécessaire, selon la combinaison du référentiel Git et CI/CD du système que vous utilisez.

1. **Générez une configuration de pipeline** : cette étape génère une configuration de pipeline de démarrage qui inclut deux étapes de déploiement.

1. **Validez la configuration de votre pipeline dans votre dépôt Git** : cette étape est nécessaire pour s'assurer que votre CI/CD système est au courant de la configuration de votre pipeline et qu'elle sera exécutée lorsque les modifications seront validées.

Après avoir généré la configuration du pipeline de démarrage et l’avoir associée au référentiel Git, le pipeline se déclenche pour s’exécuter automatiquement chaque fois que quelqu’un associe une modification de code au référentiel.

L’ordre de ces étapes, ainsi que les détails de chaque étape, varient en fonction du système CI/CD :
+ Si vous utilisez AWS CodePipeline, consultez[Génération d'un pipeline de démarrage pour AWS CodePipeline in AWS SAM](serverless-generating-example-ci-cd-codepipeline.md).
+ Si vous utilisez Jenkins, GitLab CI/CD, GitHub Actions ou Bitbucket Pipelines, consultez. [AWS SAM À utiliser pour générer des pipelines de démarrage pour Jenkins, GitLab CI/CD, GitHub Actions, Bitbucket Pipelines](serverless-generating-example-ci-cd-others.md)

# Génération d'un pipeline de démarrage pour AWS CodePipeline in AWS SAM
<a name="serverless-generating-example-ci-cd-codepipeline"></a>

Pour générer une configuration de pipeline de démarrage pour AWS CodePipeline, effectuez les tâches suivantes dans cet ordre :

1. Créer des ressources d’infrastructure

1. Générer la configuration du pipeline

1. Associer la configuration du pipeline au référentiel Git

1. Connectez votre dépôt Git à votre CI/CD système

**Note**  
La procédure suivante utilise deux commandes de la CLI  AWS SAM, `sam pipeline bootstrap` et `sam pipeline init`. La raison pour laquelle il existe deux commandes est de gérer le cas d'utilisation où les administrateurs (c'est-à-dire les utilisateurs qui ont besoin d'une autorisation pour configurer des AWS ressources d'infrastructure telles que les utilisateurs et les rôles IAM) ont plus d'autorisations que les développeurs (c'est-à-dire les utilisateurs qui ont juste besoin d'une autorisation pour configurer des pipelines individuels, mais pas les AWS ressources d'infrastructure requises).

## Étape 1 : créer des ressources d’infrastructure
<a name="generating-example-step-1"></a>

Les pipelines utilisés AWS SAM nécessitent certaines AWS ressources, comme un utilisateur IAM et des rôles dotés des autorisations nécessaires, un compartiment Amazon S3 et éventuellement un référentiel Amazon ECR. Vous devez disposer d’un ensemble de ressources d’infrastructure pour chaque étape de déploiement du pipeline.

Vous pouvez exécuter la commande suivante pour vous aider avec cette configuration :

```
sam pipeline bootstrap
```

**Note**  
Exécutez la commande précédente pour chaque étape de déploiement du pipeline.

## Étape 2 : générer la configuration du pipeline
<a name="generating-example-step-2"></a>

Pour générer la configuration du pipeline, exécutez la commande suivante :

```
sam pipeline init
```

## Étape 3 : associer la configuration du pipeline au référentiel Git
<a name="generating-example-step-3"></a>

Cette étape est nécessaire pour s'assurer que votre CI/CD système connaît la configuration de votre pipeline et qu'elle sera exécutée lorsque les modifications seront validées.

## Étape 4 : Connectez votre dépôt Git à votre CI/CD système
<a name="generating-example-step-4"></a>

Car AWS CodePipeline vous pouvez désormais créer la connexion en exécutant la commande suivante :

```
sam deploy -t codepipeline.yaml --stack-name <pipeline-stack-name> --capabilities=CAPABILITY_IAM --region <region-X>
```

Si vous utilisez GitHub Bitbucket, après avoir exécuté la **sam deploy** commande précédemment, terminez la connexion en suivant les étapes décrites dans la section Pour établir **une connexion trouvée dans la rubrique Mettre à jour une connexion** [en attente](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) dans le *guide de l'utilisateur de la console Developer Tools*. En outre, stockez une copie `CodeStarConnectionArn` de la sortie de la **sam deploy** commande, car vous en aurez besoin si vous souhaitez l'utiliser AWS CodePipeline avec une autre branche que`main`.

## Configuration d’autres branches
<a name="configuring-other-branches"></a>

Par défaut, AWS CodePipeline utilise la `main` branche avec AWS SAM. Si vous voulez utiliser une branche autre que `main`, vous devez exécuter à nouveau la commande **sam deploy**. Notez que selon le référentiel Git que vous utilisez, il se peut que vous deviez aussi fournir le `CodeStarConnectionArn` :

```
# For GitHub and Bitbucket
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name> CodeStarConnectionArn=<codestar-connection-arn>"

# For AWS CodeCommit
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name>"
```

## En savoir plus
<a name="serverless-generating-cicd-learn"></a>

Pour un exemple pratique de configuration d'un CI/CD pipeline, voir [CI/CD with AWS CodePipeline](https://catalog.workshops.aws/complete-aws-sam/en-US/module-4-cicd) dans *The Complete AWS SAM * Workshop.

# AWS SAM À utiliser pour générer des pipelines de démarrage pour Jenkins, GitLab CI/CD, GitHub Actions, Bitbucket Pipelines
<a name="serverless-generating-example-ci-cd-others"></a>

Pour générer une configuration de pipeline de démarrage pour les pipelines Jenkins, GitLab CI/CD, GitHub Actions ou Bitbucket, effectuez les tâches suivantes dans cet ordre :

1. Créer des ressources d’infrastructure

1. Connectez votre dépôt Git à votre CI/CD système

1. Créer des objets d’identification

1. Générer la configuration du pipeline

1. Associer la configuration du pipeline au référentiel Git

**Note**  
La procédure suivante utilise deux commandes de la CLI  AWS SAM, `sam pipeline bootstrap` et `sam pipeline init`. La raison pour laquelle il existe deux commandes est de gérer le cas d'utilisation où les administrateurs (c'est-à-dire les utilisateurs qui ont besoin d'une autorisation pour configurer des AWS ressources d'infrastructure telles que les utilisateurs et les rôles IAM) ont plus d'autorisations que les développeurs (c'est-à-dire les utilisateurs qui ont juste besoin d'une autorisation pour configurer des pipelines individuels, mais pas les AWS ressources d'infrastructure requises).

## Étape 1 : créer des ressources d’infrastructure
<a name="generating-example-step-1"></a>

Les pipelines utilisés AWS SAM nécessitent certaines AWS ressources, comme un utilisateur IAM et des rôles dotés des autorisations nécessaires, un compartiment Amazon S3 et éventuellement un référentiel Amazon ECR. Vous devez disposer d’un ensemble de ressources d’infrastructure pour chaque étape de déploiement du pipeline.

Vous pouvez exécuter la commande suivante pour vous aider avec cette configuration :

```
sam pipeline bootstrap
```

**Note**  
Exécutez la commande précédente pour chaque étape de déploiement du pipeline.

Vous devez saisir les AWS informations d'identification (identifiant de clé et clé secrète) des utilisateurs du pipeline pour chaque étape de déploiement de votre pipeline, car elles sont nécessaires pour les étapes suivantes.

## Étape 2 : Connectez votre dépôt Git à votre CI/CD système
<a name="generating-example-step-2"></a>

La connexion de votre dépôt Git à votre CI/CD système est nécessaire pour que le CI/CD système puisse accéder au code source de votre application pour les builds et les déploiements.

**Note**  
Vous pouvez ignorer cette étape si vous utilisez l’une des combinaisons suivantes, car la connexion est effectuée automatiquement :  
GitHub Actions avec le GitHub référentiel
GitLab CI/CD avec dépôt GitLab 
Bitbucket Pipelines avec un référentiel Bitbucket

Pour connecter votre dépôt Git à votre CI/CD système, effectuez l'une des opérations suivantes :
+ Si vous utilisez Jenkins, consultez « Ajout d’une source de branche » dans la section [Documentation Jenkins](https://www.jenkins.io/doc/book/pipeline/multibranch/).
+ Si vous utilisez GitLab CI/CD et un dépôt Git autre que celui-ci GitLab, consultez la [GitLabdocumentation relative](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/) à la « connexion à un dépôt externe ».

## Étape 3 : créer des objets des informations d’identification
<a name="generating-example-step-3"></a>

Chaque CI/CD système dispose de sa propre méthode de gestion des informations d'identification nécessaires pour accéder à votre dépôt Git. CI/CD 

Pour créer les objets des informations d’identification nécessaires, effectuez l’une des opérations suivantes :
+ Si vous utilisez Jenkins, créez une seule « information d’identification » qui stocke à la fois l’identifiant de la clé et la clé secrète. Suivez les instructions du blog [Création d’un pipeline Jenkins avec AWS SAM](https://aws.amazon.com/blogs/compute/building-a-jenkins-pipeline-with-aws-sam/), dans la section **Configurer Jenkins**. Vous aurez besoin de l’« identifiant des informations d’identification » pour l’étape suivante.
+ Si vous utilisez le GitLab CI/CD, créez deux « variables protégées », une pour chaque identifiant de clé et une clé secrète. Suivez les instructions de la [GitLab documentation](https://docs.gitlab.com/ee/ci/variables/). Vous aurez besoin de deux « clés variables » pour l'étape suivante.
+ Si vous utilisez GitHub Actions, créez deux « secrets chiffrés », un pour chaque clé et une pour chaque clé secrète. Suivez les instructions de la [GitHubdocumentation](https://docs.github.com/en/actions/reference/encrypted-secrets). Vous aurez besoin de deux « noms secrets » pour l'étape suivante.
+ Si vous utilisez Bitbucket Pipelines, créez deux « variables sécurisées », une pour chaque identifiant de clé et clé secrète. Suivez les instructions de la section [Variables et secrets ](https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets). Vous aurez besoin de deux « noms secrets » pour l’étape suivante.

## Étape 4 : générer la configuration du pipeline
<a name="generating-example-step-4"></a>

Pour générer la configuration du pipeline, exécutez la commande suivante : Vous devez entrer l’objet des informations d’identification que vous avez créé à l’étape précédente :

```
sam pipeline init
```

## Étape 5 : associer la configuration du pipeline au référentiel Git
<a name="generating-example-step-5"></a>

Cette étape est nécessaire pour s'assurer que votre CI/CD système connaît la configuration de votre pipeline et qu'elle sera exécutée lorsque les modifications seront validées.

## En savoir plus
<a name="serverless-generating-other-cicd-learn"></a>

Pour un exemple pratique de configuration d'un CI/CD pipeline en utilisantGitHub Actions, voir [CI/CD with GitHub](https://s12d.com/sam-ws-en-gh) dans *The Complete AWS SAM * Workshop.