Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beispiel: Ändern Sie eine ECS Amazon-Taskdef
Im Folgenden finden Sie ein Beispiel für einen vollständigen Workflow, der die ECSAufgabendefinitionsaktion „Amazon rendern“ sowie die Aktionen Build und Deploy umfasst. Der Zweck des Workflows besteht darin, ein Docker-Image zu erstellen und in Ihrem ECS Amazon-Cluster bereitzustellen. Der Workflow besteht aus den folgenden Bausteinen, die nacheinander ausgeführt werden:
-
Ein Trigger — Dieser Trigger startet die Workflow-Ausführung automatisch, wenn Sie eine Änderung an Ihr Quell-Repository übertragen. Weitere Informationen zu Auslösern finden Sie unter Automatisches Starten einer Workflow-Ausführung mithilfe von Triggern.
-
Eine Build-Aktion (
BuildDocker
) — Beim Auslösen erstellt die Aktion das Docker-Image mithilfe der Dockerfile, kennzeichnet es mit einer Commit-ID und überträgt das Image an Amazon. ECR Weitere Informationen zur Build-Aktion finden Sie unter. Bauen mit Workflows -
Eine ECSRender-Amazon-Aufgabendefinitionsaktion (
RenderTaskDef
) — Nach Abschluss der Build-Aktion aktualisiert diese Aktion eine bestehende Aktion, dietaskdef.json
sich im Stammverzeichnis Ihres Quell-Repositorys befindet, mit einemimage
Feldwert, der die richtige Commit-ID enthält. Sie speichert die aktualisierte Datei unter einem neuen Dateinamen (task-definition-random-string.json
) und erstellt dann ein Ausgabeartefakt, das diese Datei enthält. Die Renderaktion generiert außerdem eine Variable namenstask-definition
und setzt sie auf den Namen der neuen Aufgabendefinitionsdatei. Das Artefakt und die Variable werden für die Aktion Deploy verwendet, die als Nächstes folgt. -
Eine ECS Aktion „In Amazon bereitstellen“ (
DeployToECS
) — Nach Abschluss der Aktion „Amazon ECS rendern“ sucht die ECS Aktion „In Amazon bereitstellen“ nach dem von der Render-Aktion generierten Ausgabeartefakt (TaskDefArtifact
), findet die darin enthaltenetask-definition-random-string.json
Datei und registriert sie bei Ihrem ECS Amazon-Service. Der ECS Amazon-Service folgt dann den Anweisungen in dertask-definition-random-string.json
Datei, um ECS Amazon-Aufgaben — und zugehörige Docker-Image-Container — in Ihrem Amazon-Cluster auszuführen. 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}