

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.

# Amorçage des instances de conteneurs Windows Amazon ECS pour transmettre des données
<a name="bootstrap_windows_container_instance"></a>

Lorsque vous lancez une instance Amazon EC2, vous pouvez transmettre les données utilisateur à cette instance. Ces données peuvent être utilisées afin d'effectuer des tâches de configuration automatisées courantes, voire d'exécuter des scripts lors du démarrage de l'instance. Pour Amazon ECS, les données utilisateur sont le plus souvent utilisées pour transmettre les informations de configuration au démon Docker et à l'agent de conteneur Amazon ECS.

Vous pouvez transmettre plusieurs types de données utilisateur à Amazon EC2, notamment des boothooks de cloud, des scripts shell et des directives `cloud-init`. Pour plus d'informations sur ce point et sur d'autres types de format, consultez la [documentation sur Cloud-Init](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). 

Vous pouvez transmettre ces données utilisateur lors de l'utilisation de l'Amazon EC2 Launch Wizard. Pour de plus amples informations, veuillez consulter [Lancement d'une instance de conteneur Amazon ECS Linux](launch_container_instance.md).

## Données utilisateur Windows par défaut
<a name="windows-default-userdata"></a>

Cet exemple de script de données utilisateur montre les données utilisateur par défaut que vos instances de conteneur Windows reçoivent si vous utilisez la console. Le script ci-dessous :
+ Définit le nom du cluster selon le nom que vous avez saisi.
+ Définit les rôles IAM pour les tâches.
+ Définit `json-file` et `awslogs` comme pilotes de journalisation disponibles.

En outre, les options suivantes sont disponibles lorsque vous utilisez le mode réseau `awsvpc`.
+ `EnableTaskENI` : cet indicateur active les réseaux des tâches et est requis lorsque vous utilisez le mode réseau `awsvpc`.
+ `AwsvpcBlockIMDS` : cet indicateur facultatif bloque l'accès IMDS pour les conteneurs de tâches qui s'exécutent dans en mode réseau `awsvpc`.
+ `AwsvpcAdditionalLocalRoutes` : cet indicateur facultatif vous permet d'avoir des acheminements supplémentaires.

  Remplacez `ip-address` par l'adresse IP pour les acheminements supplémentaires, par exemple 172.31.42.23/32.

Vous pouvez utiliser ce script pour vos propres instances de conteneur (sous réserve qu'elles soient lancées à partir d'une AMI Windows Server optimisée pour Amazon ECS). 

Remplacez la ligne `-Cluster cluster-name` pour spécifier votre propre nom de cluster.

```
<powershell>
Initialize-ECSAgent -Cluster cluster-name -EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]' -EnableTaskENI -AwsvpcBlockIMDS -AwsvpcAdditionalLocalRoutes
'["ip-address"]'
</powershell>
```

 Pour les tâches Windows configurées pour utiliser le pilote de journalisation `awslogs`, vous devez également définir la variable d'environnement `ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE` sur votre instance de conteneur. Utilisez la syntaxe suivante. 

Remplacez la ligne `-Cluster cluster-name` pour spécifier votre propre nom de cluster.

```
<powershell>
[Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine")
Initialize-ECSAgent -Cluster cluster-name -EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]'
</powershell>
```

## Données utilisateur d'installation d'un agent Windows
<a name="agent-service-userdata"></a>

Cet exemple de script de données utilisateur installe l'agent de conteneur Amazon ECS sur une instance lancée avec une AMI **Windows\$1Server-2016-English-Full-Containers**. Il a été adapté à partir des instructions d'installation de l'agent figurant sur la page README du [ GitHubréférentiel Amazon ECS Container Agent](https://github.com/aws/amazon-ecs-agent).

**Note**  
Ce script est partagé à titre d'exemple. Il est beaucoup plus facile de commencer avec les conteneurs Windows en utilisant l'AMI Windows Server optimisée pour Amazon ECS. Pour de plus amples informations, veuillez consulter [Création d’un cluster Amazon ECS pour les charges de travail Fargate](create-cluster-console-v2.md).

Pour plus d'informations sur l'installation de l'agent Amazon ECS sur Windows Server 2022 Full, consultez le [numéro 3753](https://github.com/aws/amazon-ecs-agent/issues/3753) sur GitHub.

Vous pouvez utiliser ce script pour vos propres instances de conteneur (à condition qu'elles soient lancées avec une version de l'**AMI Windows\$1Server-2016-English-Full-Containers**). Veillez à modifier la ligne `windows` dans le fichier de configuration en spécifiant votre propre nom de cluster (si vous n'utilisez pas un cluster nommé `windows`).

```
<powershell>
# Set up directories the agent uses
New-Item -Type directory -Path ${env:ProgramFiles}\Amazon\ECS -Force
New-Item -Type directory -Path ${env:ProgramData}\Amazon\ECS -Force
New-Item -Type directory -Path ${env:ProgramData}\Amazon\ECS\data -Force
# Set up configuration
$ecsExeDir = "${env:ProgramFiles}\Amazon\ECS"
[Environment]::SetEnvironmentVariable("ECS_CLUSTER", "windows", "Machine")
[Environment]::SetEnvironmentVariable("ECS_LOGFILE", "${env:ProgramData}\Amazon\ECS\log\ecs-agent.log", "Machine")
[Environment]::SetEnvironmentVariable("ECS_DATADIR", "${env:ProgramData}\Amazon\ECS\data", "Machine")
# Download the agent
$agentVersion = "latest"
$agentZipUri = "https://s3.amazonaws.com/amazon-ecs-agent/ecs-agent-windows-$agentVersion.zip"
$zipFile = "${env:TEMP}\ecs-agent.zip"
Invoke-RestMethod -OutFile $zipFile -Uri $agentZipUri
# Put the executables in the executable directory.
Expand-Archive -Path $zipFile -DestinationPath $ecsExeDir -Force
Set-Location ${ecsExeDir}
# Set $EnableTaskIAMRoles to $true to enable task IAM roles
# Note that enabling IAM roles will make port 80 unavailable for tasks.
[bool]$EnableTaskIAMRoles = $false
if (${EnableTaskIAMRoles}) {
  $HostSetupScript = Invoke-WebRequest https://raw.githubusercontent.com/aws/amazon-ecs-agent/master/misc/windows-deploy/hostsetup.ps1
  Invoke-Expression $($HostSetupScript.Content)
}
# Install the agent service
New-Service -Name "AmazonECS" `
        -BinaryPathName "$ecsExeDir\amazon-ecs-agent.exe -windows-service" `
        -DisplayName "Amazon ECS" `
        -Description "Amazon ECS service runs the Amazon ECS agent" `
        -DependsOn Docker `
        -StartupType Manual
sc.exe failure AmazonECS reset=300 actions=restart/5000/restart/30000/restart/60000
sc.exe failureflag AmazonECS 1
Start-Service AmazonECS
</powershell>
```