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.
Démarrage des instances de conteneur Amazon ECS Windows pour transmettre des données
Lorsque vous lancez une EC2 instance Amazon, vous pouvez lui transmettre des EC2 données utilisateur. 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 AmazonECS, les cas d'utilisation les plus courants des données utilisateur sont la transmission d'informations de configuration au daemon Docker et à l'agent de ECS conteneur Amazon.
Vous pouvez transmettre plusieurs types de données utilisateur à AmazonEC2, notamment des boothooks cloud, des scripts shell et cloud-init
des directives. Pour plus d'informations sur ce point et sur d'autres types de format, consultez la documentation sur Cloud-Init
Vous pouvez transmettre ces données utilisateur lorsque vous utilisez l'assistant de EC2 lancement Amazon. Pour de plus amples informations, veuillez consulter Lancement d'une instance de conteneur Amazon ECS Linux.
Données utilisateur Windows par défaut
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 IAM rôles des tâches.
-
Définit
json-file
etawslogs
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éseauawsvpc
. -
AwsvpcBlockIMDS
: Cet indicateur facultatif bloque IMDS l'accès aux conteneurs de tâches exécutés en modeawsvpc
réseau. -
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 (à condition qu'elles soient lancées depuis le serveur Windows ECS optimisé pour AmazonAMI).
Remplacez la ligne -Cluster
pour spécifier votre propre nom de cluster.cluster-name
<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
pour spécifier votre propre nom de cluster.cluster-name
<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
Cet exemple de script de données utilisateur installe l'agent de ECS conteneur Amazon sur une instance lancée avec un AMIWindows_Server-2016-English-Full-Containers. Il a été adapté à partir des instructions d'installation de l'agent figurant sur la README page du GitHubréférentiel Amazon ECS Container Agent
Note
Ce script est partagé à titre d'exemple. Il est beaucoup plus facile de démarrer avec les conteneurs Windows en utilisant le serveur AMI Windows ECS optimisé pour Amazon. Pour de plus amples informations, veuillez consulter Création d'un ECS cluster Amazon pour le type de lancement Fargate.
Vous pouvez utiliser ce script pour vos propres instances de conteneur (à condition qu'elles soient lancées avec une version de AMIWindows_Server-2016-English-Full-Containers). Veillez à modifier la ligne
dans le fichier de configuration en spécifiant votre propre nom de cluster (si vous n'utilisez pas un cluster nommé windows
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>