Riferimento all'azione di distribuzione di Amazon Elastic Container Service - AWS CodePipeline

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à.

Riferimento all'azione di distribuzione di Amazon Elastic Container Service

Puoi utilizzare un'azione Amazon ECS per distribuire un servizio Amazon ECS e un set di attività. Un servizio Amazon ECS è un'applicazione contenitore che viene distribuita in un cluster Amazon ECS. Un cluster Amazon ECS è una raccolta di istanze che ospitano l'applicazione container nel cloud. La distribuzione richiede una definizione di attività creata in Amazon ECS e un file di definizioni delle immagini da utilizzare CodePipeline per distribuire l'immagine.

Importante

L'azione di distribuzione standard di Amazon ECS CodePipeline crea la propria revisione della definizione dell'attività in base alla revisione utilizzata dal servizio Amazon ECS. Se crei nuove revisioni per la definizione dell'attività senza aggiornare il servizio Amazon ECS, l'azione di distribuzione ignorerà tali revisioni.

Prima di creare la pipeline, devi aver già creato le risorse Amazon ECS, taggato e archiviato l'immagine nel tuo repository di immagini e caricato il BuildSpec file nel tuo archivio di file.

Nota

Questo argomento di riferimento descrive l'azione di distribuzione standard di Amazon ECS per CodePipeline. Per informazioni di riferimento sulle azioni di distribuzione da Amazon ECS a CodeDeploy blue/green in CodePipeline, consulta. Riferimento alle azioni di distribuzione di Amazon Elastic Container Service e CodeDeploy blue-green

Tipo di operazione

  • Categoria: Deploy

  • Proprietario: AWS

  • Provider: ECS

  • Versione: 1

Parametri di configurazione

ClusterName

Campo obbligatorio: sì

Il cluster Amazon ECS in Amazon ECS.

ServiceName

Campo obbligatorio: sì

Il servizio Amazon ECS che hai creato in Amazon ECS.

FileName

Campo obbligatorio: no

Il nome del file di definizioni delle immagini, il file JSON che descrive il nome del contenitore del servizio, l'immagine e il tag. Utilizzi questo file per le distribuzioni standard ECS. Per ulteriori informazioni, consultare Input artifact (Artefatti di input) e file imagedefinitions.json per le azioni di distribuzione standard di Amazon ECS.

DeploymentTimeout

Campo obbligatorio: no

Il timeout dell'azione di distribuzione di Amazon ECS in minuti. Il timeout è configurabile fino al timeout predefinito massimo per questa operazione. Per esempio:

"DeploymentTimeout": "15"

Input artifact (Artefatti di input)

  • Numero di artefatti: 1

  • Descrizione: l'azione cerca un imagedefinitions.json file nell'archivio dei file di origine della pipeline. Un documento di definizioni delle immagini è un file JSON che descrive il nome del contenitore Amazon ECS, l'immagine e il tag. CodePipeline utilizza il file per recuperare l'immagine dal tuo repository di immagini come Amazon ECR. Puoi aggiungere manualmente un imagedefinitions.json file per una pipeline in cui l'azione non è automatizzata. Per ulteriori informazioni sul file imagedefinitions.json, consulta file imagedefinitions.json per le azioni di distribuzione standard di Amazon ECS.

    L'azione richiede un'immagine esistente che è già stata inserita nel tuo archivio di immagini. Poiché la mappatura delle immagini è fornita dal imagedefinitions.json file, l'azione non richiede che la sorgente Amazon ECR sia inclusa come azione sorgente nella pipeline.

Artefatti di output

  • Numero di artefatti: 0

  • Descrizione: gli artefatti di output non si applicano a questo tipo di azione.

Autorizzazioni per ruoli di servizio: azione standard di Amazon ECS

Per Amazon ECS, le seguenti sono le autorizzazioni minime necessarie per creare pipeline con un'azione di distribuzione di Amazon ECS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "TaskDefinitionPermissions", "Effect": "Allow", "Action": [ "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition" ], "Resource": [ "*" ] }, { "Sid": "ECSServicePermissions", "Effect": "Allow", "Action": [ "ecs:DescribeServices", "ecs:UpdateService" ], "Resource": [ "arn:aws:ecs:*:{{customerAccountId}}:service/[[clusters]]/*" ] }, { "Sid": "ECSTagResource", "Effect": "Allow", "Action": [ "ecs:TagResource" ], "Resource": [ "arn:aws:ecs:*:{{customerAccountId}}:task-definition/[[taskDefinitions]]:*" ], "Condition": { "StringEquals": { "ecs:CreateAction": [ "RegisterTaskDefinition" ] } } }, { "Sid": "IamPassRolePermissions", "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::{{customerAccountId}}:role/[[passRoles]]" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "ecs.amazonaws.com", "ecs-tasks.amazonaws.com" ] } } } ] }

Puoi scegliere di utilizzare l'autorizzazione all'etichettatura in Amazon ECS. Iscrivendoti, devi concedere le seguenti autorizzazioni:. ecs:TagResource Per ulteriori informazioni su come attivare e determinare se l'autorizzazione è richiesta e l'autorizzazione dei tag è applicata, consulta la cronologia dell'autorizzazione all'etichettatura nella Amazon Elastic Container Service Developer Guide.

È necessario aggiungere le iam:PassRole autorizzazioni per utilizzare i ruoli IAM per le attività. Per ulteriori informazioni, consulta il ruolo IAM di esecuzione delle attività di Amazon ECS e IAM Roles for Tasks. Utilizza il seguente testo di policy.

Dichiarazione dell'operazione

YAML
Name: DeployECS ActionTypeId: Category: Deploy Owner: AWS Provider: ECS Version: '1' RunOrder: 2 Configuration: ClusterName: my-ecs-cluster ServiceName: sample-app-service FileName: imagedefinitions.json DeploymentTimeout: '15' OutputArtifacts: [] InputArtifacts: - Name: my-image
JSON
{ "Name": "DeployECS", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "ECS", "Version": "1" }, "RunOrder": 2, "Configuration": { "ClusterName": "my-ecs-cluster", "ServiceName": "sample-app-service", "FileName": "imagedefinitions.json", "DeploymentTimeout": "15" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "my-image" } ] },

Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.

  • Guarda Tutorial: crea e invia un'immagine Docker ad Amazon ECR con CodePipeline (tipo V2) un tutorial che mostra come utilizzare l'azione ECRBuildand Pubblica per inviare un'immagine e quindi utilizzare l'azione standard ECS per la distribuzione su Amazon ECS.

  • Tutorial: distribuzione continua con CodePipeline: questo tutorial mostra come creare un Dockerfile da archiviare in un archivio di file sorgente come. CodeCommit Successivamente, il tutorial mostra come incorporare un CodeBuild BuildSpec file che crea e invia la tua immagine Docker ad Amazon ECR e crea il tuo file imagedefinitions.json. Infine, crei un servizio Amazon ECS e una definizione di attività, quindi crei la pipeline con un'azione di distribuzione di Amazon ECS.

    Nota

    Questo argomento e questo tutorial descrivono l'azione di distribuzione standard di Amazon ECS per CodePipeline. Per informazioni sulle azioni di distribuzione da Amazon ECS a CodeDeploy blue/green in CodePipeline, consulta. Tutorial: crea una pipeline con una sorgente e una distribuzione Amazon ECR ECS-to-CodeDeploy

  • Guida per sviluppatori di Amazon Elastic Container Service: per informazioni sull'utilizzo di immagini e contenitori Docker, servizi e cluster Amazon ECS e set di attività Amazon ECS, consulta What Is Amazon ECS?