Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Bootstrapping von Amazon ECS-Windows-Container-Instances zur Datenübergabe
Wenn Sie eine EC2 Amazon-Instance starten, können Sie Benutzerdaten an die EC2 Instance übergeben. Die Daten können für allgemeine automatisierte Konfigurationsaufgaben und sogar zur Ausführung von Skripts beim Start der Instance verwendet werden. In Amazon ECS werden Benutzerdaten hauptsächlich zur Übergabe von Konfigurationsinformationen an den Docker-Daemon und den Amazon-ECS-Container-Agenten verwendet.
Sie können mehrere Arten von Benutzerdaten an Amazon übergeben EC2, darunter Cloud-Boothooks, Shell-Skripte und cloud-init
Direktiven. Weitere Informationen zu diesen und anderen Formattypen finden Sie in der Cloud-Init-Dokumentation
Sie können diese Benutzerdaten weitergeben, wenn Sie den Amazon EC2 Launch Wizard verwenden. Weitere Informationen finden Sie unter Starten einer Amazon ECS Linux-Container-Instance.
Standardmäßige Windows-Benutzerdaten
Dieses Beispiel-Benutzerdatenskript zeigt die Standardbenutzerdaten, die Ihre Windows-Container-Instances erhalten, wenn Sie die Konsole verwenden. Das Skript unten führt Folgendes durch:
-
Setzt den Clusternamen auf den Namen, den Sie eingegeben haben.
-
Legt die IAM-Rollen für Aufgaben fest.
-
Legt
json-file
undawslogs
als verfügbare Protokolltreiber fest.
Darüber hinaus sind die folgenden Optionen verfügbar, wenn Sie den awsvpc
-Netzwerkmodus verwenden.
-
EnableTaskENI
: Dieses Flag aktiviert das Aufgabennetzwerk und ist erforderlich, wenn Sie denawsvpc
-Netzwerkmodus verwenden. -
AwsvpcBlockIMDS
: Dieses optionale Flag blockiert den IMDS-Zugriff für die Task-Container, die imawsvpc
-Netzwerkmodus ausgeführt werden. -
AwsvpcAdditionalLocalRoutes
: Mit diesem optionalen Flag können Sie zusätzliche Routen haben.Ersetzen Sie
ip-address
mit der IP-Adresse für die zusätzlichen Routen, zum Beispiel 172.31.42.23/32.
Sie können dieses Skript für Ihre eigenen Container-Instances verwenden (vorausgesetzt, sie werden von dem für Amazon ECS optimierten Windows-Server-AMI gestartet).
Ersetzen Sie die Zeile -Cluster
, um Ihren eigenen Clusternamen anzugeben.cluster-name
<powershell> Initialize-ECSAgent -Cluster
cluster-name
-EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]' -EnableTaskENI -AwsvpcBlockIMDS -AwsvpcAdditionalLocalRoutes '["ip-address
"]' </powershell>
Für Windows-Aufgaben, die für die Verwendung des awslogs
-Protokolltreibers konfiguriert sind, müssen Sie auch die ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE
-Umgebungsvariable für die Container-Instance festlegen. Verwenden Sie die folgende Syntax:
Ersetzen Sie die Zeile -Cluster
, um Ihren eigenen Clusternamen anzugeben.cluster-name
<powershell> [Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine") Initialize-ECSAgent -Cluster
cluster-name
-EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]' </powershell>
Benutzerdaten für die Installation des Windows-Agenten
Mit diesem Beispiel-Benutzerdatenskript wird der Amazon-ECS-Container-Agent auf einer Instance installiert, die mit einem Windows_Server-2016-English-Full-Containers-AMI gestartet wurde. Es wurde anhand der Anweisungen zur Agenteninstallation auf der GitHubREADME-Seite des Amazon ECS Container Agent-Repositorys
Anmerkung
Dieses Skript dient als Beispiel. Der Einstieg in Windows-Container ist mit dem Amazon-ECS-optimierten Windows Server-AMI wesentlich einfacher. Weitere Informationen finden Sie unter Erstellen eines Amazon ECS-Clusters für den Starttyp Fargate.
Informationen zur Installation des Amazon ECS-Agenten auf Windows Server 2022 Full finden Sie in Ausgabe 3753
Sie können dieses Skript für Ihre eigenen Container-Instances verwenden (vorausgesetzt, sie werden mit einer Version des Windows_Server-2016-English-Full-Container-AMI gestartet). Achten Sie darauf, die Zeile
zu ersetzen, um Ihren eigenen Cluster-Namen anzugeben (wenn Sie keinen Cluster namens windows
windows
verwenden).
<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>