Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Riferimento alle azioni di distribuzione di Amazon Elastic Container Service e CodeDeploy blue-green

Modalità Focus
Riferimento alle azioni di distribuzione di Amazon Elastic Container Service e CodeDeploy blue-green - 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à.

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

Puoi configurare una pipeline in AWS CodePipeline modo da distribuire applicazioni container utilizzando una blue/green deployment. In a blue/green distribuzione, avviare una nuova versione dell'applicazione insieme a quella precedente e testare la nuova versione prima di reindirizzare il traffico verso di essa. Puoi anche monitorare il processo di distribuzione ed eseguire rapidamente il rollback in caso di problemi.

La pipeline completata rileva le modifiche alle immagini o al file di definizione delle attività e le utilizza CodeDeploy per indirizzare e distribuire il traffico verso un cluster Amazon ECS e un sistema di bilanciamento del carico. CodeDeploy crea un nuovo listener sul tuo sistema di bilanciamento del carico che può indirizzare la nuova attività tramite una porta speciale. Puoi anche configurare la pipeline per utilizzare una posizione di origine, ad esempio un CodeCommit repository, in cui è archiviata la definizione delle attività di Amazon ECS.

Prima di creare la pipeline, devi aver già creato le risorse Amazon ECS, le risorse, il CodeDeploy sistema di bilanciamento del carico e il gruppo target. Devi aver già taggato e archiviato l'immagine nel tuo repository di immagini e aver caricato la definizione dell'attività e il file nel tuo archivio di AppSpec file.

Nota

Questo argomento descrive l'azione di distribuzione di Amazon ECS to CodeDeploy blue/green per. CodePipeline Per informazioni di riferimento sulle azioni di distribuzione standard di Amazon ECS in CodePipeline, consultaRiferimento all'azione di distribuzione di Amazon Elastic Container Service.

Tipo di operazione

  • Categoria: Deploy

  • Proprietario: AWS

  • Provider: CodeDeployToECS

  • Versione: 1

Parametri di configurazione

ApplicationName

Campo obbligatorio: sì

Il nome dell'applicazione in CodeDeploy. Prima di creare la pipeline, è necessario aver già creato l'applicazione in CodeDeploy.

DeploymentGroupName

Campo obbligatorio: sì

Il gruppo di distribuzione specificato per i set di attività di Amazon ECS che hai creato per la tua CodeDeploy applicazione. Prima di creare la pipeline, devi aver già creato il gruppo di distribuzione in. CodeDeploy

TaskDefinitionTemplateArtifact

Campo obbligatorio: sì

Il nome dell'elemento di input che fornisce il file di definizione dell'attività all'azione di distribuzione. Questo è in genere il nome dell'artefatto di output dell'azione di origine. Quando si utilizza la console, il nome predefinito per l'elemento di output dell'azione di origine è. SourceArtifact

AppSpecTemplateArtifact

Campo obbligatorio: sì

Il nome dell'elemento di input che fornisce il AppSpec file all'azione di distribuzione. Tale valore viene aggiornato quando la pipeline viene eseguita. Questo è generalmente il nome dell'artefatto di output dell'azione di origine. Quando si utilizza la console, il nome predefinito per l'elemento di output dell'azione di origine è. SourceArtifact Per TaskDefinition nel AppSpec file, puoi conservare il testo <TASK_DEFINITION> segnaposto come mostrato qui.

AppSpecTemplatePath

Campo obbligatorio: no

Il nome del file memorizzato nella posizione del AppSpec file di origine della pipeline, ad esempio nel repository della pipeline. CodeCommit Il nome file predefinito è appspec.yaml. Se il AppSpec file ha lo stesso nome ed è archiviato al livello principale del repository di file, non è necessario fornire il nome del file. Se il percorso non è quello predefinito, inserite il percorso e il nome del file.

TaskDefinitionTemplatePath

Campo obbligatorio: no

Il nome del file della definizione dell'attività memorizzata nella posizione di origine del file della pipeline, ad esempio nel repository della CodeCommit pipeline. Il nome file predefinito è taskdef.json. Se il file di definizione dell'attività ha lo stesso nome ed è archiviato a livello principale nel repository dei file, non è necessario fornire il nome del file. Se il percorso non è quello predefinito, inserite il percorso e il nome del file.

Immagine <Number>ArtifactName

Campo obbligatorio: no

Il nome dell'elemento di input che fornisce l'immagine all'azione di distribuzione. Si tratta in genere dell'artefatto di output del repository di immagini, ad esempio l'output dell'azione sorgente di Amazon ECR.

I valori disponibili per <Number> sono compresi tra 1 e 4.

Immagine <Number>ContainerName

Campo obbligatorio: no

Il nome dell'immagine disponibile nell'archivio di immagini, ad esempio l'archivio dei sorgenti di Amazon ECR.

I valori disponibili per <Number> sono compresi tra 1 e 4.

Input artifact (Artefatti di input)

  • Numero di artefatti: 1 to 5

  • Descrizione: l'CodeDeployToECSazione cerca innanzitutto il file di definizione dell'attività e il AppSpec file nell'archivio dei file di origine, quindi cerca l'immagine nell'archivio delle immagini, quindi genera dinamicamente una nuova revisione della definizione dell'attività e infine esegue AppSpec i comandi per distribuire il set di attività e il contenitore nel cluster.

    L'CodeDeployToECSazione cerca un imageDetail.json file che associa l'URI dell'immagine all'immagine. Quando esegui una modifica al tuo repository di immagini Amazon ECR, l'azione sorgente ECR della pipeline crea un imageDetail.json file per quel commit. Puoi anche aggiungere manualmente un imageDetail.json file per una pipeline in cui l'azione non è automatizzata. Per ulteriori informazioni sul file imageDetail.json, consulta File ImageDetail.json per le azioni di distribuzione blu/verde di Amazon ECS.

    L'CodeDeployToECSazione genera dinamicamente una nuova revisione della definizione dell'attività. In questa fase, questa azione sostituisce i segnaposto nel file di definizione dell'attività nell'URI dell'immagine recuperato dai file ImageDetail.json. Ad esempio, se imposti IMAGE1_NAME come ContainerName parametro Image1, devi specificare il segnaposto < _NAME> come valore del campo immagine nel file di definizione dell'attività. IMAGE1 In questo caso, l'azione CodeDeployTo ECS sostituisce il segnaposto < IMAGE1 _NAME> nell'URI effettivo dell'immagine recuperato da ImageDetail.json nell'artefatto specificato come Image1. ArtifactName

    Per gli aggiornamenti TaskDefinition delle definizioni delle CodeDeploy AppSpec.yaml attività, il file contiene la proprietà.

    TaskDefinition: <TASK_DEFINITION>

    Questa proprietà verrà aggiornata dall'CodeDeployToECSazione dopo la creazione della nuova definizione di attività.

    <TASK_DEFINITION>Per il valore del TaskDefinition campo, il testo segnaposto deve essere. L'CodeDeployToECSazione sostituisce questo segnaposto con l'ARN effettivo della definizione dell'attività generata dinamicamente.

Artefatti di output

  • Numero di artefatti: 0

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

Autorizzazioni per i ruoli di servizio: azione CodeDeployToECS

Per l'CodeDeployToECSazione (azione di blue/green deployments), the following are the minimum permissions needed to create pipelines with a CodeDeploy to Amazon ECS blue/green distribuzione).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCodeDeployDeploymentActions", "Action": [ "codedeploy:CreateDeployment", "codedeploy:GetDeployment" ], "Resource": [ "arn:aws:codedeploy:*:{{customerAccountId}}:deploymentgroup:[[ApplicationName]]/*" ], "Effect": "Allow" }, { "Sid": "AllowCodeDeployApplicationActions", "Action": [ "codedeploy:GetApplication", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision" ], "Resource": [ "arn:aws:codedeploy:*:{{customerAccountId}}:application:[[ApplicationName]]", "arn:aws:codedeploy:*:{{customerAccountId}}:application:[[ApplicationName]]/*" ], "Effect": "Allow" }, { "Sid": "AllowCodeDeployDeploymentConfigAccess", "Action": [ "codedeploy:GetDeploymentConfig" ], "Resource": [ "arn:aws:codedeploy:*:{{customerAccountId}}:deploymentconfig:*" ], "Effect": "Allow" }, { "Sid": "AllowECSRegisterTaskDefinition", "Action": [ "ecs:RegisterTaskDefinition" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowPassRoleToECS", "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.

È inoltre 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.

Puoi anche aggiungerli ecs-tasks.amazonaws.com all'elenco dei servizi in base alla iam:PassedToService condizione, come mostrato nell'esempio precedente.

Dichiarazione dell'operazione

YAML
Name: Deploy Actions: - Name: Deploy ActionTypeId: Category: Deploy Owner: AWS Provider: CodeDeployToECS Version: '1' RunOrder: 1 Configuration: AppSpecTemplateArtifact: SourceArtifact ApplicationName: ecs-cd-application DeploymentGroupName: ecs-deployment-group Image1ArtifactName: MyImage Image1ContainerName: IMAGE1_NAME TaskDefinitionTemplatePath: taskdef.json AppSpecTemplatePath: appspec.yaml TaskDefinitionTemplateArtifact: SourceArtifact OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact - Name: MyImage Region: us-west-2 Namespace: DeployVariables
JSON
{ "Name": "Deploy", "Actions": [ { "Name": "Deploy", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CodeDeployToECS", "Version": "1" }, "RunOrder": 1, "Configuration": { "AppSpecTemplateArtifact": "SourceArtifact", "ApplicationName": "ecs-cd-application", "DeploymentGroupName": "ecs-deployment-group", "Image1ArtifactName": "MyImage", "Image1ContainerName": "IMAGE1_NAME", "TaskDefinitionTemplatePath": "taskdef.json", "AppSpecTemplatePath": "appspec.yaml", "TaskDefinitionTemplateArtifact": "SourceArtifact" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" }, { "Name": "MyImage" } ], "Region": "us-west-2", "Namespace": "DeployVariables" } ] }
Name: Deploy Actions: - Name: Deploy ActionTypeId: Category: Deploy Owner: AWS Provider: CodeDeployToECS Version: '1' RunOrder: 1 Configuration: AppSpecTemplateArtifact: SourceArtifact ApplicationName: ecs-cd-application DeploymentGroupName: ecs-deployment-group Image1ArtifactName: MyImage Image1ContainerName: IMAGE1_NAME TaskDefinitionTemplatePath: taskdef.json AppSpecTemplatePath: appspec.yaml TaskDefinitionTemplateArtifact: SourceArtifact OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact - Name: MyImage Region: us-west-2 Namespace: DeployVariables

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

  • Tutorial: crea una pipeline con una sorgente e una distribuzione Amazon ECR ECS-to-CodeDeploy— Questo tutorial illustra la creazione delle CodeDeploy risorse Amazon ECS necessarie per una distribuzione blu/verde. Il tutorial mostra come inviare un'immagine Docker ad Amazon ECR e creare una definizione di attività Amazon ECS che elenchi il nome dell'immagine Docker, il nome del contenitore, il nome del servizio Amazon ECS e la configurazione del load balancer. Il tutorial ti guida quindi attraverso la creazione del AppSpec file e della pipeline per la tua implementazione.

    Nota

    Questo argomento e questo tutorial descrivono l'azione CodeDeploy /ECS blue/green per. CodePipeline Per informazioni sulle azioni standard ECS in CodePipeline, consulta Tutorial: Continuous Deployment with. CodePipeline

  • AWS CodeDeploy Guida per l'utente: per informazioni su come utilizzare il load balancer, il listener di produzione, i gruppi target e l'applicazione Amazon ECS in una distribuzione blu/verde, consulta Tutorial: Deploy an Amazon ECS Service. Queste informazioni di riferimento nella Guida per l'AWS CodeDeploy utente forniscono una panoramica delle distribuzioni blu/green con Amazon ECS e. AWS CodeDeploy

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

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.