View a markdown version of this page

Bootstrap instans kontainer Windows Amazon ECS untuk meneruskan data - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bootstrap instans kontainer Windows Amazon ECS untuk meneruskan data

Saat meluncurkan instans Amazon EC2, Anda dapat meneruskan data pengguna ke instans EC2. Data dapat digunakan untuk melakukan tugas konfigurasi otomatis umum dan bahkan menjalankan skrip ketika boot instans. Untuk Amazon ECS, kasus penggunaan yang paling umum untuk data pengguna adalah meneruskan informasi konfigurasi ke daemon Docker dan agen kontainer Amazon ECS.

Anda dapat meneruskan beberapa jenis data pengguna ke Amazon EC2, termasuk cloud boothook, skrip shell, dan arahan. cloud-init Untuk informasi selengkapnya tentang ini dan jenis format lainnya, lihat Cloud-Init dokumentasi.

Anda dapat meneruskan data pengguna ini saat menggunakan wizard peluncuran Amazon EC2. Untuk informasi selengkapnya, lihat Meluncurkan instance container Amazon ECS Linux.

Data pengguna Windows default

Contoh skrip data pengguna ini menunjukkan data pengguna default yang diterima instans kontainer Windows Anda jika Anda menggunakan konsol. Skrip berikut melakukan hal berikut:

  • Menetapkan nama cluster ke nama yang Anda masukkan.

  • Menetapkan peran IAM untuk tugas.

  • Atur json-file dan awslogs 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 mode awsvpc jaringan.

  • AwsvpcBlockIMDS: Bendera opsional ini memblokir akses IMDS untuk wadah tugas yang berjalan dalam mode awsvpc 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 instance kontainer Anda sendiri (asalkan diluncurkan dari AMI Amazon ECS-optimized Windows Server).

Ganti -Cluster cluster-name baris untuk menentukan nama cluster Anda sendiri.

<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 cluster-name baris untuk menentukan nama cluster Anda sendiri.

<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 kontainer Amazon ECS pada instans yang diluncurkan dengan Windows_Server -2016- English-Full-Containers AMI. Ini telah diadaptasi dari instruksi instalasi agen di halaman README GitHub repositori Agen Kontainer Amazon ECS.

catatan

Skrip ini dibagikan untuk keperluan contoh. Jauh lebih mudah untuk memulai dengan wadah Windows dengan menggunakan Amazon ECS-optimized Windows Server AMI. Untuk informasi selengkapnya, lihat Membuat cluster Amazon ECS untuk beban kerja Fargate.

Untuk informasi tentang cara menginstal agen Amazon ECS di Windows Server 2022 Full, lihat E disi 3753 pada. GitHub

Anda dapat menggunakan skrip ini untuk instance kontainer Anda sendiri (asalkan diluncurkan dengan versi Windows_Server -2016- English-Full-Containers AMI). Pastikan untuk mengganti baris windows untuk menentukan nama klaster Anda sendiri (jika Anda tidak menggunakan sebuah klaster bernama 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>