View a markdown version of this page

Contoh: Memodifikasi taskdef Amazon ECS - Amazon CodeCatalyst

Amazon CodeCatalyst tidak lagi terbuka untuk pelanggan baru. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Lihat informasi yang lebih lengkap di Cara bermigrasi dari CodeCatalyst.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Contoh: Memodifikasi taskdef Amazon ECS

Berikut ini adalah contoh alur kerja lengkap yang mencakup tindakan definisi tugas Render Amazon ECS, bersama dengan tindakan build dan deploy. Tujuan alur kerja adalah untuk membangun dan menerapkan image Docker ke cluster Amazon ECS Anda. Alur kerja terdiri dari blok bangunan berikut yang berjalan secara berurutan:

  • Pem icu — Pemicu ini memulai alur kerja berjalan secara otomatis saat Anda mendorong perubahan ke repositori sumber Anda. Untuk informasi lebih lanjut tentang menggunakan pemicu, lihat Memulai alur kerja berjalan secara otomatis menggunakan pemicu.

  • T ind akan build (BuildDocker) - Pada pemicu, tindakan membangun image Docker menggunakan Dockerfile, menandainya dengan ID komit, dan mendorong gambar ke Amazon ECR. Untuk informasi selengkapnya tentang tindakan build, lihatMembangun dengan alur kerja.

  • Tindakan definisi tugas Render Amazon ECS (RenderTaskDef) — Setelah menyelesaikan tindakan build, tindakan ini memperbarui yang ada yang taskdef.json terletak di root repositori sumber Anda dengan nilai image bidang yang menyertakan ID komit yang benar. Ini menyimpan file yang diperbarui dengan nama file baru (task-definition-random-string.json) dan kemudian membuat artefak keluaran yang berisi file ini. Tindakan render juga menghasilkan variabel yang task-definition dipanggil dan menetapkannya ke nama file definisi tugas baru. Artefak dan variabel akan digunakan tindakan penerapan, yang selanjutnya.

  • T indakan Deploy to Amazon ECS (DeployToECS) — Setelah menyelesaikan tindakan definisi tugas Render Amazon ECS, tindakan De ploy to Amazon ECS mencari artefak keluaran yang dihasilkan oleh tindakan render (TaskDefArtifact), menemukan task-definition-random-string.json file di dalamnya, dan mendaftarkannya ke layanan Amazon ECS Anda. Layanan Amazon ECS kemudian mengikuti instruksi dalam task-definition-random-string.json file untuk menjalankan tugas Amazon ECS—dan wadah gambar Docker terkait—di dalam cluster Amazon ECS Anda.

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}