Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemple : modifier une définition de ECS tâches Amazon
Voici un exemple de flux de travail complet qui inclut l'action de définition de ECS tâche Render Amazon, ainsi que les actions de création et de déploiement. L'objectif du flux de travail est de créer et de déployer une image Docker dans votre ECS cluster Amazon. Le flux de travail comprend les éléments de base suivants qui s'exécutent de manière séquentielle :
-
Un déclencheur : ce déclencheur lance automatiquement l'exécution du flux de travail lorsque vous apportez une modification à votre référentiel source. Pour plus d'informations sur les déclencheurs, consultez Démarrage d'un flux de travail exécuté automatiquement à l'aide de déclencheurs.
-
Une action de génération (
BuildDocker
) — Au moment du déclenchement, l'action crée l'image Docker à l'aide du Dockerfile, l'étiquette avec un ID de validation et envoie l'image vers Amazon. ECR Pour plus d'informations sur l'action de génération, consultezConstruire avec des flux de travail. -
Une action de définition de ECS tâche Render Amazon (
RenderTaskDef
) — À la fin de l'action de génération, cette action met à jour untaskdef.json
élément existant situé à la racine de votre référentiel source avec une valeur deimage
champ qui inclut l'ID de validation correct. Il enregistre le fichier mis à jour sous un nouveau nom de fichier (task-definition-random-string.json
), puis crée un artefact de sortie contenant ce fichier. L'action de rendu génère également une variable appeléetask-definition
et lui attribue le nom du nouveau fichier de définition de tâche. L'artefact et la variable seront utilisés lors de l'action de déploiement, qui est la suivante. -
Une ECS action Deploy to Amazon (
DeployToECS
) — Une fois l'action de définition de ECS tâche Render Amazon terminée, l'ECSaction Deploy to Amazon recherche l'artefact de sortie généré par l'action de rendu (TaskDefArtifact
), trouve letask-definition-random-string.json
fichier qu'il contient et l'enregistre auprès de votre ECS service Amazon. Le ECS service Amazon suit ensuite les instructions dutask-definition-random-string.json
fichier pour exécuter les ECS tâches Amazon et les conteneurs d'images Docker associés au sein de votre 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}