

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 personnaliser les pipelines de démarrage avec AWS SAM
<a name="serverless-customizing-starter-pipelines"></a>

En tant qu' CI/CD administrateur, vous souhaiterez peut-être personnaliser un modèle de pipeline de démarrage, ainsi que les instructions guidées associées, que les développeurs de votre organisation peuvent utiliser pour créer des configurations de pipeline.

La CLI  AWS SAM utilise des modèles Cookiecutter lors de la création des modèles de démarrage. Pour en savoir plus sur les modèles cookie cutter, consultez [Cookiecutter](https://cookiecutter.readthedocs.io/en/latest/README.html).

Vous pouvez également personnaliser les invites que la CLI  AWS SAM affiche aux utilisateurs lors de la création de configurations de pipeline à l'aide de la commande `sam pipeline init`. Pour personnaliser les invites des utilisateurs, procédez comme suit :

1. **Créez un fichier `questions.json`** – Le fichier `questions.json` doit être à la racine du référentiel du projet. Il s'agit du même répertoire que pour le fichier `cookiecutter.json`. Pour afficher le schéma du fichier `questions.json`, consultez [questions.json.schema](https://github.com/aws/aws-sam-cli/blob/2b831b29f76ac9c4e0cbcbd68b37f8f664e136d8/samcli/lib/pipeline/init/questions.json.schema). Pour afficher un exemple de fichier `questions.json`, consultez [questions.json](https://github.com/aws/aws-sam-cli-pipeline-init-templates/blob/main/Jenkins/two-stage-pipeline-template/questions.json).

1. **Mapper les clés de questions avec les noms des coupeurs de cookies** – Chaque objet du fichier `questions.json` nécessite une clé qui correspond à un nom dans le modèle Cookiecutter. Cette correspondance de clé est la façon dont la CLI  AWS SAM met en correspondance les réponses des utilisateurs au modèle de cookie cutter. Pour voir des exemples de correspondance de cette clé, consultez la section [Exemples de fichier](#serverless-customizing-starter-pipelines-example-files) plus loin dans cette rubrique. 

1. **Créez un fichier `metadata.json`** – Déclarez le nombre d'étapes que le pipeline aura dans le fichier `metadata.json`. Le nombre d'étapes indique à la commande `sam pipeline init` le nombre d'étapes nécessaire pour fournir des informations ou, dans le cas de l'option `--bootstrap`, le nombre d'étapes pour lesquelles créer des ressources d'infrastructure. Pour accéder à un exemple de fichier `metadata.json`qui déclare un pipeline à deux étapes, consultez [metadata.json](https://github.com/aws/aws-sam-cli-pipeline-init-templates/blob/main/Jenkins/two-stage-pipeline-template/metadata.json).

## Exemples de projets
<a name="serverless-customizing-starter-pipelines-example-projects"></a>

Voici des exemples de projets, qui comprennent chacun un modèle Cookiecutter, un fichier `questions.json` et un fichier `metadata.json` :
+ Exemple de Jenkins : [Modèle de pipeline Jenkins en deux étapes](https://github.com/aws/aws-sam-cli-pipeline-init-templates/tree/main/Jenkins/two-stage-pipeline-template)
+ CodePipeline exemple : [modèle de CodePipeline pipeline en deux étapes](https://github.com/aws/aws-sam-cli-pipeline-init-templates/tree/main/AWS-CodePipeline/two-stage-pipeline-template)

## Exemples de fichier
<a name="serverless-customizing-starter-pipelines-example-files"></a>

L'ensemble de fichiers suivant montre comment les questions dans le fichier `questions.json` sont associées aux entrées du fichier de modèle Cookiecutter. Notez que ces exemples sont des extraits de fichiers, non des fichiers complets. Pour voir des exemples de fichiers complets, consultez la section [Exemples de projets](#serverless-customizing-starter-pipelines-example-projects) plus loin dans cette rubrique.

Exemple **`questions.json`** :

```
{
  "questions": [{
    "key": "intro",
    "question": "\nThis template configures a pipeline that deploys a serverless application to a testing and a production stage.\n",
    "kind": "info"
  }, {
    "key": "pipeline_user_jenkins_credential_id",
    "question": "What is the Jenkins credential ID (via Jenkins plugin \"aws-credentials\") for pipeline user access key?",
    "isRequired": true
  }, {
    "key": "sam_template",
    "question": "What is the template file path?",
    "default": "template.yaml"
  }, {
    ...
```

Exemple **`cookiecutter.json`** :

```
{
  "outputDir": "aws-sam-pipeline",
  "pipeline_user_jenkins_credential_id": "",
  "sam_template": "",
    ...
```

Exemple **`Jenkinsfile`** :

```
pipeline {
  agent any
  environment {
    PIPELINE_USER_CREDENTIAL_ID = '{{cookiecutter.pipeline_user_jenkins_credential_id}}'
    SAM_TEMPLATE = '{{cookiecutter.sam_template}}'
    ...
```