

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.

# Étape 3 : Chargez votre WordPress application sur Amazon S3
<a name="tutorials-wordpress-upload-application"></a>

Vous allez maintenant préparer et télécharger votre contenu source vers un emplacement à partir duquel CodeDeploy vous pourrez le déployer. Les instructions suivantes vous montrent comment configurer un compartiment Amazon S3, préparer les fichiers de révision de l'application pour le compartiment, regrouper les fichiers de révision, puis transférer la révision dans le compartiment.

**Note**  
Bien que cela ne soit pas abordé dans ce didacticiel, vous pouvez l'utiliser CodeDeploy pour déployer des applications depuis des GitHub référentiels vers des instances. Pour de plus amples informations, veuillez consulter [Intégration CodeDeploy avec GitHub](integrations-partners-github.md).

**Topics**
+ [Provisionner un compartiment Amazon S3](#tutorials-wordpress-upload-application-create-s3-bucket)
+ [Préparer les fichiers de l'application pour le bucket](#tutorials-wordpress-upload-application-prepare-application-files)
+ [Regroupez les fichiers de l'application dans un seul fichier d'archive et transférez le fichier d'archive](#tutorials-wordpress-upload-application-bundle-and-push-archive)

## Provisionner un compartiment Amazon S3
<a name="tutorials-wordpress-upload-application-create-s3-bucket"></a>

Créez un conteneur ou un *compartiment* de stockage dans Amazon S3 ou utilisez un compartiment existant. Assurez-vous que vous pouvez télécharger la révision dans le compartiment et que les instances Amazon EC2 utilisées dans les déploiements peuvent télécharger la révision depuis le compartiment.

Vous pouvez utiliser AWS CLI la console Amazon S3 ou Amazon S3 APIs pour créer un compartiment Amazon S3. Après avoir créé le bucket, assurez-vous de donner des autorisations d'accès au bucket et à votre AWS compte.

**Note**  
Les noms de compartiment doivent être uniques sur Amazon S3 pour tous les AWS comptes. Si vous n'êtes pas en mesure d'utiliser **amzn-s3-demo-bucket**, essayez un autre nom de compartiment, tel que **amzn-s3-demo-bucket**, suivi d'un tiret et de vos initiales ou d'un autre identificateur unique. Veillez ensuite à substituer votre nom de compartiment à **amzn-s3-demo-bucket** chaque fois que vous le verrez tout au long de ce didacticiel.  
Le compartiment Amazon S3 doit être créé dans la même AWS région que celle où vos instances Amazon EC2 cibles sont lancées. Par exemple, si vous créez le bucket dans la région USA Est (Virginie du Nord), vos instances Amazon EC2 cibles doivent être lancées dans la région USA Est (Virginie du Nord).

**Topics**
+ [Pour créer un compartiment Amazon S3 (CLI)](#tutorials-wordpress-upload-application-create-s3-bucket-cli)
+ [Pour créer un compartiment Amazon S3 (console)](#tutorials-wordpress-upload-application-create-s3-bucket-console)
+ [Donnez des autorisations au compartiment et au AWS compte Amazon S3](#tutorials-wordpress-upload-application-create-s3-bucket-grant-permissions)

### Pour créer un compartiment Amazon S3 (CLI)
<a name="tutorials-wordpress-upload-application-create-s3-bucket-cli"></a>

Appelez la **mb** commande pour créer un compartiment Amazon S3 nommé **amzn-s3-demo-bucket** :

```
aws s3 mb s3://amzn-s3-demo-bucket --region region
```

### Pour créer un compartiment Amazon S3 (console)
<a name="tutorials-wordpress-upload-application-create-s3-bucket-console"></a>

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

1. Dans la console Amazon S3, choisissez **Create bucket**.

1. Dans la zone **Nom du compartiment**, saisissez un nom pour le compartiment.

1. Dans la liste**Région**, choisissez la région cible, puis **Créer**.

### Donnez des autorisations au compartiment et au AWS compte Amazon S3
<a name="tutorials-wordpress-upload-application-create-s3-bucket-grant-permissions"></a>

Vous devez disposer des autorisations nécessaires pour effectuer le téléchargement dans le compartiment Amazon S3. Vous pouvez spécifier ces autorisations par le biais d'une politique de compartiment Amazon S3. Par exemple, dans la politique de compartiment Amazon S3 suivante, l'utilisation du caractère générique (\$1) permet `111122223333` au AWS compte de télécharger des fichiers dans n'importe quel répertoire du compartiment Amazon S3 nommé `amzn-s3-demo-bucket` :

```
{
    "Statement": [
        {
            "Action": [
                "s3:PutObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Principal": {
                "AWS": [
                    "111122223333"
                ]
            }
        }
    ]
}
```

Pour consulter l'identifiant de votre AWS compte, consultez la section [Trouver votre identifiant de AWS compte](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#FindingYourAWSId).

C'est le bon moment pour vérifier que le compartiment Amazon S3 autorisera les demandes de téléchargement provenant de chaque instance Amazon EC2 participante. Vous pouvez le spécifier par le biais d'une politique de compartiment Amazon S3. Par exemple, dans la politique de compartiment Amazon S3 suivante, l'utilisation du caractère générique (\$1) permet à toute instance Amazon EC2 associée à un profil d'instance IAM contenant l'`arn:aws:iam::444455556666:role/CodeDeployDemo`ARN de télécharger des fichiers depuis n'importe quel répertoire du compartiment Amazon S3 nommé : `amzn-s3-demo-bucket`

```
{
    "Statement": [
        {
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::444455556666:role/CodeDeployDemo"
                ]
            }
        }
    ]
}
```

 Pour plus d'informations sur la façon de générer et d'associer une politique de compartiment Amazon S3, consultez les [exemples de politique de compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).

Pour plus d'informations sur la création et l'attachement d'une stratégie IAM, consultez la section [Utilisation des politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html#AddingPermissions_Console).

## Préparer les fichiers de l'application pour le bucket
<a name="tutorials-wordpress-upload-application-prepare-application-files"></a>

Assurez-vous que les fichiers WordPress d'application, le AppSpec fichier et les scripts sont organisés sur votre machine de développement de la manière suivante :

```
/tmp/
  |--WordPress/
      |-- appspec.yml  
      |-- scripts/
      |    |-- change_permissions.sh
      |    |-- create_test_db.sh
      |    |-- install_dependencies.sh
      |    |-- start_server.sh
      |    |-- stop_server.sh
      |-- wp-admin/
      |    |-- (various files...)
      |-- wp-content/
      |    |-- (various files...)
      |-- wp-includes/
      |    |-- (various files...)
      |-- index.php
      |-- license.txt
      |-- readme.html
      |-- (various files ending with .php...)
```

## Regroupez les fichiers de l'application dans un seul fichier d'archive et transférez le fichier d'archive
<a name="tutorials-wordpress-upload-application-bundle-and-push-archive"></a>

Regroupez les fichiers WordPress d'application et le AppSpec fichier dans un fichier d'archive (connu sous le nom de *révision* de l'application).

**Note**  
Il est possible qu'il vous soit facturé le stockage des objets dans un compartiment et le transfert des révisions d'application vers et hors d'un compartiment. Pour plus d’informations, consultez [Tarification Amazon S3](https://aws.amazon.com/s3/pricing/). 

1. Sur la machine de développement, basculez vers le dossier dans lequel les fichiers sont stockés : 

   ```
   cd /tmp/WordPress
   ```
**Note**  
Si vous ne basculez pas dans ce dossier, la création d'un bundle de fichiers commencera dans votre dossier actif. Par exemple, si votre dossier actif est `/tmp` au lieu de `/tmp/WordPress`, la création du bundle commencera avec les fichiers et les sous-dossiers figurant dans le dossier `tmp`, lequel peut inclure plus que le simple sous-dossier `WordPress`.

1. Appelez la commande **create-application** pour enregistrer une nouvelle application nommée **WordPress\$1App** :

   ```
   aws deploy create-application --application-name WordPress_App
   ```

1. Appelez la commande CodeDeploy [push](https://docs.aws.amazon.com/cli/latest/reference/deploy/push.html) pour regrouper les fichiers, télécharger les révisions CodeDeploy sur Amazon S3 et enregistrer les informations relatives à la révision téléchargée, le tout en une seule action. 

   ```
   aws deploy push \
     --application-name WordPress_App \
     --s3-location s3://amzn-s3-demo-bucket/WordPressApp.zip \
     --ignore-hidden-files
   ```

   Cette commande regroupe les fichiers du répertoire actuel (à l'exception des fichiers cachés) dans un seul fichier d'archive nommé**WordPressApp.zip**, télécharge la révision dans le **amzn-s3-demo-bucket** compartiment et enregistre les informations relatives à CodeDeploy la révision téléchargée.