

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](migration.md).

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
<a name="render-ecs-action-example-workflow"></a>

Berikut ini adalah contoh alur kerja lengkap yang menyertakan tindakan **definisi tugas Render Amazon ECS**, bersama dengan tindakan build dan deploy. Tujuan alur kerja adalah untuk membangun dan menerapkan image Docker ke dalam cluster Amazon ECS Anda. Alur kerja terdiri dari blok bangunan berikut yang berjalan secara berurutan:
+ **Pemicu - Pemicu** ini memulai alur kerja yang dijalankan 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](workflows-add-trigger.md). 
+ Tindakan **build** (`BuildDocker`) — Pada pemicu, aksi membangun image Docker menggunakan Dockerfile, memberi tag dengan ID komit, dan mendorong gambar ke Amazon ECR. Untuk informasi selengkapnya tentang tindakan build, lihat[Membangun dengan alur kerja](build-workflow-actions.md).
+ Tindakan **definisi tugas Amazon ECS Render** (`RenderTaskDef`) — Setelah menyelesaikan tindakan build, tindakan ini memperbarui yang ada di `taskdef.json` 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 disebut `task-definition` dan menyetelnya ke nama file definisi tugas baru. Artefak dan variabel akan digunakan tindakan penyebaran, yang berikutnya.
+ Tindakan **Deploy to Amazon ECS** (`DeployToECS`) — Setelah menyelesaikan tindakan **definisi tugas Render Amazon ECS**, aksi **Deploy to Amazon** ECS mencari artefak keluaran yang dihasilkan oleh tindakan render `TaskDefArtifact` (), menemukan `task-definition-random-string.json` file di dalamnya, dan mendaftarkannya dengan layanan Amazon ECS Anda. Layanan Amazon ECS kemudian mengikuti petunjuk dalam `task-definition-random-string.json` file untuk menjalankan tugas Amazon ECS—dan container image 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}
```