Avvio delle istanze di container Amazon ECS Windows per il trasferimento di dati - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Avvio delle istanze di container Amazon ECS Windows per il trasferimento di dati

Quando avvii un'EC2istanza Amazon, puoi passare i dati utente all'EC2istanza. I dati possono essere utilizzati per eseguire attività di configurazione automatizzate di routine e anche per l'esecuzione di script all'avvio dell'istanza. Per AmazonECS, i casi d'uso più comuni dei dati utente consistono nel trasmettere le informazioni di configurazione al daemon Docker e all'agente contenitore AmazonECS.

Puoi trasferire diversi tipi di dati utente ad AmazonEC2, inclusi boothook cloud, script di shell e direttive. cloud-init Per ulteriori informazioni su questi e altri tipi di formato, consulta la documentazione su cloud-init.

Puoi trasmettere questi dati utente quando usi la procedura guidata di EC2 avvio di Amazon. Per ulteriori informazioni, consulta Avvio di un'istanza di container Amazon ECS Linux.

Data utente di Windows di default

Questo script di dati utente di esempio mostra i dati utente predefiniti che le istanze di container Windows ricevono se si utilizza la console. Lo script sottostante esegue le seguenti operazioni:

  • Imposta il nome del cluster in base al nome inserito.

  • Imposta i IAM ruoli per le attività.

  • Imposta json-file e awslogs come i driver di log disponibili.

Inoltre, le seguenti opzioni sono disponibili quando si utilizza la modalità di rete awsvpc.

  • EnableTaskENI: questo flag attiva la rete di processi ed è necessario quando si utilizza la modalità di rete awsvpc.

  • AwsvpcBlockIMDS: questo flag opzionale blocca IMDS l'accesso ai contenitori di attività in esecuzione in modalità awsvpc rete.

  • AwsvpcAdditionalLocalRoutes: questo flag facoltativo consente di avere route aggiuntive.

    Sostituisci ip-address con l'indirizzo IP per le route aggiuntive, ad esempio 172.31.42.23/32.

Puoi utilizzare questo script per le tue istanze di container (a condizione che vengano avviate da Windows Server ECS AMI ottimizzato per Amazon).

Sostituisci la riga -Cluster cluster-name per specificare il nome del cluster.

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

Per le attività di Windows configurate per utilizzare il driver di registrazione awslogs, è necessario impostare anche la variabile di ambiente ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE nell'istanza di container. Utilizzare la seguente sintassi.

Sostituisci la riga -Cluster cluster-name per specificare il nome del cluster.

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

Dati utente dell'installazione dell'agente Windows

Questo esempio di user data script installa l'agente Amazon ECS Container su un'istanza lanciata con AMIWindows_Server-2016-English-Full-Containers. È stato adattato dalle istruzioni di installazione dell'agente nella README pagina del GitHubrepository di Amazon ECS Container Agent.

Nota

Questo script è condiviso a scopo esemplificativo. È molto più semplice iniziare a usare i contenitori Windows utilizzando Windows Server ECS AMI ottimizzato per Amazon. Per ulteriori informazioni, consulta Creazione di un ECS cluster Amazon per il tipo di lancio Fargate.

Puoi usare questo script per le tue istanze di container (a condizione che vengano avviate con una versione di AMIWindows_Server-2016-EnglishFull-Containers). Assicurati di sostituire la riga windows per specificare il nome del tuo cluster (se non utilizzi un cluster denominato 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>