Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bootstrapping instance penampung ECS Amazon Windows untuk meneruskan data
Saat meluncurkan EC2 instans Amazon, Anda dapat meneruskan data pengguna ke EC2 instans. Data dapat digunakan untuk melakukan tugas konfigurasi otomatis umum dan bahkan menjalankan skrip ketika boot instans. Untuk AmazonECS, kasus penggunaan yang paling umum untuk data pengguna adalah mengirimkan informasi konfigurasi ke daemon Docker dan agen kontainer AmazonECS.
Anda dapat melewati beberapa tipe data pengguna ke AmazonEC2, termasuk cloud boothooks, shell scripts, dan arahan. cloud-init
Untuk informasi selengkapnya tentang hal ini dan tipe format lainnya, lihat dokumentasi Cloud-init
Anda dapat melewatkan data pengguna ini saat menggunakan wizard EC2 peluncuran Amazon. Untuk informasi selengkapnya, lihat Meluncurkan instans penampung Amazon ECS Linux.
Data pengguna Windows default
Contoh skrip data pengguna ini menunjukkan data pengguna default yang diterima instance container Windows Anda jika Anda menggunakan konsol. Script di bawah ini melakukan hal berikut:
-
Atur nama klaster ke nama yang Anda masukkan.
-
Atur peran IAM untuk tugas.
-
Atur
json-file
danawslogs
sebagai driver pencatatan yang tersedia.
Selain itu, opsi berikut tersedia saat Anda menggunakan mode awsvpc
jaringan.
-
EnableTaskENI
: Bendera ini mengaktifkan jaringan tugas dan diperlukan saat Anda menggunakan modeawsvpc
jaringan. -
AwsvpcBlockIMDS
: Bendera opsional ini memblokir IMDS akses untuk wadah tugas yang berjalan dalam modeawsvpc
jaringan. -
AwsvpcAdditionalLocalRoutes
: Bendera opsional ini memungkinkan Anda untuk memiliki rute tambahan.Ganti
ip-address
dengan Alamat IP untuk rute tambahan, misalnya 172.31.42.23/32.
Anda dapat menggunakan skrip ini untuk instans kontainer Anda sendiri (asalkan mereka diluncurkan dari Windows Server ECS AMI yang dioptimalkan Amazon).
Ganti -Cluster
baris untuk menentukan nama cluster Anda sendiri.cluster-name
<powershell> Initialize-ECSAgent -Cluster
cluster-name
-EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]' -EnableTaskENI -AwsvpcBlockIMDS -AwsvpcAdditionalLocalRoutes '["ip-address
"]' </powershell>
Untuk tugas Windows yang dikonfigurasi untuk menggunakan driver pencatatan awslogs
, Anda juga harus mengatur variabel lingkungan ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE
pada instans kontainer Anda. Gunakan sintaksis berikut:
Ganti -Cluster
baris untuk menentukan nama cluster Anda sendiri.cluster-name
<powershell> [Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine") Initialize-ECSAgent -Cluster
cluster-name
-EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]' </powershell>
Data pengguna instalasi agen Windows
Contoh skrip data pengguna ini menginstal agen ECS kontainer Amazon pada instans yang diluncurkan dengan AMIWindows_Server-2016-English-Full-Containers. Ini telah diadaptasi dari instruksi instalasi agen di halaman GitHubrepositori README Amazon ECS Container Agent
catatan
Skrip ini dibagikan untuk keperluan contoh. Hal ini jauh lebih mudah untuk memulai dengan kontainer Windows menggunakan Server AMI Windows yang ECS dioptimalkan oleh Amazon. Untuk informasi selengkapnya, lihat Membuat ECS cluster Amazon untuk jenis peluncuran Fargate.
Anda dapat menggunakan skrip ini untuk instans kontainer Anda sendiri (asalkan mereka diluncurkan dengan versi AMIWindows_Server-2016-English-Full-Containers). Pastikan untuk mengganti baris
untuk menentukan nama klaster Anda sendiri (jika Anda tidak menggunakan sebuah klaster bernama 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>