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à.
Esempio: modificare un taskdef di Amazon ECS
Di seguito è riportato un esempio di flusso di lavoro completo che include l'azione di definizione delle attività di Render Amazon ECS, insieme alle azioni di compilazione e distribuzione. Lo scopo del flusso di lavoro è creare e distribuire un'immagine Docker nel tuo cluster Amazon ECS. Il flusso di lavoro è costituito dai seguenti elementi costitutivi eseguiti in sequenza:
-
Un trigger: questo trigger avvia l'esecuzione automatica del flusso di lavoro quando invii una modifica al tuo repository di origine. Per ulteriori informazioni sui trigger, consulta L'avvio di un flusso di lavoro viene eseguito automaticamente utilizzando i trigger.
-
Un'azione di compilazione (
BuildDocker
): all'attivazione, l'azione crea l'immagine Docker utilizzando il Dockerfile, la contrassegna con un ID di commit e invia l'immagine ad Amazon ECR. Per ulteriori informazioni sull'azione di compilazione, consulta. Creazione con flussi di lavoro -
Un'azione di definizione dell'attività di Render Amazon ECS (
RenderTaskDef
): al termine dell'azione di compilazione, questa azione aggiorna un'azione esistentetaskdef.json
situata nella radice del repository di origine con un valore diimage
campo che include l'ID di commit corretto. Salva il file aggiornato con un nuovo nome di file (task-definition-random-string.json
) e quindi crea un elemento di output che contiene questo file. L'azione di rendering genera anche una variabile chiamatatask-definition
e la imposta sul nome del nuovo file di definizione dell'attività. L'artefatto e la variabile verranno utilizzati nell'azione di distribuzione, che è la successiva. -
Un'azione Deploy to Amazon ECS (
DeployToECS
): al termine dell'azione di definizione dell'attività Render Amazon ECS, l'azione Deploy to Amazon ECS cerca l'artefatto di output generato dall'azione di renderingTaskDefArtifact
(), trova il filetask-definition-random-string.json
al suo interno e lo registra con il servizio Amazon ECS. Il servizio Amazon ECS segue quindi le istruzioni contenute neltask-definition-random-string.json
file per eseguire le attività Amazon ECS e i contenitori di immagini Docker associati all'interno del cluster Amazon ECS.
Name: codecatalyst-ecs-workflow SchemaVersion: 1.0 Triggers: - Type: PUSH Branches: - main Actions: BuildDocker: Identifier: aws/build@v1 Environment: Name: codecatalyst-ecs-environment Connections: - Name: codecatalyst-account-connection Role: codecatalyst-ecs-build-role Inputs: Variables: - Name: REPOSITORY_URI Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo - Name: IMAGE_TAG Value: ${WorkflowSource.CommitId} Configuration: Steps: #pre_build: - Run: echo Logging in to Amazon ECR... - Run: aws --version - Run: aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-2.amazonaws.com #build: - Run: echo Build started on `date` - Run: echo Building the Docker image... - Run: docker build -t $REPOSITORY_URI:latest . - Run: docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG #post_build: - Run: echo Build completed on `date` - Run: echo Pushing the Docker images... - Run: docker push $REPOSITORY_URI:latest - Run: docker push $REPOSITORY_URI:$IMAGE_TAG RenderTaskDef: DependsOn: - BuildDocker Identifier: aws/ecs-render-task-definition@v1 Inputs: Variables: - Name: REPOSITORY_URI Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo - Name: IMAGE_TAG Value: ${WorkflowSource.CommitId} Configuration: task-definition: taskdef.json container-definition-name: codecatalyst-ecs-container image: $REPOSITORY_URI:$IMAGE_TAG # The output artifact contains the updated task definition file. # The new file is prefixed with 'task-definition'. # The output variable is set to the name of the updated task definition file. Outputs: Artifacts: - Name: TaskDefArtifact Files: - "task-definition*" Variables: - task-definition DeployToECS: Identifier: aws/ecs-deploy@v1 Environment: Name: codecatalyst-ecs-environment Connections: - Name: codecatalyst-account-connection Role: codecatalyst-ecs-deploy-role #Input artifact contains the updated task definition file. Inputs: Sources: [] Artifacts: - TaskDefArtifact Configuration: region: us-east-2 cluster: codecatalyst-ecs-cluster service: codecatalyst-ecs-service task-definition: ${RenderTaskDef.task-definition}