

Amazon n' CodeCatalyst est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour de plus amples informations, veuillez consulter [Comment effectuer une migration depuis CodeCatalyst](migration.md).

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 : télécharger des artefacts sur Amazon S3
<a name="build-deploy"></a>

Dans ce didacticiel, vous apprendrez à télécharger des artefacts dans un compartiment Amazon S3 à l'aide d'un CodeCatalyst [flux de travail](workflows-concepts.md#workflows-concepts-workflows) Amazon qui inclut quelques [actions de génération](workflows-concepts.md#workflows-concepts-actions). Ces actions sont exécutées en série lorsque le flux de travail démarre. La première action de construction génère deux fichiers `Hello.txt` et `Goodbye.txt` les regroupe dans un artefact de construction. La deuxième action de génération télécharge l'artefact sur Amazon S3. Vous allez configurer le flux de travail pour qu'il s'exécute chaque fois que vous envoyez un commit à votre dépôt source.

**Topics**
+ [Conditions préalables](#build-deploy-tut-prereqs)
+ [Étape 1 : Création d'un AWS rôle](#build-deploy-tut-role)
+ [Étape 2 : Création d'un compartiment Amazon S3](#build-deploy-tut-artifact)
+ [Étape 3 : Création d'un référentiel source](#deploy-tut-lambda-cfn-source)
+ [Étape 4 : Création d'un flux de travail](#build-deploy-tut-workflow.title)
+ [Étape 5 : Vérifiez les résultats](#build-deploy.s3.verify)
+ [Nettoyage](#deploy-tut-lambda-cfn-clean-up)

## Conditions préalables
<a name="build-deploy-tut-prereqs"></a>

Avant de commencer, vous avez besoin de ce qui suit :
+ Vous avez besoin d'un CodeCatalyst **espace** avec un AWS compte connecté. Pour de plus amples informations, veuillez consulter [Création d’un espace](spaces-create.md).
+ Dans votre espace, vous avez besoin d'un projet vide appelé :

  ```
  codecatalyst-artifact-project
  ```

  Utilisez l'option **Partir de zéro** pour créer ce projet.

  Pour de plus amples informations, veuillez consulter [Création d'un projet vide dans Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ Dans votre projet, vous avez besoin d'un CodeCatalyst **environnement** appelé :

  ```
  codecatalyst-artifact-environment
  ```

  Configurez cet environnement comme suit :
  + Choisissez n'importe quel type, tel que **Développement**.
  +  AWS Connectez-y votre compte.
  + Pour le **rôle IAM par défaut**, choisissez n'importe quel rôle. Vous spécifierez un autre rôle ultérieurement.

  Pour de plus amples informations, veuillez consulter [Déploiement dans Comptes AWS et VPCs](deploy-environments.md).

## Étape 1 : Création d'un AWS rôle
<a name="build-deploy-tut-role"></a>

Au cours de cette étape, vous créez un rôle AWS IAM que vous attribuerez ultérieurement à l'action de création dans votre flux de travail. Ce rôle accorde à l'action de CodeCatalyst création l'autorisation d'accéder à votre AWS compte et d'écrire sur Amazon S3 où votre artefact sera stocké. Ce rôle s'appelle le **rôle Build**.

**Note**  
Si vous possédez déjà un rôle de build que vous avez créé pour un autre didacticiel, vous pouvez également l'utiliser pour ce didacticiel. Assurez-vous simplement qu'il dispose des autorisations et de la politique de confiance indiquées dans la procédure suivante.

Pour plus d'informations sur les rôles IAM, consultez la section Rôles [IAM dans le Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) de l'*AWS Gestion des identités et des accès AWS utilisateur*.

**Pour créer un rôle de build**

1. Créez une politique pour le rôle, comme suit :

   1. Connectez-vous à AWS.

   1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Dans le panneau de navigation, choisissez **Politiques**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Choisissez l'onglet **JSON**.

   1. Supprimez le code existant.

   1. Collez le code suivant :

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "VisualEditor0",
                  "Effect": "Allow",
                  "Action": [
                      "s3:PutObject",
                      "s3:ListBucket"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------
**Note**  
La première fois que le rôle est utilisé pour exécuter des actions de flux de travail, utilisez le caractère générique dans la déclaration de politique de ressources, puis définissez la stratégie avec le nom de la ressource une fois celle-ci disponible.  

      ```
      "Resource": "*"
      ```

   1. Choisissez **Suivant : Balises**.

   1. Choisissez **Suivant : Vérification**.

   1. Dans **Nom**, entrez :

      ```
      codecatalyst-s3-build-policy
      ```

   1. Choisissez **Create Policy** (Créer une politique).

      Vous venez de créer une politique d'autorisation.

1. Créez le rôle de build, comme suit :

   1. Dans le volet de navigation, sélectionnez **Rôles**, puis **Créer un rôle**.

   1. Choisissez **Politique de confiance personnalisée**.

   1. Supprimez la politique de confiance personnalisée existante.

   1. Ajoutez la politique de confiance personnalisée suivante :

   1. Choisissez **Suivant**.

   1. Dans **Politiques d'autorisations**, recherchez `codecatalyst-s3-build-policy` et cochez la case correspondante.

   1. Choisissez **Suivant**.

   1. Dans **Nom du rôle**, entrez :

      ```
      codecatalyst-s3-build-role
      ```

   1. Pour la **description du rôle**, entrez :

      ```
      CodeCatalyst build role
      ```

   1. Choisissez **Créer un rôle**.

   Vous avez maintenant créé un rôle de build avec une politique de confiance et une politique d'autorisations.

## Étape 2 : Création d'un compartiment Amazon S3
<a name="build-deploy-tut-artifact"></a>

Au cours de cette étape, vous créez un compartiment Amazon S3 dans lequel les `Goodbye.txt` artefacts `Hello.txt` et seront chargés.

**Pour créer un compartiment Amazon S3**

1. Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le volet principal, choisissez **Create bucket**.

1. Dans le **champ Nom du compartiment**, entrez :

   ```
   codecatalyst-artifact-bucket
   ```

1. Choisissez une région dans **Région AWS **. Ce didacticiel part du principe que vous avez choisi **US West (Oregon) us-west-2**. Pour plus d'informations sur les régions prises en charge par Amazon S3, consultez la section [Points de terminaison et quotas Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) dans le *Références générales AWS*.

1. Au bas de la page, choisissez **Create bucket**.

1. Copiez le nom du bucket que vous venez de créer, par exemple :

   ```
   codecatalyst-artifact-bucket
   ```

Vous venez de créer un bucket appelé **codecatalyst-artifact-bucket** dans la région us-west-2 de l'ouest des États-Unis (Oregon).

## Étape 3 : Création d'un référentiel source
<a name="deploy-tut-lambda-cfn-source"></a>

Au cours de cette étape, vous créez un référentiel source dans CodeCatalyst. Ce référentiel est utilisé pour stocker le fichier de définition du flux de travail du didacticiel. 

Pour plus d'informations sur les référentiels sources, consultez[Création d'un référentiel source](source-repositories-create.md).

**Pour créer un référentiel de sources**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Accédez à votre projet,`codecatalyst-artifact-project`.

1. Dans le volet de navigation, choisissez **Code**, puis sélectionnez **Référentiels sources**. 

1. Choisissez **Ajouter un référentiel**, puis sélectionnez **Créer un référentiel**.

1. Dans **Nom du référentiel**, entrez :

   ```
   codecatalyst-artifact-source-repository
   ```

1. Choisissez **Créer**.

Vous venez de créer un dépôt appelé`codecatalyst-artifact-source-repository`.

## Étape 4 : Création d'un flux de travail
<a name="build-deploy-tut-workflow.title"></a>

Au cours de cette étape, vous allez créer un flux de travail composé des éléments de base suivants qui s'exécutent de manière séquentielle :
+ Un déclencheur : ce déclencheur lance automatiquement l'exécution du flux de travail lorsque vous apportez une modification à votre référentiel source. Pour plus d'informations sur les déclencheurs, consultez[Démarrage d'un flux de travail exécuté automatiquement à l'aide de déclencheurs](workflows-add-trigger.md).
+ Une action de génération appelée `GenerateFiles` — Au moment du déclenchement, l'`GenerateFiles`action crée deux fichiers`Goodbye.txt`, `Hello.txt` puis les regroupe dans un artefact de sortie appelé`codecatalystArtifact`.
+ Une autre action de `Upload` génération appelée — Une fois l'`GenerateFiles`action terminée, l'`Upload`action exécute la AWS CLI commande `aws s3 sync` pour télécharger les fichiers dans `codecatalystArtifact` et dans votre référentiel source vers votre compartiment Amazon S3. Il AWS CLI est préinstallé et préconfiguré sur la plate-forme CodeCatalyst informatique, vous n'avez donc pas besoin de l'installer ou de le configurer.

  Pour plus d'informations sur le logiciel préinstallé sur la plate-forme de CodeCatalyst calcul, consultez[Spécification des images de l'environnement d'exécution](build-images.md). Pour plus d'informations sur la `aws s3 sync` commande AWS CLI's, voir [sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) dans le manuel de *référence des AWS CLI commandes*.

Pour plus d'informations sur l'action de génération, consultez[Construire avec des flux de travail](build-workflow-actions.md).

**Pour créer un flux de travail**

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez **Créer un flux de travail**.

1. Supprimez l'exemple de code YAML.

1. Ajoutez le code YAML suivant :
**Note**  
Dans le code YAML qui suit, vous pouvez omettre la `Connections:` section si vous le souhaitez. Si vous omettez cette section, vous devez vous assurer que le rôle spécifié dans le champ **Rôle IAM par défaut** de votre environnement inclut les autorisations et les politiques de confiance décrites dans. [Étape 1 : Création d'un AWS rôle](#build-deploy-tut-role) Pour plus d'informations sur la configuration d'un environnement doté d'un rôle IAM par défaut, consultez[Création d'un environnement](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-artifact-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: Push
       Branches:
         - main   
   Actions:
     GenerateFiles:
       Identifier: aws/build@v1
       Configuration: 
         Steps:
           # Create the output files.
           - Run: echo "Hello, World!" > "Hello.txt"
           - Run: echo "Goodbye!" > "Goodbye.txt"
       Outputs:
         Artifacts:
           - Name: codecatalystArtifact
             Files:
               - "**/*"
     Upload:
       Identifier: aws/build@v1
       DependsOn: 
         - GenerateFiles
       Environment:
         Name: codecatalyst-artifact-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-s3-build-role
       Inputs:
         Artifacts:
           - codecatalystArtifact
       Configuration: 
         Steps:
           # Upload the output artifact to the S3 bucket.
           - Run: aws s3 sync . s3://codecatalyst-artifact-bucket
   ```

   Dans le code ci-dessus, remplacez :
   + *codecatalyst-artifact-environment*avec le nom de l'environnement dans lequel vous l'avez créé[Conditions préalables](#build-deploy-tut-prereqs).
   + *codecatalyst-account-connection*avec le nom de la connexion au compte que vous avez créée dans[Conditions préalables](#build-deploy-tut-prereqs).
   + *codecatalyst-s3-build-role*avec le nom du rôle de build que vous avez créé dans[Étape 1 : Création d'un AWS rôle](#build-deploy-tut-role).
   + *codecatalyst-artifact-bucket*avec le nom de l'Amazon S3 dans lequel vous l'avez créé[Étape 2 : Création d'un compartiment Amazon S3](#build-deploy-tut-artifact).

   Pour plus d'informations sur les propriétés de ce fichier, consultez le[Créez et testez des actions YAML](build-action-ref.md).

1. (Facultatif) Choisissez **Valider** pour vous assurer que le code YAML est valide avant de valider.

1. Choisissez **Commit (Valider)**.

1. Dans la boîte de dialogue du **flux de travail de validation**, entrez ce qui suit :

   1. Pour le **nom du fichier de flux** de travail, laissez la valeur par défaut,`codecatalyst-artifact-workflow`.

   1. Pour le **message de validation**, entrez :

      ```
      add initial workflow file
      ```

   1. Pour **Repository**, choisissez **codecatalyst-artifact-source-repository**.

   1. Pour **Nom de la branche**, choisissez **main**.

   1. Choisissez **Commit (Valider)**.

   Vous venez de créer un flux de travail. L'exécution d'un flux de travail démarre automatiquement en raison du déclencheur défini en haut du flux de travail. Plus précisément, lorsque vous avez validé (et transféré) le `codecatalyst-artifact-workflow.yaml` fichier dans votre référentiel source, le déclencheur a lancé l'exécution du flux de travail.

**Pour consulter le flux de travail en cours d'exécution**

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le flux de travail que vous venez de créer :`codecatalyst-artifact-workflow`.

1. Choisissez **GenerateFiles**de voir la progression de la première action de construction.

1. Choisissez **Upload** pour voir la progression de la deuxième action de build.

1. Lorsque l'action **Upload** est terminée, procédez comme suit :
   + Si l'exécution du flux de travail a réussi, passez à la procédure suivante.
   + Si l'exécution du flux de travail a échoué, choisissez **Logs** pour résoudre le problème.

## Étape 5 : Vérifiez les résultats
<a name="build-deploy.s3.verify"></a>

Une fois le flux de travail exécuté, accédez au service Amazon S3 et examinez votre *codecatalyst-artifact-bucket* compartiment. Il devrait désormais inclure les fichiers et dossiers suivants :

```
.
|— .aws/
|— .git/
|Goodbye.txt
|Hello.txt
|REAME.md
```

Les `Hello.txt` fichiers `Goodbye.txt` et ont été téléchargés car ils faisaient partie de l'`codecatalystArtifact`artefact. Les `README.md` fichiers`.aws/`,`.git/`, et ont été chargés parce qu'ils se trouvaient dans votre référentiel source.

## Nettoyage
<a name="deploy-tut-lambda-cfn-clean-up"></a>

Faites le ménage CodeCatalyst et évitez AWS d'être facturé pour ces services.

**Pour nettoyer CodeCatalyst**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Supprimez le référentiel `codecatalyst-artifact-source-repository` source.

1. Supprimez le `codecatalyst-artifact-workflow` flux de travail.

**Pour nettoyer AWS**

1. Nettoyez dans Amazon S3, comme suit :

   1. Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. Supprimez les fichiers du `codecatalyst-artifact-bucket` compartiment.

   1. Supprimez le `codecatalyst-artifact-bucket` compartiment.

1. Nettoyez dans IAM, comme suit :

   1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Supprimez la `codecatalyst-s3-build-policy`.

   1. Supprimez la `codecatalyst-s3-build-role`.