

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.

# Menerapkan dengan alur kerja
<a name="deploy"></a>



Dengan menggunakan [CodeCatalyst alur kerja](workflow.md), Anda dapat menerapkan aplikasi dan sumber daya lainnya ke berbagai target seperti Amazon ECS AWS Lambda, dan lainnya. 

## Bagaimana cara menyebarkan aplikasi?
<a name="deploy-concepts"></a>

Untuk menerapkan aplikasi atau sumber daya CodeCatalyst, pertama-tama Anda membuat alur kerja, lalu tentukan tindakan penerapan di dalamnya. *Tindakan penerapan* adalah blok pembangun alur kerja yang mendefinisikan *apa* yang ingin Anda terapkan, *tempat* Anda ingin menerapkannya, dan *bagaimana* Anda ingin menerapkannya (misalnya, menggunakan skema). blue/green Anda menambahkan tindakan penerapan ke alur kerja menggunakan editor visual CodeCatalyst konsol, atau editor YAMAL.

Langkah-langkah tingkat tinggi untuk menyebarkan aplikasi atau sumber daya adalah sebagai berikut.

**Untuk menyebarkan aplikasi (tugas tingkat tinggi)**

1. Dalam CodeCatalyst proyek Anda, Anda **menambahkan kode sumber** untuk aplikasi yang ingin Anda terapkan. Untuk informasi selengkapnya, lihat [Menyimpan kode sumber di repositori untuk proyek di CodeCatalyst](source-repositories.md).

1. Dalam CodeCatalyst project Anda, Anda **menambahkan lingkungan yang** menentukan target Akun AWS dan opsional Amazon Virtual Private Cloud (VPC) yang ingin Anda terapkan. Untuk informasi selengkapnya, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md).

1. Dalam CodeCatalyst proyek Anda, Anda **membuat alur kerja**. Alur kerja adalah tempat Anda menentukan cara membangun, menguji, dan menerapkan aplikasi Anda. Untuk informasi selengkapnya, lihat [Memulai dengan alur kerja](workflows-getting-started.md).

1. Dalam alur kerja, Anda **menambahkan pemicu**, **tindakan build**, dan secara opsional, tindakan **pengujian**. Lihat informasi selengkapnya di [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md), [Menambahkan aksi build](build-add-action.md), dan [Menambahkan tindakan pengujian](test-add-action.md).

1. Dalam alur kerja, Anda **menambahkan tindakan penerapan**. Anda dapat memilih dari beberapa tindakan penerapan CodeCatalyst yang disediakan ke aplikasi Anda ke target yang berbeda, seperti Amazon ECS. (Anda juga dapat menggunakan tindakan build atau GitHub Action untuk menerapkan aplikasi Anda. Untuk informasi selengkapnya tentang tindakan dan GitHub Tindakan build, lihat[Alternatif untuk menyebarkan tindakan](#deploy-concepts-alternatives).)

1. Anda **memulai alur kerja** baik secara manual atau otomatis melalui pemicu. Alur kerja menjalankan tindakan build, test, dan deploy secara berurutan untuk menerapkan aplikasi dan resource Anda ke target. Untuk informasi selengkapnya, lihat [Memulai proses alur kerja secara manual](workflows-manually-start.md).

## Daftar tindakan penerapan
<a name="deploy-concepts-action-supported"></a>

Tindakan penerapan berikut tersedia:
+ Menyebarkan CloudFormation tumpukan — Tindakan ini membuat CloudFormation tumpukan AWS berdasarkan [CloudFormation template atau [AWS Serverless Application Model template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html) yang Anda berikan. Untuk informasi selengkapnya, lihat [Menyebarkan tumpukan CloudFormation](deploy-action-cfn.md).
+ Terapkan ke Amazon ECS — Tindakan ini mendaftarkan file [definisi tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) yang Anda berikan. Untuk informasi selengkapnya, lihat [Menyebarkan ke Amazon ECS dengan alur kerja](deploy-action-ecs.md).
+ Terapkan ke klaster Kubernetes — Tindakan ini menyebarkan aplikasi ke kluster Amazon Elastic Kubernetes Service. Untuk informasi selengkapnya, lihat [Menerapkan ke Amazon EKS dengan alur kerja](deploy-action-eks.md).
+ AWS CDK deploy — Tindakan ini menyebarkan [AWS CDK aplikasi](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_concepts) ke dalam. AWS Untuk informasi selengkapnya, lihat [Menerapkan AWS CDK aplikasi dengan alur kerja](cdk-dep-action.md).

**catatan**  
**Ada CodeCatalyst tindakan lain yang dapat menyebarkan sumber daya; namun, tindakan tersebut tidak dianggap sebagai tindakan *penerapan* karena informasi penerapannya tidak muncul di halaman Lingkungan.** Untuk mempelajari lebih lanjut tentang halaman **Lingkungan** dan melihat penerapan, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md) dan. [Melihat informasi penyebaran](deploy-view-deployment-info.md)

## Manfaat tindakan penyebaran
<a name="deploy-concepts-why-use"></a>

Menggunakan tindakan penerapan dalam alur kerja memiliki manfaat sebagai berikut:
+ **Riwayat penyebaran** — Lihat riwayat penerapan Anda untuk membantu mengelola dan mengkomunikasikan perubahan dalam perangkat lunak yang Anda gunakan. 
+ **Keterlacakan** — Lacak status penerapan Anda melalui CodeCatalyst konsol, dan lihat kapan dan di mana setiap revisi aplikasi diterapkan.
+ **Rollback** — Gulung kembali penerapan secara otomatis jika ada kesalahan. Anda juga dapat mengonfigurasi alarm untuk mengaktifkan rollback penerapan.
+ **Monitoring** - Perhatikan penyebaran Anda saat berlangsung melalui berbagai tahapan alur kerja Anda.
+ **Integrasi dengan CodeCatalyst fitur lain** — Simpan kode sumber dan kemudian buat, uji, dan terapkan, semuanya dari satu aplikasi.

## Alternatif untuk menyebarkan tindakan
<a name="deploy-concepts-alternatives"></a>

Anda tidak harus menggunakan tindakan penerapan, meskipun mereka direkomendasikan karena mereka menawarkan manfaat yang diuraikan di bagian sebelumnya. Sebagai gantinya, Anda dapat menggunakan [CodeCatalyst tindakan](workflows-actions.md#workflows-actions-types-cc) berikut:
+ Sebuah tindakan **membangun**.

  Biasanya, Anda menggunakan tindakan build jika ingin menerapkan ke target yang tidak memiliki tindakan penerapan terkait, atau jika Anda ingin lebih mengontrol prosedur penerapan. Untuk informasi selengkapnya tentang penggunaan tindakan build untuk menyebarkan sumber daya, lihat[Membangun dengan alur kerja](build-workflow-actions.md).
+ Sebuah **GitHub tindakan**.

  Anda dapat menggunakan [GitHub Action](workflows-actions.md#workflows-actions-types-github) di dalam CodeCatalyst alur kerja untuk menyebarkan aplikasi dan sumber daya (bukan CodeCatalyst tindakan). Untuk informasi tentang cara menggunakan GitHub Tindakan di dalam CodeCatalyst alur kerja, lihat [Integrasi dengan Tindakan GitHub](integrations-github-actions.md)

Anda juga dapat menggunakan AWS layanan berikut untuk menyebarkan aplikasi Anda, jika Anda tidak ingin menggunakan CodeCatalyst alur kerja untuk melakukannya:
+ AWS CodeDeploy — lihat [Apa itu CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ AWS CodeBuild dan AWS CodePipeline — lihat [Apa itu AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) dan [Apa itu AWS CodePipeline?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ CloudFormation — lihat [Apa itu CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

Gunakan CodeDeploy, CodeBuild, CodePipeline, dan CloudFormation layanan untuk penyebaran perusahaan yang kompleks.

**Topics**
+ [Bagaimana cara menyebarkan aplikasi?](#deploy-concepts)
+ [Daftar tindakan penerapan](#deploy-concepts-action-supported)
+ [Manfaat tindakan penyebaran](#deploy-concepts-why-use)
+ [Alternatif untuk menyebarkan tindakan](#deploy-concepts-alternatives)
+ [Menyebarkan ke Amazon ECS dengan alur kerja](deploy-action-ecs.md)
+ [Menerapkan ke Amazon EKS dengan alur kerja](deploy-action-eks.md)
+ [Menyebarkan tumpukan CloudFormation](deploy-action-cfn.md)
+ [Menerapkan AWS CDK aplikasi dengan alur kerja](cdk-dep-action.md)
+ [Bootstrapping AWS CDK aplikasi dengan alur kerja](cdk-boot-action.md)
+ [Menerbitkan file ke Amazon S3 dengan alur kerja](s3-pub-action.md)
+ [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md)
+ [Menampilkan URL aplikasi dalam diagram alur kerja](deploy-app-url.md)
+ [Menghapus target penerapan](deploy-remove-target.md)
+ [Melacak status penerapan dengan komit](track-changes.md)
+ [Melihat log penerapan](deploy-deployment-logs.md)
+ [Melihat informasi penyebaran](deploy-view-deployment-info.md)

# Menyebarkan ke Amazon ECS dengan alur kerja
<a name="deploy-action-ecs"></a>

Bagian ini menjelaskan cara menerapkan aplikasi kontainer ke dalam klaster Amazon Elastic Container Service menggunakan alur kerja. CodeCatalyst Untuk mencapai hal ini, Anda harus menambahkan tindakan **Deploy ke Amazon ECS** ke alur kerja Anda. Tindakan ini mendaftarkan file [definisi tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) yang Anda berikan. Setelah pendaftaran, definisi tugas akan dipakai oleh [layanan Amazon ECS Anda yang berjalan di cluster [Amazon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-clusters) ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) Anda. “Membuat instantiasi definisi tugas” setara dengan menerapkan aplikasi ke Amazon ECS.

Untuk menggunakan tindakan ini, Anda harus memiliki kluster Amazon ECS, layanan, dan file definisi tugas yang siap.

Untuk informasi selengkapnya tentang Amazon ECS, lihat *Panduan Pengembang Layanan Kontainer Elastis Amazon*.

**Tip**  
Untuk tutorial yang menunjukkan cara menggunakan tindakan **Deploy to Amazon ECS**, lihat. [Tutorial: Menyebarkan aplikasi ke Amazon ECS](deploy-tut-ecs.md)

**Tip**  
Untuk contoh kerja tindakan **Deploy to Amazon ECS**, buat project dengan **API Node.js dengan AWS Fargate atau **Java API dengan AWS Fargate**** cetak biru. Untuk informasi selengkapnya, lihat [Membuat proyek dengan cetak biru](projects-create.md#projects-create-console-template).

**Topics**
+ [Gambar runtime yang digunakan oleh aksi 'Deploy to Amazon ECS'](#deploy-action-ecs-runtime)
+ [Tutorial: Menyebarkan aplikasi ke Amazon ECS](deploy-tut-ecs.md)
+ [Menambahkan tindakan 'Terapkan ke Amazon ECS'](deploy-action-ecs-adding.md)
+ [Variabel 'Terapkan ke Amazon ECS'](deploy-action-ecs-variables.md)
+ [Tindakan 'Terapkan ke Amazon ECS' YAML'](deploy-action-ref-ecs.md)

## Gambar runtime yang digunakan oleh aksi 'Deploy to Amazon ECS'
<a name="deploy-action-ecs-runtime"></a>

Tindakan **Deploy to Amazon ECS** berjalan pada gambar [November 2022](build-images.md#build.previous-image). Lihat informasi yang lebih lengkap di [Gambar aktif](build-images.md#build-curated-images).

# Tutorial: Menyebarkan aplikasi ke Amazon ECS
<a name="deploy-tut-ecs"></a>

Dalam tutorial ini, Anda mempelajari cara menerapkan aplikasi tanpa server ke Amazon Elastic Container Service (Amazon ECS) menggunakan alur kerja, Amazon ECS, dan beberapa layanan lainnya. AWS Aplikasi yang digunakan adalah situs web Hello World sederhana yang dibangun di atas image Docker server web Apache. Tutorial memandu Anda melalui pekerjaan persiapan yang diperlukan seperti menyiapkan cluster, dan kemudian menjelaskan cara membuat alur kerja untuk membangun dan menyebarkan aplikasi.

**Tip**  
Alih-alih mengerjakan tutorial ini, Anda dapat menggunakan cetak biru yang melakukan pengaturan Amazon ECS lengkap untuk Anda. Anda harus menggunakan **API Node.js dengan AWS Fargate** atau **Java API dengan AWS Fargate** cetak biru. Untuk informasi selengkapnya, lihat [Membuat proyek dengan cetak biru](projects-create.md#projects-create-console-template).

**Topics**
+ [Prasyarat](#deploy-tut-ecs-prereqs)
+ [Langkah 1: Siapkan AWS pengguna dan AWS CloudShell](#deploy-tut-ecs-user-cloudshell)
+ [Langkah 2: Menyebarkan aplikasi placeholder ke Amazon ECS](#deploy-tut-ecs-placeholder)
+ [Langkah 3: Buat repositori gambar Amazon ECR](#deploy-tut-ecs-ecr)
+ [Langkah 4: Buat AWS peran](#deploy-tut-ecs-build-deploy-roles)
+ [Langkah 5: Tambahkan AWS peran ke CodeCatalyst](#deploy-tut-ecs-import-roles)
+ [Langkah 6: Buat repositori sumber](#deploy-tut-ecs-source-repo)
+ [Langkah 7: Tambahkan file sumber](#deploy-tut-ecs-source-files)
+ [Langkah 8: Buat dan jalankan alur kerja](#deploy-tut-ecs-workflow)
+ [Langkah 9: Buat perubahan pada file sumber Anda](#deploy-tut-ecs-change)
+ [Bersihkan](#deploy-tut-ecs-cleanup)

## Prasyarat
<a name="deploy-tut-ecs-prereqs"></a>

Sebelum Anda memulai:
+ Anda membutuhkan CodeCatalyst **ruang** dengan AWS akun yang terhubung. Untuk informasi selengkapnya, lihat [Membuat ruang](spaces-create.md).
+ Di ruang Anda, Anda memerlukan proyek kosong yang disebut:

  ```
  codecatalyst-ecs-project
  ```

  Gunakan opsi **Mulai dari awal** untuk membuat proyek ini.

  Untuk informasi selengkapnya, lihat [Membuat proyek kosong di Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ Dalam proyek Anda, Anda memerlukan CodeCatalyst **lingkungan** yang disebut:

  ```
  codecatalyst-ecs-environment
  ```

  Konfigurasikan lingkungan ini sebagai berikut:
  + Pilih jenis apa saja, seperti **Non-produksi**.
  + Hubungkan AWS akun Anda ke sana.
  + Untuk peran **IAM Default, pilih peran** apa pun. Anda akan menentukan peran yang berbeda nanti.

  Untuk informasi selengkapnya, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md).

## Langkah 1: Siapkan AWS pengguna dan AWS CloudShell
<a name="deploy-tut-ecs-user-cloudshell"></a>

Langkah pertama dalam tutorial ini adalah membuat pengguna AWS IAM Identity Center, dan meluncurkan AWS CloudShell instance sebagai pengguna ini. Selama tutorial ini, CloudShell adalah komputer pengembangan Anda dan di mana Anda mengkonfigurasi AWS sumber daya dan layanan. Hapus pengguna ini setelah menyelesaikan tutorial.

**catatan**  
Jangan gunakan pengguna root Anda untuk tutorial ini. Anda harus membuat pengguna terpisah atau Anda mungkin mengalami masalah saat melakukan tindakan di AWS Command Line Interface (CLI) nanti.

Untuk informasi selengkapnya tentang pengguna Pusat Identitas IAM dan CloudShell, lihat *Panduan AWS IAM Identity Center Pengguna dan Panduan AWS CloudShell * *Pengguna*. 

**Untuk membuat pengguna IAM Identity Center**

1. Masuk ke Konsol Manajemen AWS dan buka AWS IAM Identity Center konsol di [https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/).
**catatan**  
Pastikan Anda masuk menggunakan Akun AWS yang terhubung ke CodeCatalyst ruang Anda. Anda dapat memverifikasi akun mana yang terhubung dengan menavigasi ke ruang Anda dan memilih tab **akun AWS**. Untuk informasi selengkapnya, lihat [Membuat ruang](spaces-create.md).

1. Pada panel navigasi, silakan pilih **Pengguna**, lalu pilih **Tambahkan pengguna**.

1. Di **Nama Pengguna**, masukkan:

   ```
   CodeCatalystECSUser
   ```

1. Di bawah **Kata Sandi**, pilih **Buat kata sandi satu kali yang dapat Anda bagikan dengan pengguna ini**.

1. Di **Alamat Email** dan **Konfirmasi alamat email**, masukkan alamat email yang belum ada di Pusat Identitas IAM.

1. Di **Nama depan** dan **nama belakang**, masukkan:

   ```
   CodeCatalystECSUser
   ```

1. Di **Nama tampilan**, simpan nama yang dihasilkan secara otomatis:

   ```
   CodeCatalystECSUser CodeCatalystECSUser
   ```

1. Pilih **Berikutnya**.

1. Pada halaman **Tambahkan pengguna ke grup**, pilih **Berikutnya**.

1. Pada halaman **Tinjau dan tambahkan pengguna**, tinjau informasi dan pilih **Tambah pengguna**.

   Kotak dialog **kata sandi satu kali** muncul.

1. Pilih **Salin** lalu tempel informasi masuk, termasuk URL portal AWS akses dan kata sandi satu kali.

1. Pilih **Tutup**.

**Untuk membuat set izin**

Anda akan menetapkan izin ini disetel `CodeCatalystECSUser` nanti.

1. Di panel navigasi, pilih **Set izin**, lalu pilih **Buat set izin**.

1. Pilih **Set izin yang telah ditentukan sebelumnya** dan kemudian pilih **AdministratorAccess**. Kebijakan ini memberikan izin penuh untuk semua Layanan AWS. 

1. Pilih **Berikutnya**.

1. Dalam **nama set Izin**, masukkan:

   ```
   CodeCatalystECSPermissionSet
   ```

1. Pilih **Berikutnya**.

1. Pada halaman **Tinjau dan buat**, tinjau informasi dan pilih **Buat**.

**Untuk menetapkan izin yang disetel ke CodeCatalyst ECSUser**

1. Di panel navigasi, pilih **Akun AWS**, lalu pilih kotak centang di Akun AWS samping tempat Anda masuk saat ini.

1. Pilih **Tetapkan pengguna atau grup**.

1. Pilih tab **Pengguna**.

1. Pilih kotak centang di sebelah`CodeCatalystECSUser`.

1. Pilih **Berikutnya**.

1. Pilih kotak centang di sebelah`CodeCatalystECSPermissionSet`.

1. Pilih **Berikutnya**.

1. Tinjau informasi dan pilih **Kirim**.

   Anda sekarang telah menetapkan `CodeCatalystECSUser` dan `CodeCatalystECSPermissionSet` untuk Anda Akun AWS, mengikat mereka bersama-sama.

**Untuk keluar dan masuk kembali sebagai CodeCatalyst ECSUser**

1. Sebelum Anda keluar, pastikan Anda memiliki URL portal AWS akses dan nama pengguna dan kata sandi satu kali untuk`CodeCatalystECSUser`. Anda seharusnya menyalin informasi ini ke editor teks sebelumnya.
**catatan**  
Jika Anda tidak memiliki informasi ini, buka halaman `CodeCatalystECSUser` detail di Pusat Identitas IAM, pilih **Atur ulang kata sandi**, **Hasilkan kata sandi satu kali [**...] , dan **Reset kata sandi** lagi untuk menampilkan informasi di layar.

1. Keluar dari AWS.

1. Rekatkan URL portal AWS akses ke bilah alamat browser Anda.

1. Masuk dengan nama pengguna dan kata sandi satu kali untuk`CodeCatalystECSUser`.

1. Di **Kata sandi baru**, masukkan kata sandi, dan pilih **Atur kata sandi baru**.

   Sebuah **Akun AWS**kotak muncul di layar.

1. Pilih **Akun AWS**, lalu pilih nama yang Akun AWS Anda tetapkan `CodeCatalystECSUser` pengguna dan set izin.

1. Di sebelah`CodeCatalystECSPermissionSet`, pilih **Konsol manajemen**.

    Konsol Manajemen AWS Muncul. Anda sekarang masuk `CodeCatalystECSUser` dengan izin yang sesuai.

**Untuk meluncurkan sebuah AWS CloudShell instance**

1. Seperti`CodeCatalystECSUser`, di bilah navigasi atas, pilih AWS ikon (![\[AWS icon\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/deploy/aws-logo.png)).

   Halaman utama Konsol Manajemen AWS muncul.

1. Di bilah navigasi atas, pilih AWS CloudShell ikon (![\[CloudShell icon\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/deploy/CloudShell.png)).

   CloudShell terbuka. Tunggu sementara CloudShell lingkungan dibuat.
**catatan**  
Jika Anda tidak melihat CloudShell ikon, pastikan Anda berada di [Wilayah yang didukung oleh CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/faq-list.html#regions-available). Tutorial ini mengasumsikan Anda berada di Wilayah AS Barat (Oregon).

**Untuk memverifikasi bahwa AWS CLI sudah diinstal**

1. Di CloudShell terminal, masukkan:

   ```
   aws --version
   ```

1. Periksa apakah ada versi yang muncul.

   Sudah AWS CLI dikonfigurasi untuk pengguna saat ini`CodeCatalystECSUser`, jadi tidak perlu mengkonfigurasi AWS CLI kunci dan kredensyal, seperti biasanya.

## Langkah 2: Menyebarkan aplikasi placeholder ke Amazon ECS
<a name="deploy-tut-ecs-placeholder"></a>

Di bagian ini, Anda secara manual menyebarkan aplikasi placeholder ke Amazon ECS. Aplikasi placeholder ini akan digantikan oleh aplikasi Hello World yang digunakan oleh alur kerja Anda. Aplikasi placeholder adalah Apache Web Server.

Untuk informasi selengkapnya tentang Amazon ECS, lihat *Panduan Pengembang Layanan Kontainer Elastis Amazon*.

Lengkapi serangkaian prosedur berikut untuk menyebarkan aplikasi placeholder.<a name="deploy-tut-ecs-create-task-execution-role"></a>

**Untuk membuat peran eksekusi tugas**

Peran ini memberikan Amazon ECS dan AWS Fargate izin untuk melakukan panggilan API atas nama Anda. 

1. Buat kebijakan kepercayaan:

   1. Di AWS CloudShell, masukkan perintah berikut:

      ```
      cat > codecatalyst-ecs-trust-policy.json
      ```

      Prompt berkedip muncul di CloudShell terminal.

   1. Masukkan kode berikut pada prompt:

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
              "Service": "ecs-tasks.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

------

   1. Tempatkan kursor Anda setelah braket keriting terakhir (). `}`

   1. Tekan **Enter** dan kemudian **Ctrl\$1d** untuk menyimpan file dan keluar dari kucing.

1. Buat peran eksekusi tugas:

   ```
   aws iam create-role \
         --role-name codecatalyst-ecs-task-execution-role \
         --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
   ```

1. Lampirkan `AmazonECSTaskExecutionRolePolicy` kebijakan AWS terkelola ke peran:

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-ecs-task-execution-role \
         --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
   ```

1. Menampilkan detail peran:

   ```
   aws iam get-role \
         --role-name codecatalyst-ecs-task-execution-role
   ```

1. Perhatikan `"Arn":` nilai peran, misalnya,`arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role`. Anda akan memerlukan Nama Sumber Daya Amazon (ARN) ini nanti.

**Untuk membuat cluster Amazon ECS**

Cluster ini akan berisi aplikasi placeholder Apache, dan kemudian, aplikasi Hello World. 

1. Seperti`CodeCatalystECSUser`, di AWS CloudShell, buat cluster kosong:

   ```
   aws ecs create-cluster --cluster-name codecatalyst-ecs-cluster
   ```

1. (Opsional) Verifikasi bahwa cluster berhasil dibuat:

   ```
   aws ecs list-clusters
   ```

   ARN `codecatalyst-ecs-cluster` cluster akan muncul dalam daftar, menunjukkan penciptaan yang berhasil.

**Untuk membuat file definisi tugas**

File definisi tugas menunjukkan untuk menjalankan [Apache 2.4 Web server](https://hub.docker.com/_/httpd) Docker image (`httpd:2.4`) yang ditarik dari. DockerHub

1. Seperti`CodeCatalystECSUser`, di AWS CloudShell, buat file definisi tugas:

   ```
   cat > taskdef.json
   ```

1. Tempel kode berikut pada prompt:

   ```
   {
       "executionRoleArn": "arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role",
       "containerDefinitions": [
           {
               "name": "codecatalyst-ecs-container",
               "image": "httpd:2.4",
               "essential": true,
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ]
           }
       ],
       "requiresCompatibilities": [
           "FARGATE"
       ],
       "cpu": "256",
       "family": "codecatalyst-ecs-task-def",
       "memory": "512",
       "networkMode": "awsvpc"
   }
   ```

   Pada kode sebelumnya, ganti *arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role*

   dengan ARN dari peran eksekusi tugas yang Anda catat. [Untuk membuat peran eksekusi tugas](#deploy-tut-ecs-create-task-execution-role)

1. Tempatkan kursor Anda setelah braket keriting terakhir (). `}`

1. Tekan **Enter** dan kemudian **Ctrl\$1d** untuk menyimpan file dan keluar dari kucing.

**Untuk mendaftarkan file definisi tugas dengan Amazon ECS**

1. Seperti`CodeCatalystECSUser`, dalam AWS CloudShell, daftarkan definisi tugas:

   ```
   aws ecs register-task-definition \
       --cli-input-json file://taskdef.json
   ```

1. (Opsional) Verifikasi bahwa definisi tugas telah terdaftar:

   ```
   aws ecs list-task-definitions
   ```

   Definisi `codecatalyst-ecs-task-def` tugas akan muncul dalam daftar.

**Untuk membuat layanan Amazon ECS**

Layanan Amazon ECS menjalankan tugas (dan wadah Docker terkait) dari aplikasi placeholder Apache, dan kemudian, aplikasi Hello World.

1. Sebagai`CodeCatalystECSUser`, beralihlah ke konsol Amazon Elastic Container Service jika Anda belum melakukannya.

1. Pilih cluster yang Anda buat sebelumnya,`codecatalyst-ecs-cluster`.

1. Di tab **Layanan**, pilih **Buat**.

1. Di halaman **Create**, lakukan hal berikut:

   1. Simpan semua pengaturan default kecuali yang tercantum berikutnya.

   1. Untuk **jenis Peluncuran**, pilih **FARGATE**.

   1. Di bawah **Definisi tugas**, dalam daftar drop-down **Keluarga**, pilih:

      `codecatalyst-ecs-task-def`

   1. Untuk **nama Layanan**, masukkan:

      ```
      codecatalyst-ecs-service
      ```

   1. Untuk **tugas yang diinginkan**, masukkan:

      ```
      3
      ```

      Dalam tutorial ini, setiap tugas meluncurkan satu wadah Docker.

   1. Perluas bagian **Jaringan**.

   1. Untuk **VPC, pilih VPC** apa saja.

   1. Untuk **Subnet**, pilih subnet apa saja.
**catatan**  
Hanya tentukan satu subnet. Itu saja yang diperlukan untuk tutorial ini.
**catatan**  
Jika Anda tidak memiliki VPC dan subnet, buatlah. Lihat [Membuat VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC), dan [Membuat subnet di VPC Anda di Panduan Pengguna *Amazon* VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet).

   1. Untuk **grup Keamanan**, pilih **Buat grup keamanan baru**, lalu lakukan hal berikut:

      1. Untuk **nama grup Keamanan**, masukkan:

         ```
         codecatalyst-ecs-security-group
         ```

      1. Untuk **deskripsi grup Keamanan**, masukkan:

         ```
         CodeCatalyst ECS security group
         ```

      1. Pilih **Tambahkan aturan**. Untuk **Type**, pilih **HTTP**, dan untuk **Source**, pilih **Anywhere**.

   1. Di bagian bawah, pilih **Buat**.

   1. Tunggu sementara layanan dibuat. Ini mungkin memakan waktu beberapa menit.

1. Pilih tab **Tugas**, lalu pilih tombol segarkan. Verifikasi bahwa ketiga tugas memiliki kolom **Status Terakhir** yang disetel ke **Running**.

**(Opsional) Untuk memverifikasi bahwa aplikasi placeholder Apache Anda berjalan**

1. Di tab **Tugas**, pilih salah satu dari tiga tugas.

1. Di bidang **IP Publik**, pilih **alamat terbuka**.

   Sebuah `It Works!` halaman muncul. Ini menunjukkan bahwa layanan Amazon ECS berhasil memulai tugas yang meluncurkan wadah Docker dengan gambar Apache.

   Pada titik ini dalam tutorial, Anda telah secara manual menerapkan klaster Amazon ECS, layanan, dan definisi tugas, serta aplikasi placeholder Apache. Dengan semua item ini di tempat, Anda sekarang siap untuk membuat alur kerja yang akan menggantikan aplikasi placeholder Apache dengan aplikasi Hello World tutorial.

## Langkah 3: Buat repositori gambar Amazon ECR
<a name="deploy-tut-ecs-ecr"></a>

Di bagian ini, Anda membuat repositori gambar pribadi di Amazon Elastic Container Registry (Amazon ECR) Registry ECR). Repositori ini menyimpan gambar Docker tutorial yang akan menggantikan gambar placeholder Apache yang Anda gunakan sebelumnya. 

Untuk informasi selengkapnya tentang Amazon ECR, lihat *Panduan Pengguna Amazon Elastic Container Registry*.

**Untuk membuat repositori gambar di Amazon ECR**

1. Seperti`CodeCatalystECSUser`, di AWS CloudShell, buat repositori kosong di Amazon ECR:

   ```
   aws ecr create-repository --repository-name codecatalyst-ecs-image-repo
   ```

1. Tampilkan detail repositori Amazon ECR:

   ```
   aws ecr describe-repositories \
         --repository-names codecatalyst-ecs-image-repo
   ```

1. Perhatikan `“repositoryUri”:` nilainya, misalnya,`111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo`.

   Anda membutuhkannya nanti saat menambahkan repositori ke alur kerja Anda. 

## Langkah 4: Buat AWS peran
<a name="deploy-tut-ecs-build-deploy-roles"></a>

Di bagian ini, Anda membuat peran AWS IAM yang dibutuhkan CodeCatalyst alur kerja Anda agar berfungsi. Peran ini adalah:
+ **Peran build** - Memberikan izin tindakan CodeCatalyst build (dalam alur kerja) untuk mengakses AWS akun Anda dan menulis ke Amazon ECR dan Amazon EC2.
+ **Menyebarkan peran** - Memberikan izin tindakan CodeCatalyst **Deploy to ECS** (dalam alur kerja) untuk mengakses akun Anda AWS , Amazon ECS, dan beberapa layanan lainnya. AWS 

Untuk informasi selengkapnya tentang peran IAM, lihat [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) di *AWS Identity and Access Management Panduan Pengguna*.

**catatan**  
Untuk menghemat waktu, Anda dapat membuat satu peran, yang disebut `CodeCatalystWorkflowDevelopmentRole-spaceName` peran, alih-alih dua peran yang tercantum sebelumnya. Untuk informasi selengkapnya, lihat [Membuat **CodeCatalystWorkflowDevelopmentRole-*spaceName***peran untuk akun dan ruang Anda](ipa-iam-roles.md#ipa-iam-roles-service-create). Pahami bahwa `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut memiliki izin yang sangat luas yang dapat menimbulkan risiko keamanan. Kami menyarankan Anda hanya menggunakan peran ini dalam tutorial dan skenario di mana keamanan kurang menjadi perhatian. Tutorial ini mengasumsikan Anda membuat dua peran yang tercantum sebelumnya.

Untuk membuat peran build dan deploy, Anda dapat menggunakan peran Konsol Manajemen AWS atau. AWS CLI

------
#### [ Konsol Manajemen AWS ]

Untuk membuat peran build dan deploy, selesaikan rangkaian prosedur berikut.

**Untuk membuat peran build**

1. Buat kebijakan untuk peran tersebut, sebagai berikut:

   1. Masuk ke AWS.

   1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Di panel navigasi, pilih **Kebijakan**.

   1. Pilih **Buat kebijakan**.

   1. Pilih tab **JSON**.

   1. Hapus kode yang ada.

   1. Tempel kode berikut:

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecr:*",
                      "ec2:*"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------
**catatan**  
Pertama kali peran digunakan untuk menjalankan tindakan alur kerja, gunakan wildcard dalam pernyataan kebijakan sumber daya dan kemudian cakup kebijakan dengan nama sumber daya setelah tersedia.  

      ```
      "Resource": "*"
      ```

   1. Pilih **Berikutnya: Tanda**.

   1. Pilih **Berikutnya: Tinjau**.

   1. Dalam **Nama**, masukkan:

      ```
      codecatalyst-ecs-build-policy
      ```

   1. Pilih **Buat kebijakan**.

      Anda sekarang telah membuat kebijakan izin.

1. Buat peran build, sebagai berikut:

   1. Di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

   1. Pilih **Kebijakan kepercayaan khusus**.

   1. Hapus kebijakan kepercayaan kustom yang ada.

   1. Tambahkan kebijakan kepercayaan khusus berikut:

   1. Pilih **Berikutnya**.

   1. Di **Kebijakan izin**, cari`codecatalyst-ecs-build-policy`, pilih kotak centang.

   1. Pilih **Berikutnya**.

   1. Untuk **nama Peran**, masukkan:

      ```
      codecatalyst-ecs-build-role
      ```

   1. Untuk **deskripsi Peran**, masukkan:

      ```
      CodeCatalyst ECS build role
      ```

   1. Pilih **Buat peran**.

   Anda sekarang telah membuat peran build dengan kebijakan izin dan kebijakan kepercayaan.

1. Dapatkan peran membangun ARN, sebagai berikut:

   1. Di panel navigasi, pilih **Peran**.

   1. Di kotak pencarian, masukkan nama peran yang baru saja Anda buat (`codecatalyst-ecs-build-role`).

   1. Pilih peran dari daftar.

      Halaman **Ringkasan** peran muncul.

   1. Di bagian atas, salin nilai **ARN**. Anda membutuhkannya nanti.

**Untuk membuat peran penerapan**

1. Buat kebijakan untuk peran tersebut, sebagai berikut:

   1. Masuk ke AWS.

   1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Di panel navigasi, pilih **Kebijakan**.

   1. Pilih **Buat Kebijakan**.

   1. Pilih tab **JSON**.

   1. Hapus kode yang ada.

   1. Tempel kode berikut:

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [{
          "Action":[
            "ecs:DescribeServices",
            "ecs:CreateTaskSet",
            "ecs:DeleteTaskSet",
            "ecs:ListClusters",
            "ecs:RegisterTaskDefinition",
            "ecs:UpdateServicePrimaryTaskSet",
            "ecs:UpdateService",
            "elasticloadbalancing:DescribeTargetGroups",
            "elasticloadbalancing:DescribeListeners",
            "elasticloadbalancing:ModifyListener",
            "elasticloadbalancing:DescribeRules",
            "elasticloadbalancing:ModifyRule",
            "lambda:InvokeFunction",
            "lambda:ListFunctions",
            "cloudwatch:DescribeAlarms",
            "sns:Publish",
            "sns:ListTopics", 
            "s3:GetObject",
            "s3:GetObjectVersion",
            "codedeploy:CreateApplication", 
            "codedeploy:CreateDeployment", 
            "codedeploy:CreateDeploymentGroup", 
            "codedeploy:GetApplication", 
            "codedeploy:GetDeployment", 
            "codedeploy:GetDeploymentGroup", 
            "codedeploy:ListApplications", 
            "codedeploy:ListDeploymentGroups", 
            "codedeploy:ListDeployments", 
            "codedeploy:StopDeployment", 
            "codedeploy:GetDeploymentTarget", 
            "codedeploy:ListDeploymentTargets", 
            "codedeploy:GetDeploymentConfig", 
            "codedeploy:GetApplicationRevision", 
            "codedeploy:RegisterApplicationRevision", 
            "codedeploy:BatchGetApplicationRevisions", 
            "codedeploy:BatchGetDeploymentGroups", 
            "codedeploy:BatchGetDeployments", 
            "codedeploy:BatchGetApplications", 
            "codedeploy:ListApplicationRevisions", 
            "codedeploy:ListDeploymentConfigs", 
            "codedeploy:ContinueDeployment"           
         ],
         "Resource":"*",
         "Effect":"Allow"
      },{"Action":[
            "iam:PassRole"
         ],
         "Effect":"Allow",
         "Resource":"*",
         "Condition":{"StringLike":{"iam:PassedToService":[
                  "ecs-tasks.amazonaws.com",
                  "codedeploy.amazonaws.com"
               ]
            }
         }
      }]
      }
      ```

------
**catatan**  
Pertama kali peran digunakan untuk menjalankan tindakan alur kerja, gunakan wildcard dalam pernyataan kebijakan sumber daya. Anda kemudian dapat mencatat kebijakan dengan nama sumber daya setelah tersedia.  

      ```
      "Resource": "*"
      ```

   1. Pilih **Berikutnya: Tanda**.

   1. Pilih **Berikutnya: Tinjau**.

   1. Dalam **Nama**, masukkan:

      ```
      codecatalyst-ecs-deploy-policy
      ```

   1. Pilih **Buat kebijakan**.

      Anda sekarang telah membuat kebijakan izin.

1. Buat peran deploy, sebagai berikut:

   1. Di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

   1. Pilih **Kebijakan kepercayaan khusus**.

   1. Hapus kebijakan kepercayaan kustom yang ada.

   1. Tambahkan kebijakan kepercayaan khusus berikut:

   1. Pilih **Berikutnya**.

   1. Di **Kebijakan izin**, cari`codecatalyst-ecs-deploy-policy`, pilih kotak centang.

   1. Pilih **Berikutnya**.

   1. Untuk **nama Peran**, masukkan:

      ```
      codecatalyst-ecs-deploy-role
      ```

   1. Untuk **deskripsi Peran**, masukkan:

      ```
      CodeCatalyst ECS deploy role
      ```

   1. Pilih **Buat peran**.

   Anda sekarang telah membuat peran penerapan dengan kebijakan kepercayaan.

1. Dapatkan peran penyebaran ARN, sebagai berikut:

   1. Di panel navigasi, pilih **Peran**.

   1. Di kotak pencarian, masukkan nama peran yang baru saja Anda buat (`codecatalyst-ecs-deploy-role`).

   1. Pilih peran dari daftar.

      Halaman **Ringkasan** peran muncul.

   1. Di bagian atas, salin nilai **ARN**. Anda membutuhkannya nanti.

------
#### [ AWS CLI ]

Untuk membuat peran build dan deploy, selesaikan rangkaian prosedur berikut.

**Untuk membuat kebijakan kepercayaan untuk kedua peran**

Seperti`CodeCatalystECSUser`, di AWS CloudShell, buat file kebijakan kepercayaan:

1. Buat file:

   ```
   cat > codecatalyst-ecs-trust-policy.json
   ```

1. Pada prompt terminal, tempel kode berikut:

1. Tempatkan kursor Anda setelah braket keriting terakhir (). `}`

1. Tekan **Enter** dan kemudian **Ctrl\$1d** untuk menyimpan file dan keluar dari kucing.

**Untuk membuat kebijakan membangun dan membangun peran**

1. Buat kebijakan build:

   1. Seperti`CodeCatalystECSUser`, dalam AWS CloudShell, membuat file kebijakan build:

      ```
      cat > codecatalyst-ecs-build-policy.json
      ```

   1. Pada prompt, masukkan kode berikut:

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecr:*",
                      "ec2:*"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. Tempatkan kursor Anda setelah braket keriting terakhir (). `}`

   1. Tekan **Enter** dan kemudian **Ctrl\$1d** untuk menyimpan file dan keluar dari kucing.

1. Tambahkan kebijakan build ke AWS:

   ```
   aws iam create-policy \
       --policy-name codecatalyst-ecs-build-policy \
       --policy-document file://codecatalyst-ecs-build-policy.json
   ```

1. Dalam output perintah, perhatikan `"arn":` nilainya, misalnya,`arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy`. Anda membutuhkan ARN ini nanti.

1. Buat peran build dan lampirkan kebijakan kepercayaan padanya:

   ```
   aws iam create-role \
         --role-name codecatalyst-ecs-build-role \
         --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
   ```

1. Lampirkan kebijakan build ke peran build:

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-ecs-build-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy
   ```

   *arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy*Dimana diganti dengan ARN dari kebijakan build yang Anda catat sebelumnya.

1. Menampilkan detail peran build:

   ```
   aws iam get-role \
         --role-name codecatalyst-ecs-build-role
   ```

1. Perhatikan `"Arn":` nilai peran, misalnya,`arn:aws:iam::111122223333:role/codecatalyst-ecs-build-role`. Anda membutuhkan ARN ini nanti.

**Untuk membuat kebijakan penerapan dan peran penerapan**

1. Buat kebijakan penerapan:

   1. Di AWS CloudShell, buat file kebijakan penerapan:

      ```
      cat > codecatalyst-ecs-deploy-policy.json
      ```

   1. Pada prompt, masukkan kode berikut:

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [{
          "Action":[
            "ecs:DescribeServices",
            "ecs:CreateTaskSet",
            "ecs:DeleteTaskSet",
            "ecs:ListClusters",
            "ecs:RegisterTaskDefinition",
            "ecs:UpdateServicePrimaryTaskSet",
            "ecs:UpdateService",
            "elasticloadbalancing:DescribeTargetGroups",
            "elasticloadbalancing:DescribeListeners",
            "elasticloadbalancing:ModifyListener",
            "elasticloadbalancing:DescribeRules",
            "elasticloadbalancing:ModifyRule",
            "lambda:InvokeFunction",
            "lambda:ListFunctions",
            "cloudwatch:DescribeAlarms",
            "sns:Publish",
            "sns:ListTopics", 
            "s3:GetObject",
            "s3:GetObjectVersion",
            "codedeploy:CreateApplication", 
            "codedeploy:CreateDeployment", 
            "codedeploy:CreateDeploymentGroup", 
            "codedeploy:GetApplication", 
            "codedeploy:GetDeployment", 
            "codedeploy:GetDeploymentGroup", 
            "codedeploy:ListApplications", 
            "codedeploy:ListDeploymentGroups", 
            "codedeploy:ListDeployments", 
            "codedeploy:StopDeployment", 
            "codedeploy:GetDeploymentTarget", 
            "codedeploy:ListDeploymentTargets", 
            "codedeploy:GetDeploymentConfig", 
            "codedeploy:GetApplicationRevision", 
            "codedeploy:RegisterApplicationRevision", 
            "codedeploy:BatchGetApplicationRevisions", 
            "codedeploy:BatchGetDeploymentGroups", 
            "codedeploy:BatchGetDeployments", 
            "codedeploy:BatchGetApplications", 
            "codedeploy:ListApplicationRevisions", 
            "codedeploy:ListDeploymentConfigs", 
            "codedeploy:ContinueDeployment"           
         ],
         "Resource":"*",
         "Effect":"Allow"
      },{"Action":[
            "iam:PassRole"
         ],
         "Effect":"Allow",
         "Resource":"*",
         "Condition":{"StringLike":{"iam:PassedToService":[
                  "ecs-tasks.amazonaws.com",
                  "codedeploy.amazonaws.com"
               ]
            }
         }
      }]
      }
      ```

------
**catatan**  
Pertama kali peran digunakan untuk menjalankan tindakan alur kerja, gunakan wildcard dalam pernyataan kebijakan sumber daya dan kemudian cakup kebijakan dengan nama sumber daya setelah tersedia.  

      ```
      "Resource": "*"
      ```

   1. Tempatkan kursor Anda setelah braket keriting terakhir (). `}`

   1. Tekan **Enter** dan kemudian **Ctrl\$1d** untuk menyimpan file dan keluar dari kucing.

1. Tambahkan kebijakan penerapan ke AWS:

   ```
   aws iam create-policy \
       --policy-name codecatalyst-ecs-deploy-policy \
       --policy-document file://codecatalyst-ecs-deploy-policy.json
   ```

1. Dalam output perintah, perhatikan `"arn":` nilai kebijakan penerapan, misalnya,`arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy`. Anda membutuhkan ARN ini nanti.

1. Buat peran penerapan dan lampirkan kebijakan kepercayaan padanya:

   ```
   aws iam create-role \
         --role-name codecatalyst-ecs-deploy-role \
         --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
   ```

1. Lampirkan kebijakan penerapan ke peran penerapan, yang diganti dengan ARN dari kebijakan penerapan yang Anda sebutkan sebelumnya. *arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy*

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-ecs-deploy-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy
   ```

1. Menampilkan detail peran penerapan:

   ```
   aws iam get-role \
         --role-name codecatalyst-ecs-deploy-role
   ```

1. Perhatikan `"Arn":` nilai peran, misalnya,`arn:aws:iam::111122223333:role/codecatalyst-ecs-deploy-role`. Anda membutuhkan ARN ini nanti.

------

## Langkah 5: Tambahkan AWS peran ke CodeCatalyst
<a name="deploy-tut-ecs-import-roles"></a>

Pada langkah ini, Anda menambahkan build role (`codecatalyst-ecs-build-role`) dan deploy role (`codecatalyst-ecs-deploy-role`) ke koneksi CodeCatalyst akun di ruang Anda.

**Untuk menambahkan peran build dan deploy ke koneksi akun**

1. Masuk CodeCatalyst, navigasikan ke ruang Anda.

1. Pilih **AWS akun**. Daftar koneksi akun muncul.

1. Pilih koneksi akun yang mewakili AWS akun tempat Anda membuat peran build dan deploy.

1. Pilih **Kelola peran dari konsol AWS manajemen**.

   **Peran Tambahkan IAM ke halaman CodeCatalyst ruang Amazon** muncul. Anda mungkin perlu masuk untuk mengakses halaman.

1. Pilih **Tambahkan peran yang sudah Anda buat di IAM**.

   Daftar drop-down muncul. Daftar ini menampilkan semua peran IAM dengan kebijakan kepercayaan yang mencakup prinsip `codecatalyst-runner.amazonaws.com` dan `codecatalyst.amazonaws.com` layanan.

1. Dalam daftar drop-down, pilih`codecatalyst-ecs-build-role`, dan pilih **Tambah peran**.
**catatan**  
Jika Anda melihat`The security token included in the request is invalid`, itu mungkin karena Anda tidak memiliki izin yang tepat. Untuk memperbaiki masalah ini, keluar dari AWS sebagai masuk kembali dengan AWS akun yang Anda gunakan saat membuat CodeCatalyst ruang.

1. Pilih **Tambahkan peran IAM**, pilih **Tambahkan peran yang ada yang telah Anda buat di IAM**, dan dalam daftar drop-down, pilih. `codecatalyst-ecs-deploy-role` Pilih **Tambahkan peran**.

   Anda sekarang telah menambahkan peran build dan deploy ke ruang Anda.

1. Salin nilai **nama CodeCatalyst tampilan Amazon**. Anda akan membutuhkan nilai ini nanti, saat membuat alur kerja Anda.

## Langkah 6: Buat repositori sumber
<a name="deploy-tut-ecs-source-repo"></a>

Pada langkah ini, Anda membuat repositori sumber di. CodeCatalyst Repositori ini menyimpan file sumber tutorial, seperti file definisi tugas.

Untuk informasi selengkapnya tentang repositori sumber, lihat. [Membuat repositori sumber](source-repositories-create.md)

**Untuk membuat repositori sumber**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Arahkan ke proyek Anda,`codecatalyst-ecs-project`.

1. Di panel navigasi, pilih **Kode**, lalu pilih **Repositori sumber**. 

1. Pilih **Tambahkan repositori**, lalu pilih **Buat** repositori.

1. Dalam **nama Repositori, masukkan:**

   ```
   codecatalyst-ecs-source-repository
   ```

1. Pilih **Buat**.

## Langkah 7: Tambahkan file sumber
<a name="deploy-tut-ecs-source-files"></a>

Di bagian ini, Anda menambahkan file sumber Hello World ke CodeCatalyst repositori Anda,. `codecatalyst-ecs-source-repository` Mereka terdiri dari:
+ `index.html`File - Menampilkan pesan Hello World di browser. 
+ A Dockerfile - Menjelaskan gambar dasar yang akan digunakan untuk image Docker Anda dan perintah Docker untuk menerapkannya. 
+ `taskdef.json`File - Mendefinisikan image Docker yang akan digunakan saat meluncurkan tugas ke cluster Anda.

Struktur folder adalah sebagai berikut:

```
.
|— public-html
|  |— index.html
|— Dockerfile
|— taskdef.json
```

**catatan**  
Petunjuk berikut menunjukkan cara menambahkan file menggunakan CodeCatalyst konsol tetapi Anda dapat menggunakan Git jika Anda mau. Lihat perinciannya di [Mengkloning repositori sumber](source-repositories-clone.md). 

**Topics**
+ [index.html](#deploy-tut-ecs-source-files-index)
+ [Dockerfile](#deploy-tut-ecs-source-files-dockerfile)
+ [taskdef.json](#deploy-tut-ecs-source-files-taskdef)

### index.html
<a name="deploy-tut-ecs-source-files-index"></a>

`index.html`File menampilkan pesan Hello World di browser. 

**Untuk menambahkan file index.html**

1. Di CodeCatalyst konsol, buka repositori sumber Anda,. `codecatalyst-ecs-source-repository`

1. Di **File**, pilih **Buat file**.

1. Untuk **nama File**, masukkan:

   ```
   public-html/index.html
   ```
**penting**  
Pastikan untuk menyertakan `public-html/` awalan untuk membuat folder dengan nama yang sama. `index.html`Diharapkan ada di folder ini.

1. Di kotak teks, masukkan kode berikut:

   ```
   <html>
     <head>
       <title>Hello World</title>
       <style>
         body {
         background-color: black;
         text-align: center;
         color: white;
         font-family: Arial, Helvetica, sans-serif;
         }  
       </style>
     </head>
     <body>
       <h1>Hello World</h1>
     </body>
   </html>
   ```

1. Pilih **Komit**, lalu pilih **Komit** lagi.

   Ditambahkan ke repositori Anda dalam folder. `index.html` `public-html` 

### Dockerfile
<a name="deploy-tut-ecs-source-files-dockerfile"></a>

Dockerfile menjelaskan image Docker dasar yang akan digunakan dan perintah Docker untuk diterapkan padanya. Untuk informasi selengkapnya tentang Dockerfile, lihat Referensi [Dockerfile](https://docs.docker.com/engine/reference/builder/).

Dockerfile yang ditentukan di sini menunjukkan untuk menggunakan image dasar Apache 2.4 (). `httpd` Ini juga mencakup instruksi untuk menyalin file sumber yang dipanggil `index.html` ke folder di server Apache yang melayani halaman web. `EXPOSE`Instruksi di Dockerfile memberi tahu Docker bahwa wadah mendengarkan pada port 80.

**Untuk menambahkan Dockerfile**

1. Di repositori sumber Anda, pilih **Buat** file.

1. Untuk **nama File**, masukkan:

   ```
   Dockerfile
   ```

   Jangan sertakan ekstensi file.
**penting**  
Dockerfile harus berada di folder root repositori Anda. `Docker build`Perintah alur kerja mengharapkannya ada di sana.

1. Di kotak teks, masukkan kode berikut:

   ```
   FROM httpd:2.4
   COPY ./public-html/index.html /usr/local/apache2/htdocs/index.html
   EXPOSE 80
   ```

1. Pilih **Komit**, lalu pilih **Komit** lagi.

   Dockerfile ditambahkan ke repositori Anda. 

### taskdef.json
<a name="deploy-tut-ecs-source-files-taskdef"></a>

`taskdef.json`File yang Anda tambahkan pada langkah ini sama dengan yang sudah Anda tentukan [Langkah 2: Menyebarkan aplikasi placeholder ke Amazon ECS](#deploy-tut-ecs-placeholder) dengan perbedaan berikut:

Alih-alih menentukan nama gambar Docker yang di-hardcode di `image:` bidang (`httpd:2.4`), definisi tugas di sini menggunakan beberapa variabel untuk menunjukkan gambar: dan. `$REPOSITORY_URI` `$IMAGE_TAG` Variabel ini akan diganti dengan nilai nyata yang dihasilkan oleh aksi build alur kerja saat Anda menjalankan alur kerja di langkah selanjutnya.

Untuk detail tentang parameter definisi tugas, lihat [Parameter definisi tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) di *Panduan Pengembang Layanan Kontainer Elastis Amazon*.

**Untuk menambahkan file taskdef.json**

1. Di repositori sumber Anda, pilih **Buat** file.

1. Untuk **nama File**, masukkan:

   ```
   taskdef.json
   ```

1. Di kotak teks, masukkan kode berikut:

   ```
   {
       "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role",
       "containerDefinitions": [
           {
               "name": "codecatalyst-ecs-container",
               # The $REPOSITORY_URI and $IMAGE_TAG variables will be replaced 
               # by the workflow at build time (see the build action in the 
               # workflow)
               "image": $REPOSITORY_URI:$IMAGE_TAG,
               "essential": true,
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ]
           }
       ],
       "requiresCompatibilities": [
           "FARGATE"
       ],
       "networkMode": "awsvpc",
       "cpu": "256",
       "memory": "512",
       "family": "codecatalyst-ecs-task-def"
   }
   ```

   Pada kode sebelumnya, ganti

   *arn:aws:iam::account\$1ID:role/codecatalyst-ecs-task-execution-role*

   dengan ARN dari peran eksekusi tugas yang Anda catat. [Untuk membuat peran eksekusi tugas](#deploy-tut-ecs-create-task-execution-role)

1. Pilih **Komit**, lalu pilih **Komit** lagi.

   `taskdef.json`File ditambahkan ke repositori Anda. 

## Langkah 8: Buat dan jalankan alur kerja
<a name="deploy-tut-ecs-workflow"></a>

Pada langkah ini, Anda membuat alur kerja yang mengambil file sumber Anda, membuatnya menjadi image Docker, dan kemudian menyebarkan gambar ke cluster Amazon ECS Anda. Deployment ini menggantikan aplikasi placeholder Apache yang ada.

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 (`BuildBackend`) — Pada pemicu, aksi membangun image Docker menggunakan Dockerfile dan mendorong gambar ke Amazon ECR. Tindakan build juga memperbarui `taskdef.json` dengan nilai `image` bidang yang benar, dan kemudian membuat artefak keluaran file ini. Artefak ini digunakan sebagai input untuk tindakan penyebaran, yang berikutnya.

  Untuk informasi selengkapnya tentang tindakan build, lihat[Membangun dengan alur kerja](build-workflow-actions.md).
+ Tindakan penerapan (`DeployToECS`) — Setelah menyelesaikan aksi build, tindakan deploy mencari artefak keluaran yang dihasilkan oleh build action (`TaskDefArtifact`), menemukan `taskdef.json` bagian dalamnya, dan mendaftarkannya dengan layanan Amazon ECS Anda. Layanan kemudian mengikuti instruksi dalam `taskdef.json` file untuk menjalankan tiga tugas Amazon ECS — dan container Hello World Docker terkait — di dalam cluster Amazon ECS Anda. 

**Untuk membuat alur kerja**

1. **Di CodeCatalyst konsol, di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih **Buat alur kerja**.

1. Untuk **repositori Sumber, pilih**. `codecatalyst-ecs-source-repository`

1. Untuk **Cabang**, pilih`main`.

1. Pilih **Buat**.

1. Hapus kode sampel YAMAL.

1. Tambahkan kode YAML berikut:
**catatan**  
Dalam kode YAMAL berikut, Anda dapat menghilangkan `Connections:` bagian jika Anda mau. Jika Anda menghilangkan bagian ini, Anda harus memastikan bahwa peran yang ditentukan dalam bidang **peran IAM default** di lingkungan Anda mencakup izin dan kebijakan kepercayaan dari kedua peran yang dijelaskan. [Langkah 5: Tambahkan AWS peran ke CodeCatalyst](#deploy-tut-ecs-import-roles) Untuk informasi selengkapnya tentang menyiapkan lingkungan dengan peran IAM default, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-ecs-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     BuildBackend:
       Identifier: aws/build@v1
       Environment:
         Name: codecatalyst-ecs-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-ecs-build-role
       Inputs:
         Sources:
           - WorkflowSource
         Variables:
           - Name: REPOSITORY_URI
             Value: 111122223333.dkr.ecr.us-west-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-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-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
           # Replace the variables in taskdef.json
           - Run: find taskdef.json -type f | xargs sed -i "s|\$REPOSITORY_URI|$REPOSITORY_URI|g"
           - Run: find taskdef.json -type f | xargs sed -i "s|\$IMAGE_TAG|$IMAGE_TAG|g"
           - Run: cat taskdef.json
           # The output artifact will be a zip file that contains a task definition file.
       Outputs:
         Artifacts:
           - Name: TaskDefArtifact
             Files: 
               - taskdef.json
     DeployToECS:
       DependsOn: 
         - BuildBackend
       Identifier: aws/ecs-deploy@v1
       Environment:
         Name: codecatalyst-ecs-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-ecs-deploy-role
       Inputs:
         Sources: []
         Artifacts:
           - TaskDefArtifact
       Configuration:
         region: us-west-2
         cluster: codecatalyst-ecs-cluster
         service: codecatalyst-ecs-service
         task-definition: taskdef.json
   ```

   Pada kode sebelumnya, ganti:
   + Kedua contoh *codecatalyst-ecs-environment* dengan nama lingkungan yang Anda buat. [Prasyarat](#deploy-tut-ecs-prereqs)
   + Kedua contoh *codecatalyst-account-connection* dengan nama tampilan koneksi akun Anda. Nama tampilan mungkin nomor. Untuk informasi selengkapnya, lihat [Langkah 5: Tambahkan AWS peran ke CodeCatalyst](#deploy-tut-ecs-import-roles).
   + *codecatalyst-ecs-build-role*dengan nama peran build yang Anda buat[Langkah 4: Buat AWS peran](#deploy-tut-ecs-build-deploy-roles).
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo*(di `Value:` properti) dengan URI dari repositori Amazon ECR yang Anda buat. [Langkah 3: Buat repositori gambar Amazon ECR](#deploy-tut-ecs-ecr)
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com*(dalam `Run: aws ecr` perintah) dengan URI repositori Amazon ECR tanpa akhiran gambar (). `/codecatalyst-ecs-image-repo`
   + *codecatalyst-ecs-deploy-role*dengan nama peran penerapan yang Anda buat. [Langkah 4: Buat AWS peran](#deploy-tut-ecs-build-deploy-roles)
   + Kedua contoh *us-west-2* dengan kode AWS Wilayah Anda. Untuk daftar kode Wilayah, lihat [Titik akhir Regional](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) di. *Referensi Umum AWS*
**catatan**  
Jika Anda memutuskan untuk tidak membuat peran build dan deploy, ganti *codecatalyst-ecs-build-role* dan *codecatalyst-ecs-deploy-role* dengan nama `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut. Untuk informasi selengkapnya tentang peran ini, silakan lihat [Langkah 4: Buat AWS peran](#deploy-tut-ecs-build-deploy-roles).
**Tip**  
Alih-alih menggunakan `sed` perintah `find` dan yang ditampilkan dalam kode alur kerja sebelumnya untuk memperbarui repositori dan nama gambar, Anda dapat menggunakan tindakan **definisi tugas Render Amazon ECS** untuk tujuan ini. Untuk informasi selengkapnya, lihat [Memodifikasi definisi tugas Amazon ECS](render-ecs-action.md).

1. (Opsional) Pilih **Validasi** untuk memastikan bahwa kode YAMAL valid sebelum melakukan.

1. Pilih **Terapkan**.

1. Dalam kotak dialog **Commit workflow**, masukkan yang berikut ini:

   1. Untuk **pesan Commit**, hapus teks dan masukkan:

      ```
      Add first workflow
      ```

   1. Untuk **Repositori, pilih**. `codecatalyst-ecs-source-repository`

   1. Untuk **nama Branch**, pilih main.

   1. Pilih **Terapkan**.

   Anda sekarang telah membuat alur kerja. Jalankan alur kerja dimulai secara otomatis karena pemicu yang ditentukan di bagian atas alur kerja. Khususnya, ketika Anda melakukan (dan mendorong) `workflow.yaml` file ke repositori sumber Anda, pemicu memulai alur kerja dijalankan.

**Untuk melihat alur kerja, jalankan kemajuan**

1. **Di panel navigasi CodeCatalyst konsol, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih alur kerja yang baru saja Anda buat,`codecatalyst-ecs-workflow`.

1. Pilih **BuildBackend**untuk melihat kemajuan pembangunan.

1. Pilih **DeployToECS** untuk melihat kemajuan penerapan.

   Untuk informasi selengkapnya tentang melihat detail run, lihat[Melihat status dan detail alur kerja](workflows-view-run.md).

**Untuk memverifikasi penyebaran**

1. Buka konsol klasik Amazon ECS di [https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/).

1. Pilih cluster Anda,`codecatalyst-ecs-cluster`.

1. Pilih tab **Tugas**. 

1. Pilih salah satu dari tiga tugas.

1. Di bidang **IP Publik**, pilih **alamat terbuka**.

   Halaman “Hello World” muncul di browser, menunjukkan bahwa layanan Amazon ECS berhasil menyebarkan aplikasi Anda.

## Langkah 9: Buat perubahan pada file sumber Anda
<a name="deploy-tut-ecs-change"></a>

Di bagian ini, Anda membuat perubahan pada `index.html` file di repositori sumber Anda. Perubahan ini menyebabkan alur kerja membuat image Docker baru, menandainya dengan ID komit, mendorongnya ke Amazon ECR, dan menerapkannya ke Amazon ECS. 

**Untuk mengubah index.html**

1. Di CodeCatalyst konsol, di panel navigasi, pilih **Kode**, lalu pilih repositori **Sumber, lalu pilih repositori** Anda,. `codecatalyst-ecs-source-repository`

1. Pilih`public-html`, lalu pilih`index.html`.

   Isi `index.html` muncul.

1. Pilih **Edit**. 

1. Pada baris 14, ubah `Hello World` teks menjadi`Tutorial complete!`.

1. Pilih **Komit**, lalu pilih **Komit** lagi.

   Komit menyebabkan alur kerja baru dijalankan. 

1. (Opsional) Buka halaman utama repositori sumber Anda, pilih **Lihat komit**, lalu catat ID komit untuk perubahan tersebut. `index.html`

1. Perhatikan kemajuan penerapan:

   1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

   1. Pilih `codecatalyst-ecs-workflow` untuk melihat proses terbaru.

   1. Pilih **BuildBackend**, dan **DeployToECS** untuk melihat alur kerja berjalan kemajuan.

1. Verifikasi bahwa aplikasi Anda telah diperbarui, sebagai berikut:

   1. Buka konsol klasik Amazon ECS di [https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/).

   1. Pilih cluster Anda,`codecatalyst-ecs-cluster`.

   1. Pilih tab **Tugas**. 

   1. Pilih salah satu dari tiga tugas.

   1. Di bidang **IP Publik**, pilih **alamat terbuka**.

      Sebuah `Tutorial complete!` halaman muncul.

1. (Opsional) Di AWS, alihkan ke konsol Amazon ECR dan verifikasi bahwa image Docker baru ditandai dengan ID komit dari langkah 6.

## Bersihkan
<a name="deploy-tut-ecs-cleanup"></a>

Bersihkan file dan layanan yang digunakan dalam tutorial ini untuk menghindari biaya untuk mereka.

Dalam Konsol Manajemen AWS, bersihkan dalam urutan ini:

1. Di Amazon ECS, lakukan hal berikut:

   1. Hapus`codecatalyst-ecs-service`.

   1. Hapus`codecatalyst-ecs-cluster`.

   1. Deregister`codecatalyst-ecs-task-definition`.

1. Di Amazon ECR, hapus`codecatalyst-ecs-image-repo`.

1. Di Amazon EC2, hapus. `codecatalyst-ecs-security-group`

1. Di Pusat Identitas IAM, hapus:

   1. `CodeCatalystECSUser`

   1. `CodeCatalystECSPermissionSet`

Di CodeCatalyst konsol, bersihkan sebagai berikut:

1. Hapus`codecatalyst-ecs-workflow`.

1. Hapus`codecatalyst-ecs-environment`.

1. Hapus`codecatalyst-ecs-source-repository`.

1. Hapus`codecatalyst-ecs-project`.

Dalam tutorial ini, Anda mempelajari cara menerapkan aplikasi ke layanan Amazon ECS menggunakan CodeCatalyst alur kerja dan tindakan **Deploy ke Amazon** ECS.

# Menambahkan tindakan 'Terapkan ke Amazon ECS'
<a name="deploy-action-ecs-adding"></a>

Gunakan petunjuk berikut untuk menambahkan tindakan **Deploy ke Amazon ECS** ke alur kerja Anda. 

------
#### [ Visual ]

**Untuk menambahkan tindakan 'Terapkan ke Amazon ECS' menggunakan editor visual**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari tindakan **Deploy to Amazon ECS**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **Terapkan ke Amazon ECS**. Kotak dialog detail tindakan muncul. Pada kotak dialog ini:
     + (Opsional) Pilih **Unduh** untuk [melihat kode sumber tindakan](workflows-view-source.md#workflows-view-source.title).
     + Pilih **Tambahkan ke alur kerja** untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

1. Pada tab **Input** dan **Konfigurasi**, lengkapi bidang sesuai dengan kebutuhan Anda. Untuk deskripsi setiap bidang, lihat[Tindakan 'Terapkan ke Amazon ECS' YAML'](deploy-action-ref-ecs.md). Referensi ini memberikan informasi rinci tentang setiap bidang (dan nilai properti YAMAL yang sesuai) seperti yang muncul di YAMAL dan editor visual.

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

------
#### [ YAML ]

**Untuk menambahkan tindakan 'Deploy to Amazon ECS' menggunakan editor YAMAL**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari tindakan **Deploy to Amazon ECS**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **Terapkan ke Amazon ECS**. Kotak dialog detail tindakan muncul. Pada kotak dialog ini:
     + (Opsional) Pilih **Unduh** untuk [melihat kode sumber tindakan](workflows-view-source.md#workflows-view-source.title).
     + Pilih **Tambahkan ke alur kerja** untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

1. Ubah properti dalam kode YAMAL sesuai dengan kebutuhan Anda. Penjelasan tentang setiap properti yang tersedia disediakan di[Tindakan 'Terapkan ke Amazon ECS' YAML'](deploy-action-ref-ecs.md).

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

------

# Variabel 'Terapkan ke Amazon ECS'
<a name="deploy-action-ecs-variables"></a>

Tindakan **Deploy to Amazon ECS** menghasilkan dan menetapkan variabel berikut pada waktu berjalan. Ini dikenal sebagai *variabel yang telah ditentukan sebelumnya*.

Untuk informasi tentang mereferensikan variabel-variabel ini dalam alur kerja, lihat. [Menggunakan variabel yang telah ditentukan](workflows-using-predefined-variables.md)


| Key | Nilai | 
| --- | --- | 
|  klaster  |  Nama kluster Amazon ECS yang digunakan selama alur kerja dijalankan. Contoh: `codecatalyst-ecs-cluster`  | 
|  platform penyebaran  |  Nama platform penyebaran. Hardcode ke. `AWS:ECS`  | 
|  layanan  |  Nama layanan Amazon ECS yang digunakan selama alur kerja dijalankan. Contoh: `codecatalyst-ecs-service`  | 
|  task-definition-arn  |  Nama Sumber Daya Amazon (ARN) dari definisi tugas yang didaftarkan selama alur kerja dijalankan. Contoh: `arn:aws:ecs:us-west-2:111122223333:task-definition/codecatalyst-task-def:8`Contoh sebelumnya menunjukkan revisi yang terdaftar. `:8`  | 
|  deployment-url  |  Tautan ke tab **Acara** konsol Amazon ECS, tempat Anda dapat melihat detail penerapan Amazon ECS yang terkait dengan alur kerja yang dijalankan. Contoh: `https://console.aws.amazon.com/ecs/home?region=us-west-2#/clusters/codecatalyst-ecs-cluster/services/codecatalyst-ecs-service/events`  | 
|  region  |  Kode wilayah Wilayah AWS yang digunakan selama alur kerja dijalankan. Contoh: `us-west-2`  | 

# Tindakan 'Terapkan ke Amazon ECS' YAML'
<a name="deploy-action-ref-ecs"></a>

Berikut ini adalah definisi YAMAL dari tindakan **Deploy to Amazon ECS**. Untuk mempelajari cara menggunakan tindakan ini, lihat[Menyebarkan ke Amazon ECS dengan alur kerja](deploy-action-ecs.md).

Definisi tindakan ini ada sebagai bagian dalam file definisi alur kerja yang lebih luas. Untuk informasi selengkapnya tentang file ini, lihat[Alur kerja definisi YAMAL](workflow-reference.md).

**catatan**  
Sebagian besar properti YAMAL yang mengikuti memiliki elemen UI yang sesuai di editor visual. Untuk mencari elemen UI, gunakan **Ctrl\$1F**. Elemen akan terdaftar dengan properti YAMLnya yang terkait.

```
# The workflow definition starts here.
# See Properti tingkat atas for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  ECSDeployAction\$1nn: 
    Identifier: aws/ecs-deploy@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - task-definition-artifact
    Configuration: 
      region: us-east-1 
      cluster: ecs-cluster
      service: ecs-service
      task-definition: task-definition-path
      force-new-deployment: false|true
      codedeploy-appspec: app-spec-file-path
      codedeploy-application: application-name
      codedeploy-deployment-group: deployment-group-name
      codedeploy-deployment-description: deployment-description
```

## ECSDeployAction
<a name="deploy.action.ecs.name"></a>

(Diperlukan)

Tentukan nama tindakan. Semua nama tindakan harus unik dalam alur kerja. Nama aksi terbatas pada karakter alfanumerik (a-z, A-Z, 0-9), tanda hubung (-), dan garis bawah (\$1). Spasi tidak diizinkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan karakter dan spasi khusus dalam nama tindakan.

Default: `ECSDeployAction_nn`.

UI yang sesuai: Tab **konfigurasi/Nama tampilan tindakan**

## Identifier
<a name="deploy.action.ecs.identifier"></a>

(*ECSDeployAction*/**Identifier**)

(Diperlukan)

Mengidentifikasi tindakan. Jangan mengubah properti ini kecuali Anda ingin mengubah versi. Untuk informasi selengkapnya, lihat [Menentukan versi tindakan yang akan digunakan](workflows-action-versions.md).

Default: `aws/ecs-deploy@v1`.

**UI yang sesuai: Diagram alur ECSDeploy kerja/Action\$1nn/ aws/ecs-deploy @v1 label**

## DependsOn
<a name="deploy.action.ecs.dependson"></a>

(*ECSDeployAction*/**DependsOn**)

(Opsional)

Tentukan tindakan, grup tindakan, atau gerbang yang harus berjalan dengan sukses agar tindakan ini berjalan.

Untuk informasi selengkapnya tentang fungsionalitas 'tergantung pada', lihat. [Tindakan pengurutan](workflows-depends-on.md)

UI yang sesuai: Tab **masukan/Tergantung pada** - opsional

## Compute
<a name="deploy.action.ecs.computename"></a>

(*ECSDeployAction*/**Compute**)

(Opsional)

Mesin komputasi yang digunakan untuk menjalankan tindakan alur kerja Anda. Anda dapat menentukan komputasi baik di tingkat alur kerja atau di tingkat tindakan, tetapi tidak keduanya. Ketika ditentukan pada tingkat alur kerja, konfigurasi komputasi berlaku untuk semua tindakan yang ditentukan dalam alur kerja. Pada tingkat alur kerja, Anda juga dapat menjalankan beberapa tindakan pada instance yang sama. Untuk informasi selengkapnya, lihat [Berbagi komputasi di seluruh tindakan](compute-sharing.md).

UI yang sesuai: *tidak ada*

## Type
<a name="deploy.action.ecs.computetype"></a>

(*ECSDeployAction*/Compute/**Type**)

(Diperlukan [Compute](#deploy.action.ecs.computename) jika disertakan)

Jenis mesin komputasi. Anda dapat menggunakan salah satu nilai berikut:
+ **EC2** (editor visual) atau `EC2` (editor YAMG)

  Dioptimalkan untuk fleksibilitas selama aksi berjalan.
+ **Lambda** (editor visual) atau `Lambda` (editor YAMG)

  Kecepatan start-up aksi yang dioptimalkan.

Untuk informasi selengkapnya tentang jenis komputasi, lihat[Jenis komputasi](workflows-working-compute.md#compute.types).

**UI yang sesuai: Konfigurasi tab/Advanced - tipe opsional/Komputasi**

## Fleet
<a name="deploy.action.ecs.computefleet"></a>

(*ECSDeployAction*/Compute/**Fleet**)

(Opsional)

Tentukan mesin atau armada yang akan menjalankan alur kerja atau tindakan alur kerja Anda. Dengan armada sesuai permintaan, ketika suatu tindakan dimulai, alur kerja menyediakan sumber daya yang dibutuhkan, dan mesin dihancurkan ketika tindakan selesai. Contoh armada sesuai permintaan:`Linux.x86-64.Large`,. `Linux.x86-64.XLarge` Untuk informasi lebih lanjut tentang armada sesuai permintaan, lihat. [Properti armada sesuai permintaan](workflows-working-compute.md#compute.on-demand)

Dengan armada yang disediakan, Anda mengonfigurasi satu set mesin khusus untuk menjalankan tindakan alur kerja Anda. Mesin-mesin ini tetap menganggur, siap untuk memproses tindakan segera. Untuk informasi selengkapnya tentang armada yang disediakan, lihat. [Properti armada yang disediakan](workflows-working-compute.md#compute.provisioned-fleets)

Jika `Fleet` dihilangkan, defaultnya adalah. `Linux.x86-64.Large`

**UI yang sesuai: Konfigurasi tab/Advanced - armada opsional/Komputasi**

## Timeout
<a name="deploy.action.ecs.timeout"></a>

(*ECSDeployAction*/**Timeout**)

(Opsional)

Tentukan jumlah waktu dalam menit (editor YAMG), atau jam dan menit (editor visual), bahwa tindakan dapat berjalan sebelum CodeCatalyst mengakhiri tindakan. Minimal adalah 5 menit dan maksimum dijelaskan dalam[Kuota untuk alur kerja di CodeCatalyst](workflows-quotas.md). Batas waktu default sama dengan batas waktu maksimum.

UI yang sesuai: Tab **konfigurasi/Timeout** - opsional

## Environment
<a name="deploy.action.ecs.environment"></a>

(*ECSDeployAction*/**Environment**)

(Diperlukan)

Tentukan CodeCatalyst lingkungan yang akan digunakan dengan tindakan. Tindakan terhubung ke Akun AWS dan VPC Amazon opsional yang ditentukan di lingkungan yang dipilih. Tindakan ini menggunakan peran IAM default yang ditentukan di lingkungan untuk terhubung ke Akun AWS, dan menggunakan peran IAM yang ditentukan dalam [koneksi VPC Amazon untuk terhubung ke VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) Amazon.

**catatan**  
Jika peran IAM default tidak memiliki izin yang diperlukan oleh tindakan, Anda dapat mengonfigurasi tindakan untuk menggunakan peran yang berbeda. Untuk informasi selengkapnya, lihat [Mengubah peran IAM dari suatu tindakan](deploy-environments-switch-role.md).

Untuk informasi selengkapnya tentang lingkungan, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md) dan[Pembuatan lingkungan](deploy-environments-creating-environment.md).

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Name
<a name="deploy.action.ecs.environment.name"></a>

(*ECSDeployAction*/Environment/**Name**)

(Diperlukan [Environment](#deploy.action.ecs.environment) jika disertakan)

Tentukan nama lingkungan yang ada yang ingin Anda kaitkan dengan tindakan.

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Connections
<a name="deploy.action.ecs.environment.connections"></a>

(*ECSDeployAction*/Environment/**Connections**)

(Opsional dalam versi tindakan yang lebih baru; diperlukan dalam versi yang lebih lama)

Tentukan koneksi akun untuk dikaitkan dengan tindakan. Anda dapat menentukan maksimum satu koneksi akun di bawah`Environment`.

Jika Anda tidak menentukan koneksi akun:
+ Tindakan menggunakan Akun AWS koneksi dan peran IAM default yang ditentukan di lingkungan di CodeCatalyst konsol. Untuk informasi tentang menambahkan koneksi akun dan peran IAM default ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).
+ Peran IAM default harus menyertakan kebijakan dan izin yang diperlukan oleh tindakan. Untuk menentukan kebijakan dan izin tersebut, lihat deskripsi properti **Peran** dalam dokumentasi definisi YAMAL tindakan.

Untuk informasi selengkapnya tentang koneksi akun, lihat[Memungkinkan akses ke AWS sumber daya yang terhubung Akun AWS](ipa-connect-account.md). Untuk informasi tentang menambahkan koneksi akun ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Name
<a name="deploy.action.ecs.environment.connections.name"></a>

(*ECSDeployAction*/Environment/Connections/**Name**)

(Diperlukan [Connections](#deploy.action.ecs.environment.connections) jika disertakan)

Tentukan nama koneksi akun.

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Role
<a name="deploy.action.ecs.environment.connections.role"></a>

(*ECSDeployAction*/Environment/Connections/**Role**)

(Diperlukan [Connections](#deploy.action.ecs.environment.connections) jika disertakan)

Tentukan nama peran IAM yang digunakan tindakan **Deploy to Amazon ECS** untuk mengakses. AWS Pastikan Anda telah [menambahkan peran ke CodeCatalyst ruang Anda](ipa-connect-account-addroles.md), dan peran tersebut mencakup kebijakan berikut.

Jika Anda tidak menentukan peran IAM, maka tindakan tersebut menggunakan peran IAM default yang tercantum di [lingkungan](deploy-environments.md) di CodeCatalyst konsol. Jika Anda menggunakan peran default di lingkungan, pastikan itu memiliki kebijakan berikut.
+ Kebijakan izin berikut:
**Awas**  
Batasi izin untuk yang ditampilkan dalam kebijakan berikut. Menggunakan peran dengan izin yang lebih luas dapat menimbulkan risiko keamanan.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
      "Action":[
        "ecs:DescribeServices",
        "ecs:CreateTaskSet",
        "ecs:DeleteTaskSet",
        "ecs:ListClusters",
        "ecs:RegisterTaskDefinition",
        "ecs:UpdateServicePrimaryTaskSet",
        "ecs:UpdateService",
        "elasticloadbalancing:DescribeTargetGroups",
        "elasticloadbalancing:DescribeListeners",
        "elasticloadbalancing:ModifyListener",
        "elasticloadbalancing:DescribeRules",
        "elasticloadbalancing:ModifyRule",
        "lambda:InvokeFunction",
        "lambda:ListFunctions",
        "cloudwatch:DescribeAlarms",
        "sns:Publish",
        "sns:ListTopics", 
        "s3:GetObject",
        "s3:GetObjectVersion",
        "codedeploy:CreateApplication", 
        "codedeploy:CreateDeployment", 
        "codedeploy:CreateDeploymentGroup", 
        "codedeploy:GetApplication", 
        "codedeploy:GetDeployment", 
        "codedeploy:GetDeploymentGroup", 
        "codedeploy:ListApplications", 
        "codedeploy:ListDeploymentGroups", 
        "codedeploy:ListDeployments", 
        "codedeploy:StopDeployment", 
        "codedeploy:GetDeploymentTarget", 
        "codedeploy:ListDeploymentTargets", 
        "codedeploy:GetDeploymentConfig", 
        "codedeploy:GetApplicationRevision", 
        "codedeploy:RegisterApplicationRevision", 
        "codedeploy:BatchGetApplicationRevisions", 
        "codedeploy:BatchGetDeploymentGroups", 
        "codedeploy:BatchGetDeployments", 
        "codedeploy:BatchGetApplications", 
        "codedeploy:ListApplicationRevisions", 
        "codedeploy:ListDeploymentConfigs", 
        "codedeploy:ContinueDeployment"           
     ],
     "Resource":"*",
     "Effect":"Allow"
  },{"Action":[
        "iam:PassRole"
     ],
     "Effect":"Allow",
     "Resource":"*",
     "Condition":{"StringLike":{"iam:PassedToService":[
              "ecs-tasks.amazonaws.com",
              "codedeploy.amazonaws.com"
           ]
        }
     }
  }]
  }
  ```

------
**catatan**  
Pertama kali peran digunakan, gunakan wildcard berikut dalam pernyataan kebijakan sumber daya dan kemudian cakup kebijakan dengan nama sumber daya setelah tersedia.  

  ```
  "Resource": "*"
  ```
+ Kebijakan kepercayaan khusus berikut:

**catatan**  
Anda dapat menggunakan `CodeCatalystWorkflowDevelopmentRole-spaceName` peran dengan tindakan ini, jika Anda mau. Untuk informasi selengkapnya tentang peran ini, silakan lihat [Membuat **CodeCatalystWorkflowDevelopmentRole-*spaceName***peran untuk akun dan ruang Anda](ipa-iam-roles.md#ipa-iam-roles-service-create). Memahami bahwa `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut memiliki izin akses penuh yang dapat menimbulkan risiko keamanan. Kami menyarankan Anda hanya menggunakan peran ini dalam tutorial dan skenario di mana keamanan kurang menjadi perhatian. 

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' '/ Environment/account/role Peran**

## Inputs
<a name="deploy.action.ecs.inputs"></a>

(*ECSDeployAction*/**Inputs**)

(Opsional)

`Inputs`Bagian ini mendefinisikan data yang `ECSDeployAction` dibutuhkan selama menjalankan alur kerja.

**catatan**  
Hanya satu input (baik sumber atau artefak) yang diizinkan per tindakan **Deploy ke Amazon ECS**.

UI yang sesuai: **Tab input**

## Sources
<a name="deploy.action.ecs.inputs.sources"></a>

(*ECSDeployAction*/Inputs/**Sources**)

(Diperlukan jika file definisi tugas Anda disimpan dalam repositori sumber)

Jika file definisi tugas Anda disimpan dalam repositori sumber, tentukan label repositori sumber tersebut. Saat ini, satu-satunya label yang didukung adalah`WorkflowSource`.

Jika file definisi tugas Anda tidak terkandung dalam repositori sumber, itu harus berada dalam artefak yang dihasilkan oleh tindakan lain.

Untuk informasi selengkapnya tentang sumber, lihat [Menghubungkan repositori sumber ke alur kerja](workflows-sources.md).

UI yang sesuai: **Tab/Sumber** Input - opsional

## Artifacts - input
<a name="deploy.action.ecs.inputs.artifacts"></a>

(*ECSDeployAction*/Inputs/**Artifacts**)

(Diperlukan jika file definisi tugas Anda disimpan dalam [artefak keluaran](workflows-working-artifacts-output.md) dari tindakan sebelumnya)

Jika file definisi tugas yang ingin Anda terapkan terkandung dalam artefak yang dihasilkan oleh tindakan sebelumnya, tentukan artefak tersebut di sini. Jika file definisi tugas Anda tidak terkandung dalam artefak, itu harus berada di repositori sumber Anda.

Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihat[Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).

UI yang sesuai: Tab **konfigurasi/Artefak** - opsional

## Configuration
<a name="deploy.action.ecs.configuration"></a>

(*ECSDeployAction*/**Configuration**)

(Diperlukan)

Bagian di mana Anda dapat menentukan properti konfigurasi tindakan.

UI yang sesuai: Tab **konfigurasi**

## region
<a name="deploy.action.ecs.region"></a>

(Configuration/**region**)

(Diperlukan)

Tentukan AWS Wilayah tempat klaster dan layanan Amazon ECS Anda berada. Untuk daftar kode Region, lihat [Titik akhir Regional](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) di. *Referensi Umum AWS*

**UI yang sesuai: Tab konfigurasi/Wilayah**

## cluster
<a name="deploy.action.ecs.cluster"></a>

(*ECSDeployAction*/Configuration/**cluster**)

(Diperlukan)

Tentukan nama cluster Amazon ECS yang ada. Tindakan **Deploy to Amazon ECS** akan menerapkan aplikasi kontainer Anda sebagai tugas ke dalam klaster ini. Untuk informasi selengkapnya tentang klaster Amazon ECS, lihat Cluster di [Panduan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-clusters) Pengembang *Layanan Kontainer Elastis Amazon*.

**UI yang sesuai: Tab konfigurasi/Cluster**

## service
<a name="deploy.action.ecs.service"></a>

(*ECSDeployAction*/Configuration/**service**)

(Diperlukan)

Tentukan nama layanan Amazon ECS yang ada yang akan membuat instance file definisi tugas. Layanan ini harus berada di bawah cluster yang ditentukan di `cluster` bidang. Untuk informasi selengkapnya tentang layanan Amazon ECS, lihat Layanan [Amazon ECS di Panduan Pengembang Layanan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) *Kontainer Elastis Amazon*.

**UI yang sesuai: Tab konfigurasi/Layanan**

## task-definition
<a name="deploy.action.ecs.task.definition"></a>

(*ECSDeployAction*/Configuration/**task-definition**)

(Diperlukan)

Tentukan jalur ke file definisi tugas yang ada. Jika file berada di repositori sumber Anda, jalurnya relatif terhadap folder root repositori sumber. Jika file Anda berada dalam artefak dari tindakan alur kerja sebelumnya, jalurnya relatif terhadap folder root artefak. Untuk informasi selengkapnya tentang file definisi tugas, lihat [Definisi tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) di *Panduan Pengembang Layanan Kontainer Elastis Amazon*.

UI yang sesuai: Tab konfigurasi/Definisi **tugas**

## force-new-deployment
<a name="deploy.action.ecs.forcenewdeployment"></a>

(*ECSDeployAction*/Configuration/**force-new-deployment**)

(Diperlukan)

Jika diaktifkan, layanan Amazon ECS dapat memulai penerapan baru tanpa perubahan definisi layanan. Memaksa penerapan menyebabkan layanan menghentikan semua tugas yang sedang berjalan dan meluncurkan tugas baru. Untuk informasi selengkapnya tentang pemaksaan penerapan baru, lihat [Memperbarui layanan di Panduan Pengembang Layanan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-service.html) *Amazon Elastic Container*.

Default: `false`

UI yang sesuai: Tab **konfigurasi/Paksa penerapan layanan baru**

## codedeploy-appspec
<a name="deploy.action.ecs.codedeploy.appspec"></a>

(*ECSDeployAction*/Configuration/**codedeploy-appspec**)

(Diperlukan jika Anda telah mengonfigurasi layanan Amazon ECS Anda untuk menggunakan blue/green penerapan, jika tidak, hilangkan)

Tentukan nama dan jalur ke file spesifikasi CodeDeploy aplikasi (AppSpec) yang ada. File ini harus berada di root repositori CodeCatalyst sumber Anda. Untuk informasi selengkapnya tentang AppSpec file, lihat [file spesifikasi CodeDeploy aplikasi (AppSpec)](https://docs.aws.amazon.com/codedeploy/latest/userguide/application-specification-files.html) di *Panduan AWS CodeDeploy Pengguna*.

**catatan**  
Hanya berikan CodeDeploy informasi jika Anda telah mengonfigurasi layanan Amazon ECS untuk melakukan blue/green penerapan. Untuk penerapan pembaruan bergulir (default), hilangkan CodeDeploy informasi. Untuk informasi selengkapnya tentang penerapan Amazon ECS, lihat [jenis penerapan Amazon ECS di](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) Panduan Pengembang Layanan Kontainer *Elastis Amazon*.

**catatan**  
**CodeDeploy**Bidang mungkin disembunyikan di editor visual. Untuk membuat mereka muncul, lihat[Mengapa CodeDeploy bidang hilang dari editor visual?](troubleshooting-workflows.md#troubleshooting-workflows-codedeploy).

UI yang sesuai: Tab konfigurasi/**CodeDeploy AppSpec**

## codedeploy-application
<a name="deploy.action.ecs.codedeploy.application"></a>

(*ECSDeployAction*/Configuration/**codedeploy-application**)

(Diperlukan `codedeploy-appspec` jika disertakan)

Tentukan nama CodeDeploy aplikasi yang ada. Untuk informasi selengkapnya tentang CodeDeploy aplikasi, lihat [Bekerja dengan aplikasi CodeDeploy di](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications.html) *Panduan AWS CodeDeploy Pengguna*.

**UI yang sesuai: Tab konfigurasi/aplikasi CodeDeploy **

## codedeploy-deployment-group
<a name="deploy.action.ecs.codedeploy.deploymentgroup"></a>

(*ECSDeployAction*/Configuration/**codedeploy-deployment-group**)

(Diperlukan `codedeploy-appspec` jika disertakan)

Tentukan nama grup CodeDeploy penyebaran yang ada. Untuk informasi selengkapnya tentang grup CodeDeploy penerapan, lihat [Bekerja dengan grup penerapan CodeDeploy di AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-groups.html) *Panduan Pengguna*.

UI yang sesuai: Tab konfigurasi/grup **CodeDeploy penerapan**

## codedeploy-deployment-description
<a name="deploy.action.ecs.codedeploy.deploymentdescription"></a>

(*ECSDeployAction*/Configuration/**codedeploy-deployment-description**)

(Opsional)

Tentukan deskripsi penerapan yang akan dibuat oleh tindakan ini. Untuk informasi selengkapnya, lihat [Bekerja dengan penerapan CodeDeploy di AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments.html) *Panduan Pengguna*.

UI yang sesuai: Tab konfigurasi/deskripsi **CodeDeploy penerapan**

# Menerapkan ke Amazon EKS dengan alur kerja
<a name="deploy-action-eks"></a>

**Tip**  
Untuk tutorial yang menunjukkan cara menggunakan aksi **cluster Deploy to Kubernetes**, lihat. [Tutorial: Menyebarkan aplikasi ke Amazon EKS](deploy-tut-eks.md)

Bagian ini menjelaskan cara menerapkan aplikasi kontainer ke dalam klaster Kubernetes menggunakan alur kerja. CodeCatalyst Untuk mencapai hal ini, Anda harus menambahkan tindakan **cluster Deploy ke Kubernetes ke** alur kerja Anda. Tindakan ini menyebarkan aplikasi Anda ke klaster Kubernetes yang telah Anda siapkan di Amazon Elastic Kubernetes Service (EKS) menggunakan satu atau beberapa file manifes Kubernetes. Untuk contoh manifes, lihat [deployment.yaml](deploy-tut-eks.md#deploy-tut-eks-source-files-deployment-yml) di[Tutorial: Menyebarkan aplikasi ke Amazon EKS](deploy-tut-eks.md).

[Untuk informasi selengkapnya tentang Kubernetes, lihat Dokumentasi Kubernetes.](https://kubernetes.io/docs/home/)

Untuk informasi selengkapnya tentang Amazon EKS, lihat [Apa itu Amazon EKS?](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) di *Panduan Pengguna Amazon EKS*.

**Topics**
+ [Cara kerja aksi 'Deploy to Kubernetes cluster'](#deploy-action-eks-howitworks)
+ [Gambar runtime yang digunakan oleh aksi 'Deploy to Amazon EKS'](#deploy-action-eks-runtime)
+ [Tutorial: Menyebarkan aplikasi ke Amazon EKS](deploy-tut-eks.md)
+ [Menambahkan aksi 'Deploy to Kubernetes cluster'](deploy-action-eks-adding.md)
+ [Variabel 'Terapkan ke klaster Kubernetes'](deploy-action-eks-variables.md)
+ [Tindakan 'Terapkan ke Kluster Kubernetes' YAML](deploy-action-ref-eks.md)

## Cara kerja aksi 'Deploy to Kubernetes cluster'
<a name="deploy-action-eks-howitworks"></a>

**Kluster Deploy ke Kubernetes berfungsi** sebagai berikut:

1. Saat runtime, action akan menginstal `kubectl` utilitas Kubernetes ke mesin CodeCatalyst komputasi tempat aksi berjalan. Tindakan dikonfigurasi `kubectl` untuk menunjuk ke kluster Amazon EKS yang Anda berikan saat mengonfigurasi tindakan. `kubectl`Utilitas diperlukan untuk menjalankan `kubectl apply` perintah, selanjutnya.

1. Tindakan ini menjalankan `kubectl apply -f my-manifest.yaml` perintah, yang menjalankan instruksi *my-manifest.yaml* untuk menyebarkan aplikasi Anda sebagai satu set kontainer dan pod ke dalam cluster yang dikonfigurasi. *Untuk informasi selengkapnya tentang perintah ini, lihat topik [kubectl apply di Kubernetes](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) Reference Documentation.*

## Gambar runtime yang digunakan oleh aksi 'Deploy to Amazon EKS'
<a name="deploy-action-eks-runtime"></a>

Tindakan **Deploy to Amazon EKS** berjalan pada [gambar November 2022](build-images.md#build.previous-image). Lihat informasi yang lebih lengkap di [Gambar aktif](build-images.md#build-curated-images).

# Tutorial: Menyebarkan aplikasi ke Amazon EKS
<a name="deploy-tut-eks"></a>

Dalam tutorial ini, Anda mempelajari cara menerapkan aplikasi container ke Amazon Elastic Kubernetes Service menggunakan alur kerja Amazon, CodeCatalyst Amazon EKS, dan beberapa layanan lainnya. AWS Aplikasi yang digunakan adalah 'Halo, Dunia\$1 'sederhana situs web yang dibangun di atas gambar Docker server web Apache. Tutorial memandu Anda melalui pekerjaan persiapan yang diperlukan seperti menyiapkan mesin pengembangan dan kluster Amazon EKS, dan kemudian menjelaskan cara membuat alur kerja untuk membangun aplikasi dan menerapkannya ke dalam cluster.

Setelah penerapan awal selesai, tutorial menginstruksikan Anda untuk membuat perubahan pada sumber aplikasi Anda. Perubahan ini menyebabkan image Docker baru dibangun dan didorong ke repositori gambar Docker Anda dengan informasi revisi baru. Revisi baru gambar Docker kemudian diterapkan ke Amazon EKS.

**Tip**  
Alih-alih mengerjakan tutorial ini, Anda dapat menggunakan cetak biru yang melakukan pengaturan Amazon EKS lengkap untuk Anda. Anda harus menggunakan cetak biru **Penerapan Aplikasi EKS**. Untuk informasi selengkapnya, lihat [Membuat proyek dengan cetak biru](projects-create.md#projects-create-console-template).

**Topics**
+ [Prasyarat](#deploy-tut-eks-prereqs)
+ [Langkah 1: Siapkan mesin pengembangan Anda](#deploy-tut-eks-dev-env-create)
+ [Langkah 2: Buat cluster Amazon EKS](#deploy-tut-eks-cluster)
+ [Langkah 3: Buat repositori gambar Amazon ECR](#deploy-tut-eks-ecr)
+ [Langkah 4: Tambahkan file sumber](#deploy-tut-eks-source-files)
+ [Langkah 5: Buat AWS peran](#deploy-tut-eks-roles)
+ [Langkah 6: Tambahkan AWS peran ke CodeCatalyst](#deploy-tut-eks-import-roles)
+ [Langkah 7: Perbarui ConfigMap](#deploy-tut-eks-configmap)
+ [Langkah 8: Buat dan jalankan alur kerja](#deploy-tut-eks-workflow)
+ [Langkah 9: Buat perubahan pada file sumber Anda](#deploy-tut-eks-change)
+ [Bersihkan](#deploy-tut-eks-cleanup)

## Prasyarat
<a name="deploy-tut-eks-prereqs"></a>

Sebelum Anda memulai tutorial ini:
+ Anda memerlukan CodeCatalyst **ruang** Amazon dengan AWS akun yang terhubung. Untuk informasi selengkapnya, lihat [Membuat ruang](spaces-create.md).
+ Di ruang Anda, Anda memerlukan proyek kosong yang disebut:

  ```
  codecatalyst-eks-project
  ```

  Gunakan opsi **Mulai dari awal** untuk membuat proyek ini.

  Untuk informasi selengkapnya, lihat [Membuat proyek kosong di Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ Dalam proyek Anda, Anda memerlukan **repositori CodeCatalyst sumber** kosong yang disebut:

  ```
  codecatalyst-eks-source-repository
  ```

  Untuk informasi selengkapnya, lihat [Simpan dan berkolaborasi pada kode dengan repositori sumber di CodeCatalystSimpan dan berkolaborasi pada kode dengan repositori sumber](source.md).
+ Dalam proyek Anda, Anda memerlukan lingkungan CodeCatalyst CI/CD (bukan **Lingkungan** Dev) yang disebut:

  ```
  codecatalyst-eks-environment
  ```

  Konfigurasikan lingkungan ini sebagai berikut:
  + Pilih jenis apa saja, seperti **Non-produksi**.
  + Hubungkan AWS akun Anda ke sana. 
  + Untuk peran **IAM Default, pilih peran** apa pun. Anda akan menentukan peran yang berbeda nanti.

  Untuk informasi selengkapnya, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md).

## Langkah 1: Siapkan mesin pengembangan Anda
<a name="deploy-tut-eks-dev-env-create"></a>

Langkah pertama dalam tutorial ini adalah mengkonfigurasi mesin pengembangan dengan beberapa alat yang akan Anda gunakan sepanjang tutorial ini. Alat-alat ini adalah:
+ `eksctl`utilitas - untuk pembuatan cluster
+ `kubectl`utilitas — prasyarat untuk `eksctl`
+ yang AWS CLI — juga merupakan prasyarat untuk `eksctl`

Anda dapat menginstal alat ini di mesin pengembangan yang ada jika Anda memilikinya, atau Anda dapat menggunakan Lingkungan CodeCatalyst Dev, yang berbasis Cloud. Manfaat dari CodeCatalyst Dev Environment adalah mudah untuk berputar dan turun, dan terintegrasi dengan CodeCatalyst layanan lain, memungkinkan Anda untuk bekerja melalui tutorial ini dalam langkah-langkah yang lebih sedikit.

Tutorial ini mengasumsikan Anda akan menggunakan CodeCatalyst Dev Environment.

Petunjuk berikut menjelaskan cara cepat untuk meluncurkan Lingkungan CodeCatalyst Dev dan mengonfigurasinya dengan alat yang diperlukan, tetapi jika Anda menginginkan instruksi terperinci, lihat:
+ [Membuat Lingkungan Pengembangan](devenvironment-create.md) dalam panduan ini.
+ [Menginstal kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) di Panduan Pengguna **Amazon EKS**.
+ [Menginstal atau memutakhirkan eksctl di Panduan](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html) Pengguna **Amazon** EKS.
+ [Menginstal atau memperbarui versi terbaru dari AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dalam *Panduan AWS Command Line Interface Pengguna*.

**Untuk meluncurkan Lingkungan Dev**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Arahkan ke proyek Anda,`codecatalyst-eks-project`.

1. Di panel navigasi, pilih **Kode**, lalu pilih **Repositori sumber**. 

1. Pilih nama repositori sumber Anda,. `codecatalyst-eks-source-repository`

1. Di dekat bagian atas pilih **Create Dev Environment**, lalu pilih **AWS Cloud9 (di browser)**.

1. Pastikan bahwa **Work di cabang dan **main** yang ada** dipilih, lalu pilih **Buat**.

   Lingkungan Dev Anda diluncurkan di tab browser baru, dan repositori (`codecatalyst-eks-source-repository`) Anda dikloning ke dalamnya.

**Untuk menginstal dan mengkonfigurasi kubectl**

1. Di terminal Dev Environment, masukkan:

   ```
   curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/linux/amd64/kubectl
   ```

1. Masukkan:

   ```
   chmod +x ./kubectl
   ```

1. Masukkan:

   ```
   mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
   ```

1. Masukkan:

   ```
   echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
   ```

1. Masukkan:

   ```
   kubectl version --short --client
   ```

1. Periksa apakah ada versi yang muncul.

   Anda sekarang telah menginstal`kubectl`.

**Untuk menginstal dan mengkonfigurasi eksctl**
**catatan**  
`eksctl`tidak sepenuhnya diperlukan karena Anda dapat menggunakannya `kubectl` sebagai gantinya. Namun, `eksctl` memiliki manfaat mengotomatisasi banyak konfigurasi cluster, dan oleh karena itu alat yang direkomendasikan untuk tutorial ini.

1. Di terminal Dev Environment, masukkan:

   ```
   curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
   ```

1. Masukkan:

   ```
   sudo cp /tmp/eksctl /usr/bin
   ```

1. Masukkan:

   ```
   eksctl version
   ```

1. Periksa apakah ada versi yang muncul.

   Anda sekarang telah menginstal`eksctl`.

**Untuk memverifikasi bahwa AWS CLI sudah diinstal**

1. Di terminal Dev Environment, masukkan:

   ```
   aws --version
   ```

1. Periksa apakah versi muncul untuk memverifikasi bahwa AWS CLI sudah diinstal.

   Lengkapi prosedur yang tersisa untuk mengkonfigurasi AWS CLI dengan izin yang diperlukan untuk mengakses AWS.

**Untuk mengkonfigurasi AWS CLI**

Anda harus mengonfigurasi tombol akses AWS CLI dengan dan token sesi untuk memberikannya akses ke AWS layanan. Petunjuk berikut menyediakan cara cepat untuk mengonfigurasi kunci dan token, tetapi jika Anda menginginkan instruksi terperinci, lihat [Mengonfigurasi AWS CLI di](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) *Panduan AWS Command Line Interface Pengguna*.

1. Buat pengguna IAM Identity Center, sebagai berikut:

   1. Masuk ke Konsol Manajemen AWS dan buka AWS IAM Identity Center konsol di [https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/).

      (Anda mungkin perlu memilih **Aktifkan** jika Anda belum pernah masuk ke Pusat Identitas IAM sebelumnya.)
**catatan**  
Pastikan Anda masuk menggunakan Akun AWS yang terhubung ke CodeCatalyst ruang Anda. Anda dapat memverifikasi akun mana yang terhubung dengan menavigasi ke ruang Anda dan memilih tab **akun AWS**. Untuk informasi selengkapnya, lihat [Membuat ruang](spaces-create.md).

   1. Pada panel navigasi, silakan pilih **Pengguna**, lalu pilih **Tambahkan pengguna**.

   1. Di **Nama Pengguna**, masukkan:

      ```
      codecatalyst-eks-user
      ```

   1. Di bawah **Kata Sandi**, pilih **Buat kata sandi satu kali yang dapat Anda bagikan dengan pengguna ini**.

   1. Di **Alamat Email** dan **Konfirmasi alamat email**, masukkan alamat email yang belum ada di Pusat Identitas IAM.

   1. Di **Nama depan**, masukkan:

      ```
      codecatalyst-eks-user
      ```

   1. Di **Nama belakang**, masukkan:

      ```
      codecatalyst-eks-user
      ```

   1. Di **Nama tampilan**, simpan:

      ```
      codecatalyst-eks-user codecatalyst-eks-user
      ```

   1. Pilih **Berikutnya**.

   1. Pada halaman **Tambahkan pengguna ke grup**, pilih **Berikutnya**.

   1. Pada halaman **Tinjau dan tambahkan pengguna**, tinjau informasi dan pilih **Tambah pengguna**.

      Kotak dialog **kata sandi satu kali** muncul.

   1. Pilih **Salin** lalu tempel informasi masuk ke file teks. Informasi masuk terdiri dari URL portal AWS akses, nama pengguna, dan kata sandi satu kali.

   1. Pilih **Tutup**.

1. Buat set izin, sebagai berikut:

   1. Di panel navigasi, pilih **Set izin**, lalu pilih **Buat set izin**.

   1. Pilih **Set izin yang telah ditentukan sebelumnya** dan kemudian pilih **AdministratorAccess**. Kebijakan ini memberikan izin penuh untuk semua Layanan AWS. 

   1. Pilih **Berikutnya**.

   1. Dalam **nama set Izin**, hapus `AdministratorAccess` dan masukkan:

      ```
      codecatalyst-eks-permission-set
      ```

   1. Pilih **Berikutnya**.

   1. Pada halaman **Tinjau dan buat**, tinjau informasi dan pilih **Buat**.

1. Tetapkan izin yang disetel ke`codecatalyst-eks-user`, sebagai berikut:

   1. Di panel navigasi, pilih **Akun AWS**, lalu pilih kotak centang di Akun AWS samping tempat Anda masuk saat ini.

   1. Pilih **Tetapkan pengguna atau grup**.

   1. Pilih tab **Pengguna**.

   1. Pilih kotak centang di sebelah`codecatalyst-eks-user`.

   1. Pilih **Berikutnya**.

   1. Pilih kotak centang di sebelah`codecatalyst-eks-permission-set`.

   1. Pilih **Berikutnya**.

   1. Tinjau informasi dan pilih **Kirim**.

      Anda sekarang telah menetapkan `codecatalyst-eks-user` dan `codecatalyst-eks-permission-set` untuk Anda Akun AWS, mengikat mereka bersama-sama.

1. Dapatkan `codecatalyst-eks-user` kunci akses dan token sesi, sebagai berikut:

   1. Pastikan Anda memiliki URL portal AWS akses dan nama pengguna dan kata sandi satu kali untuk`codecatalyst-eks-user`. Anda seharusnya menyalin informasi ini ke editor teks sebelumnya.
**catatan**  
Jika Anda tidak memiliki informasi ini, buka halaman `codecatalyst-eks-user` detail di Pusat Identitas IAM, pilih **Atur ulang kata sandi**, **Hasilkan kata sandi satu kali [**...] , dan **Atur ulang kata sandi** lagi untuk menampilkan informasi di layar.

   1. Keluar dari AWS.

   1. Rekatkan URL portal AWS akses ke bilah alamat browser Anda.

   1. Masuk dengan:
      + **Nama Pengguna**:

        ```
        codecatalyst-eks-user
        ```
      + **Kata sandi**:

        *one-time-password*

   1. Di **Tetapkan kata sandi baru**, masukkan kata sandi baru dan pilih **Atur kata sandi baru**.

      Sebuah **Akun AWS**kotak muncul di layar.

   1. Pilih **Akun AWS**, lalu pilih nama yang Akun AWS Anda tetapkan `codecatalyst-eks-user` pengguna dan set izin.

   1. Di samping`codecatalyst-eks-permission-set`, pilih **Baris perintah atau akses terprogram**.

   1. Salin perintah di tengah halaman. Mereka terlihat mirip dengan yang berikut:

      ```
      export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" 
      export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" 
      export AWS_SESSION_TOKEN="session-token"
      ```

      ... di *session-token* mana string acak panjang.

1. Tambahkan kunci akses dan token sesi ke AWS CLI, sebagai berikut:

   1. Kembali ke Lingkungan CodeCatalyst Pengembang Anda.

   1. Pada prompt terminal, tempel perintah yang Anda salin. Tekan Enter.

      Anda sekarang telah mengonfigurasi tombol akses AWS CLI dengan dan token sesi. Anda sekarang dapat menggunakan AWS CLI untuk menyelesaikan tugas-tugas yang diperlukan oleh tutorial ini.
**penting**  
Jika sewaktu-waktu selama tutorial ini Anda melihat pesan yang mirip dengan:  
`Unable to locate credentials. You can configure credentials by running "aws configure".`  
Atau:  
`ExpiredToken: The security token included in the request is expired`  
... itu karena AWS CLI sesi Anda telah kedaluwarsa. Dalam hal ini, *jangan* jalankan `aws configure` perintah. Sebagai gantinya, gunakan instruksi pada langkah 4 dari prosedur ini yang dimulai dengan `Obtain codecatalyst-eks-user's access key and session token` untuk menyegarkan sesi Anda.

## Langkah 2: Buat cluster Amazon EKS
<a name="deploy-tut-eks-cluster"></a>

Di bagian ini, Anda membuat cluster di Amazon EKS. Petunjuk di bawah ini menjelaskan cara cepat untuk membuat cluster menggunakan`eksctl`, tetapi jika Anda ingin petunjuk rinci, lihat:
+ [Memulai dengan eksctl di Panduan](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html) Pengguna **Amazon** EKS

  atau
+ [Memulai konsol dan AWS CLI](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html) di **Panduan Pengguna Amazon EKS** (topik ini memberikan `kubectl` instruksi untuk membuat cluster) 

**catatan**  
[Cluster pribadi](https://docs.aws.amazon.com/eks/latest/userguide/private-clusters.html) tidak didukung oleh CodeCatalyst integrasi dengan Amazon EKS.

**Sebelum Anda memulai**

Pastikan Anda telah menyelesaikan tugas-tugas berikut di mesin pengembangan Anda:
+ Menginstal `eksctl` utilitas.
+ Menginstal `kubectl` utilitas.
+ Menginstal AWS CLI dan mengkonfigurasinya dengan kunci akses dan token sesi.

Untuk informasi tentang cara menyelesaikan tugas-tugas ini, lihat[Langkah 1: Siapkan mesin pengembangan Anda](#deploy-tut-eks-dev-env-create).

**Untuk membuat klaster DB**
**penting**  
Jangan gunakan antarmuka pengguna layanan Amazon EKS untuk membuat klaster karena klaster tidak akan dikonfigurasi dengan benar. Gunakan `eksctl` utilitas, seperti yang dijelaskan dalam langkah-langkah berikut.

1. Pergi ke Lingkungan Pengembang Anda.

1. Buat cluster dan node:

   ```
   eksctl create cluster --name codecatalyst-eks-cluster --region us-west-2
   ```

   Di mana:
   + *codecatalyst-eks-cluster*diganti dengan nama yang ingin Anda berikan pada cluster Anda.
   + *us-west-2*diganti dengan wilayah Anda.

   Setelah 10-20 menit, pesan yang mirip dengan yang berikut ini muncul: 

   `EKS cluster "codecatalyst-eks-cluster" in "us-west-2" region is ready`
**catatan**  
Anda akan melihat beberapa `waiting for CloudFormation stack` pesan saat AWS membuat cluster Anda. Ini yang diharapkan.

1. Verifikasi bahwa klaster Anda berhasil dibuat:

   ```
   kubectl cluster-info
   ```

   Anda akan melihat pesan yang mirip dengan berikut ini, yang menunjukkan pembuatan cluster yang berhasil:

   ```
   Kubernetes master is running at https://long-string.gr7.us-west-2.eks.amazonaws.com
   CoreDNS is running at https://long-string.gr7.us-west-2.eks.amazonaws.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
   ```

## Langkah 3: Buat repositori gambar Amazon ECR
<a name="deploy-tut-eks-ecr"></a>

Di bagian ini, Anda membuat repositori gambar pribadi di Amazon Elastic Container Registry (Amazon ECR) Registry ECR). Repositori ini menyimpan gambar Docker untuk tutorial.

Untuk informasi selengkapnya tentang Amazon ECR, lihat *Panduan Pengguna Amazon Elastic Container Registry*.

**Untuk membuat repositori gambar di Amazon ECR**

1. Pergi ke Lingkungan Pengembang Anda.

1. Buat repositori kosong di Amazon ECR:

   ```
   aws ecr create-repository --repository-name codecatalyst-eks-image-repo
   ```

   Ganti *codecatalyst-eks-image-repo* dengan nama yang ingin Anda berikan pada repositori Amazon ECR.

   Tutorial ini mengasumsikan Anda menamai `codecatalyst-eks-image-repo` repositori Anda.

1. Tampilkan detail repositori Amazon ECR:

   ```
   aws ecr describe-repositories \
         --repository-names codecatalyst-eks-image-repo
   ```

1. Perhatikan `“repositoryUri”:` nilainya, misalnya,`111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-eks-image-repo`.

   Anda membutuhkannya nanti saat menambahkan repositori ke alur kerja Anda. 

## Langkah 4: Tambahkan file sumber
<a name="deploy-tut-eks-source-files"></a>

Di bagian ini, Anda menambahkan file sumber aplikasi ke repositori sumber Anda ()`codecatalyst-eks-source-repository`. Mereka terdiri dari:
+ Sebuah `index.html` file - Menampilkan 'Halo, Dunia\$1 ' pesan di browser.
+ A Dockerfile - Menjelaskan gambar dasar yang akan digunakan untuk image Docker Anda dan perintah Docker untuk menerapkannya.
+ `deployment.yaml`File — Manifes Kubernetes yang mendefinisikan layanan dan penerapan Kubernetes. 

Struktur folder adalah sebagai berikut:

```
|— codecatalyst-eks-source-repository
   |— Kubernetes
      |— deployment.yaml
   |— public-html
   |  |— index.html
   |— Dockerfile
```

**Topics**
+ [index.html](#deploy-tut-eks-source-files-index)
+ [Dockerfile](#deploy-tut-eks-source-files-dockerfile)
+ [deployment.yaml](#deploy-tut-eks-source-files-deployment-yml)

### index.html
<a name="deploy-tut-eks-source-files-index"></a>

`index.html`File tersebut menampilkan 'Hello, World\$1 ' pesan di browser. 

**Untuk menambahkan file index.html**

1. Pergi ke Lingkungan Pengembang Anda.

1. Di`codecatalyst-eks-source-repository`, buat folder bernama`public-html`.

1. Di`/public-html`, buat file yang disebut `index.html` dengan konten berikut:

   ```
   <html>
     <head>
       <title>Hello World</title>
       <style>
         body {
         background-color: black;
         text-align: center;
         color: white;
         font-family: Arial, Helvetica, sans-serif;
         }  
       </style>
     </head>
     <body>
       <h1>Hello, World!</h1>
     </body>
   </html>
   ```

1. Pada prompt terminal, masukkan:

   ```
   cd /projects/codecatalyst-eks-source-repository
   ```

1. Tambahkan, komit, dan dorong:

   ```
   git add .
   git commit -m "add public-html/index.html"
   git push
   ```

   Ditambahkan ke repositori Anda dalam folder. `index.html` `public-html` 

### Dockerfile
<a name="deploy-tut-eks-source-files-dockerfile"></a>

Dockerfile menjelaskan image Docker dasar yang akan digunakan dan perintah Docker untuk diterapkan padanya. Untuk informasi selengkapnya tentang Dockerfile, lihat Referensi [Dockerfile](https://docs.docker.com/engine/reference/builder/).

Dockerfile yang ditentukan di sini menunjukkan untuk menggunakan image dasar Apache 2.4 (). `httpd` Ini juga mencakup instruksi untuk menyalin file sumber yang dipanggil `index.html` ke folder di server Apache yang melayani halaman web. `EXPOSE`Instruksi di Dockerfile memberi tahu Docker bahwa wadah mendengarkan pada port 80.

**Untuk menambahkan Dockerfile**

1. Di`codecatalyst-eks-source-repository`, buat file yang disebut `Dockerfile` dengan konten berikut:

   ```
   FROM httpd:2.4
   COPY ./public-html/index.html /usr/local/apache2/htdocs/index.html
   EXPOSE 80
   ```

   Jangan sertakan ekstensi file.
**penting**  
Dockerfile harus berada di folder root repositori Anda. `Docker build`Perintah alur kerja mengharapkannya ada di sana.

1. Tambahkan, komit, dan dorong:

   ```
   git add .
   git commit -m "add Dockerfile"
   git push
   ```

   Dockerfile ditambahkan ke repositori Anda.

### deployment.yaml
<a name="deploy-tut-eks-source-files-deployment-yml"></a>

Di bagian ini, Anda menambahkan `deployment.yaml` file ke repositori Anda. `deployment.yaml`File ini adalah manifes Kubernetes yang mendefinisikan dua tipe atau *jenis* resource Kubernetes untuk dijalankan: sebuah 'service' dan 'deployment'.
+ 'Layanan' menyebarkan penyeimbang beban ke Amazon EC2. Load balancer memberi Anda URL publik yang menghadap ke Internet dan port standar (port 80) yang dapat Anda gunakan untuk menelusuri 'Hello, World\$1 ' aplikasi. 
+ 'Deployment 'menyebarkan tiga pod, dan setiap pod akan berisi kontainer Docker dengan 'Hello, World\$1' aplikasi. Ketiga pod tersebut di-deploy ke node yang dibuat saat Anda membuat cluster.

Manifes dalam tutorial ini singkat; namun, manifes dapat mencakup sejumlah tipe sumber daya Kubernetes, seperti pod, job, ingresses, dan kebijakan jaringan. Selanjutnya, Anda dapat menggunakan beberapa file manifes jika penerapan Anda rumit.

**Untuk menambahkan berkas deployment.yaml**

1. Di`codecatalyst-eks-source-repository`, buat folder bernama`Kubernetes`.

1. Di`/Kubernetes`, buat file yang disebut `deployment.yaml` dengan konten berikut:

   ```
   apiVersion: v1
   kind: Service
   metadata:
     name: my-service
     labels:
       app: my-app
   spec:
     type: LoadBalancer
     selector:
       app: my-app
     ports:
       - protocol: TCP
         port: 80
         targetPort: 80
   ---
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     name: my-deployment
     labels:
       app: my-app
   spec:
     replicas: 3
     selector:
       matchLabels:
         app: my-app
     template:
       metadata:
         labels:
           app: my-app
       spec:
         containers:
         - name: codecatalyst-eks-container
           # The $REPOSITORY_URI and $IMAGE_TAG placeholders will be replaced by actual values supplied by the build action in your workflow
           image: $REPOSITORY_URI:$IMAGE_TAG
           ports:
           - containerPort: 80
   ```

1. Tambahkan, komit, dan dorong:

   ```
   git add .
   git commit -m "add Kubernetes/deployment.yaml"
   git push
   ```

   `deployment.yaml`File ditambahkan ke repositori Anda dalam folder bernama. `Kubernetes` 

Anda sekarang telah menambahkan semua file sumber Anda.

Luangkan waktu sejenak untuk memeriksa ulang pekerjaan Anda dan pastikan Anda menempatkan semua file di folder yang benar. Struktur folder adalah sebagai berikut:

```
|— codecatalyst-eks-source-repository
   |— Kubernetes
      |— deployment.yaml
   |— public-html
   |  |— index.html
   |— Dockerfile
```

## Langkah 5: Buat AWS peran
<a name="deploy-tut-eks-roles"></a>

Di bagian ini, Anda membuat peran AWS IAM yang dibutuhkan CodeCatalyst alur kerja Anda agar berfungsi. Peran ini adalah:
+ **Peran build** - Memberikan izin tindakan CodeCatalyst build (dalam alur kerja) untuk mengakses AWS akun Anda dan menulis ke Amazon ECR dan Amazon EC2.
+ **Deploy role** — Memberikan izin tindakan **klaster CodeCatalyst Deploy ke Kubernetes** (dalam alur kerja) untuk mengakses akun Anda dan Amazon EKS. AWS 

Untuk informasi selengkapnya tentang peran IAM, lihat [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) di *AWS Identity and Access Management Panduan Pengguna*.

**catatan**  
Untuk menghemat waktu, Anda dapat membuat satu peran, yang disebut `CodeCatalystWorkflowDevelopmentRole-spaceName` peran, alih-alih dua peran yang tercantum sebelumnya. Untuk informasi selengkapnya, lihat [Membuat **CodeCatalystWorkflowDevelopmentRole-*spaceName***peran untuk akun dan ruang Anda](ipa-iam-roles.md#ipa-iam-roles-service-create). Pahami bahwa `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut memiliki izin yang sangat luas yang dapat menimbulkan risiko keamanan. Kami menyarankan Anda hanya menggunakan peran ini dalam tutorial dan skenario di mana keamanan kurang menjadi perhatian. Tutorial ini mengasumsikan Anda membuat dua peran yang tercantum sebelumnya.

Untuk membuat peran build dan deploy, selesaikan rangkaian prosedur berikut.

**1. Untuk membuat kebijakan kepercayaan untuk kedua peran**

1. Pergi ke Lingkungan Pengembang Anda.

1. Di `Cloud9-long-string` direktori, buat file yang disebut `codecatalyst-eks-trust-policy.json` dengan konten berikut:

**2. Untuk membuat kebijakan build untuk peran build**
+ Di `Cloud9-long-string` direktori, buat file yang disebut `codecatalyst-eks-build-policy.json` dengan konten berikut:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "ecr:*",
                  "ec2:*"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
**catatan**  
Pertama kali peran digunakan untuk menjalankan tindakan alur kerja, gunakan wildcard dalam pernyataan kebijakan sumber daya dan kemudian cakup kebijakan dengan nama sumber daya setelah tersedia.  

  ```
  "Resource": "*"
  ```

**3. Untuk membuat kebijakan penerapan untuk peran penerapan**
+ Di `Cloud9-long-string` direktori, buat file yang disebut `codecatalyst-eks-deploy-policy.json` dengan konten berikut:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "eks:DescribeCluster",
                  "eks:ListClusters"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
**catatan**  
Pertama kali peran digunakan untuk menjalankan tindakan alur kerja, gunakan wildcard dalam pernyataan kebijakan sumber daya dan kemudian cakup kebijakan dengan nama sumber daya setelah tersedia.  

  ```
  "Resource": "*"
  ```

Anda sekarang telah menambahkan tiga dokumen kebijakan ke Lingkungan Pengembang Anda. Struktur direktori Anda sekarang terlihat seperti ini:

```
|— Cloud9-long-string
   |— .c9
   |— codecatalyst-eks-source-repository
      |— Kubernetes
      |— public-html
      |— Dockerfile
   codecatalyst-eks-build-policy.json
   codecatalyst-eks-deploy-policy.json
   codecatalyst-eks-trust-policy.json
```

**4. Untuk menambahkan kebijakan build ke AWS**

1. Di terminal Dev Environment, masukkan:

   ```
   cd /projects
   ```

1. Masukkan:

   ```
   aws iam create-policy \
       --policy-name codecatalyst-eks-build-policy \
       --policy-document file://codecatalyst-eks-build-policy.json
   ```

1. Tekan **Enter**.

1. Dalam output perintah, perhatikan `"arn":` nilainya, misalnya,`arn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy`. Anda membutuhkan ARN ini nanti.

**5. Untuk menambahkan kebijakan penerapan ke AWS**

1. Masukkan:

   ```
   aws iam create-policy \
       --policy-name codecatalyst-eks-deploy-policy \
       --policy-document file://codecatalyst-eks-deploy-policy.json
   ```

1. Tekan **Enter**.

1. Dalam output perintah, perhatikan `"arn":` nilai kebijakan penerapan, misalnya,`arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy`. Anda membutuhkan ARN ini nanti.

**6. Untuk membuat peran build**

1. Masukkan: 

   ```
   aws iam create-role \
         --role-name codecatalyst-eks-build-role \
         --assume-role-policy-document file://codecatalyst-eks-trust-policy.json
   ```

1. Tekan **Enter**.

1. Masukkan:

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-eks-build-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy
   ```

   *arn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy*Dimana diganti dengan ARN dari kebijakan build yang Anda catat sebelumnya.

1. Tekan **Enter**.

1. Pada prompt terminal, masukkan:

   ```
   aws iam get-role \
         --role-name codecatalyst-eks-build-role
   ```

1. Tekan **Enter**.

1. Perhatikan `"Arn":` nilai peran, misalnya,`arn:aws:iam::111122223333:role/codecatalyst-eks-build-role`. Anda membutuhkan ARN ini nanti.

**7. Untuk membuat peran penerapan**

1. Masukkan:

   ```
   aws iam create-role \
         --role-name codecatalyst-eks-deploy-role \
         --assume-role-policy-document file://codecatalyst-eks-trust-policy.json
   ```

1. Tekan **Enter**.

1. Masukkan:

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-eks-deploy-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy
   ```

   *arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy*Dimana diganti dengan ARN dari kebijakan penerapan yang Anda catat sebelumnya.

1. Tekan **Enter**.

1. Masukkan:

   ```
   aws iam get-role \
         --role-name codecatalyst-eks-deploy-role
   ```

1. Tekan **Enter**.

1. Perhatikan `"Arn":` nilai peran, misalnya,`arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role`. Anda membutuhkan ARN ini nanti.

Anda sekarang telah membuat peran build dan deploy dan mencatatnya ARNs.

## Langkah 6: Tambahkan AWS peran ke CodeCatalyst
<a name="deploy-tut-eks-import-roles"></a>

Pada langkah ini, Anda menambahkan build role (`codecatalyst-eks-build-role`) dan deploy role (`codecatalyst-eks-deploy-role`) ke Akun AWS yang Anda sambungkan ke ruang Anda. Ini membuat peran tersedia untuk digunakan dalam alur kerja Anda.

**Untuk menambahkan peran build dan deploy ke Akun AWS**

1. Di CodeCatalyst konsol, arahkan ke ruang Anda.

1. Di bagian atas, pilih **Pengaturan**.

1. Di panel navigasi, pilih **AWS akun**. Daftar akun muncul.

1. Di kolom **nama CodeCatalyst tampilan Amazon**, salin nama tampilan Akun AWS tempat Anda membuat peran build dan deploy. (Mungkin nomor.) Anda akan membutuhkan nilai ini nanti, saat membuat alur kerja Anda.

1. Pilih nama tampilan.

1. Pilih **Kelola peran dari konsol AWS manajemen**.

   **Peran Tambahkan IAM ke halaman CodeCatalyst ruang Amazon** muncul. Anda mungkin perlu masuk untuk mengakses halaman.

1. Pilih **Tambahkan peran yang sudah Anda buat di IAM**.

   Daftar drop-down muncul. Daftar ini menampilkan peran build dan deploy, dan peran IAM lainnya dengan kebijakan kepercayaan yang mencakup prinsip `codecatalyst-runner.amazonaws.com` dan `codecatalyst.amazonaws.com` layanan.

1. Dari daftar drop-down, tambahkan:
   + `codecatalyst-eks-build-role`
   + `codecatalyst-eks-deploy-role`
**catatan**  
Jika Anda melihat`The security token included in the request is invalid`, itu mungkin karena Anda tidak memiliki izin yang tepat. Untuk memperbaiki masalah ini, keluar dari AWS sebagai masuk kembali dengan AWS akun yang Anda gunakan saat membuat CodeCatalyst ruang.

1. Kembali ke CodeCatalyst konsol dan segarkan halaman.

   Peran build dan deploy sekarang akan muncul di bawah peran **IAM**.

   Peran ini sekarang tersedia untuk digunakan dalam CodeCatalyst alur kerja.

## Langkah 7: Perbarui ConfigMap
<a name="deploy-tut-eks-configmap"></a>

Anda harus menambahkan peran deploy yang Anda buat ke `ConfigMap` file Kubernetes [Langkah 5: Buat AWS peran](#deploy-tut-eks-roles) untuk memberikan tindakan **klaster Deploy ke Kubernetes (dalam alur kerja Anda) kemampuan untuk mengakses dan berinteraksi dengan klaster** Anda. Anda dapat menggunakan `eksctl` atau `kubectl` melakukan tugas ini.

**Untuk mengkonfigurasi file Kubernetes ConfigMap menggunakan eksctl**
+ Di terminal Dev Environment, masukkan: 

  ```
  eksctl create iamidentitymapping --cluster codecatalyst-eks-cluster --arn arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role --group system:masters --username codecatalyst-eks-deploy-role --region us-west-2
  ```

  Di mana:
  + *codecatalyst-eks-cluster*diganti dengan nama cluster cluster Amazon EKS.
  +  *arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role*diganti dengan ARN dari peran penerapan yang Anda buat. [Langkah 5: Buat AWS peran](#deploy-tut-eks-roles)
  +  *codecatalyst-eks-deploy-role*(di sebelah`--username`) diganti dengan nama peran penerapan yang Anda buat. [Langkah 5: Buat AWS peran](#deploy-tut-eks-roles)
**catatan**  
Jika Anda memutuskan untuk tidak membuat peran penerapan, ganti *codecatalyst-eks-deploy-role* dengan nama `CodeCatalystWorkflowDevelopmentRole-spaceName` peran. Untuk informasi selengkapnya tentang peran ini, silakan lihat [Langkah 5: Buat AWS peran](#deploy-tut-eks-roles).
  +  *us-west-2*diganti dengan wilayah Anda.

  Untuk detail tentang perintah ini, lihat [Mengelola pengguna dan peran IAM](https://eksctl.io/usage/iam-identity-mappings/).

  Pesan yang mirip dengan berikut ini muncul:

  ```
  2023-06-09 00:58:29 [ℹ]  checking arn arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role against entries in the auth ConfigMap
  2023-06-09 00:58:29 [ℹ]  adding identity "arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role" to auth ConfigMap
  ```

**Untuk mengkonfigurasi file Kubernetes ConfigMap menggunakan kubectl**

1. Di terminal Dev Environment, masukkan:

   ```
   kubectl edit configmap -n kube-system aws-auth
   ```

    ConfigMap File muncul di layar.

1. Tambahkan teks dengan huruf miring merah:

   ```
   # Please edit the object below. Lines beginning with a '#' will be ignored,
   # and an empty file will abort the edit. If an error occurs while saving this file will be
   # reopened with the relevant failures.
   #
   apiVersion: v1
   data:
     mapRoles: |
       - groups:
         - system:bootstrappers
         - system:nodes
         rolearn: arn:aws:iam::111122223333:role/eksctl-codecatalyst-eks-cluster-n-NodeInstanceRole-16BC456ME6YR5
         username: system:node:{{EC2PrivateDNSName}}
       - groups:
         - system:masters
         rolearn: arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role
         username: codecatalyst-eks-deploy-role
     mapUsers: |
       []
   kind: ConfigMap
   metadata:
     creationTimestamp: "2023-06-08T19:04:39Z"
     managedFields:
     ...
   ```

   Di mana:
   +  *arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role*diganti dengan ARN dari peran penerapan yang Anda buat. [Langkah 5: Buat AWS peran](#deploy-tut-eks-roles) 
   +  *codecatalyst-eks-deploy-role*(di sebelah`username:`) diganti dengan nama peran penerapan yang Anda buat. [Langkah 5: Buat AWS peran](#deploy-tut-eks-roles)
**catatan**  
Jika Anda memutuskan untuk tidak membuat peran penerapan, ganti *codecatalyst-eks-deploy-role* dengan nama `CodeCatalystWorkflowDevelopmentRole-spaceName` peran. Untuk informasi selengkapnya tentang peran ini, silakan lihat [Langkah 5: Buat AWS peran](#deploy-tut-eks-roles).

   Untuk detailnya, lihat [Mengaktifkan akses utama IAM ke klaster Anda](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) di **Panduan Pengguna Amazon EKS**.

Anda sekarang telah memberikan peran deploy, dan dengan ekstensi tindakan **Deploy to Amazon EKS**, `system:masters` izin ke klaster Kubernetes Anda.

## Langkah 8: Buat dan jalankan alur kerja
<a name="deploy-tut-eks-workflow"></a>

Pada langkah ini, Anda membuat alur kerja yang mengambil file sumber Anda, membuatnya menjadi image Docker, dan kemudian menyebarkan gambar ke pod pohon di cluster Amazon EKS 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 (`BuildBackend`) — Pada pemicu, aksi membangun image Docker menggunakan Dockerfile dan mendorong gambar ke Amazon ECR. Tindakan build juga memperbarui `$IMAGE_TAG` variabel `$REPOSITORY_URI` dan dalam `deployment.yaml` file dengan nilai yang benar, dan kemudian membuat artefak keluaran file ini dan yang lainnya di `Kubernetes` folder. Dalam tutorial ini, satu-satunya file dalam `Kubernetes` folder adalah `deployment.yaml` tetapi Anda dapat menyertakan lebih banyak file. Artefak digunakan sebagai input untuk tindakan penyebaran, yang berikutnya.

  Untuk informasi selengkapnya tentang tindakan build, lihat[Membangun dengan alur kerja](build-workflow-actions.md).
+ Tindakan penerapan (`DeployToEKS`) — Setelah menyelesaikan aksi build, tindakan deploy mencari artefak keluaran yang dihasilkan oleh build action (`Manifests`), dan menemukan `deployment.yaml` file di dalamnya. Tindakan kemudian mengikuti instruksi dalam `deployment.yaml` file untuk menjalankan tiga pod—masing-masing berisi satu 'Hello, World\$1 ' Kontainer Docker—di dalam kluster Amazon EKS Anda. 

**Untuk membuat alur kerja**

1. Pergi ke CodeCatalyst konsol.

1. Arahkan ke proyek Anda (`codecatalyst-eks-project`).

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih **Buat alur kerja**.

1. Untuk **repositori Sumber, pilih**. `codecatalyst-eks-source-repository`

1. Untuk **Cabang**, pilih`main`.

1. Pilih **Buat**.

1. Hapus kode sampel YAMAL.

1. Tambahkan kode YAMAL berikut untuk membuat file definisi alur kerja baru:
**catatan**  
Untuk informasi selengkapnya tentang file definisi alur kerja, lihat[Alur kerja definisi YAMAL](workflow-reference.md).
**catatan**  
Dalam kode YAMAL berikut, Anda dapat menghilangkan `Connections:` bagian jika Anda mau. Jika Anda menghilangkan bagian ini, Anda harus memastikan bahwa peran yang ditentukan dalam bidang **peran IAM default** di lingkungan Anda mencakup izin dan kebijakan kepercayaan dari kedua peran yang dijelaskan. [Langkah 6: Tambahkan AWS peran ke CodeCatalyst](#deploy-tut-eks-import-roles) Untuk informasi selengkapnya tentang menyiapkan lingkungan dengan peran IAM default, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-eks-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     BuildBackend:
       Identifier: aws/build@v1
       Environment:
         Name: codecatalyst-eks-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-eks-build-role
       Inputs:
         Sources:
           - WorkflowSource
         Variables:
           - Name: REPOSITORY_URI
             Value: 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-eks-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-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-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
           # Replace the variables in deployment.yaml
           - Run: find Kubernetes/ -type f | xargs sed -i "s|\$REPOSITORY_URI|$REPOSITORY_URI|g"
           - Run: find Kubernetes/ -type f | xargs sed -i "s|\$IMAGE_TAG|$IMAGE_TAG|g"
           - Run: cat Kubernetes/*
           # The output artifact will be a zip file that contains Kubernetes manifest files.
       Outputs:
         Artifacts:
           - Name: Manifests
             Files: 
               - "Kubernetes/*"
     DeployToEKS:
       DependsOn: 
         - BuildBackend
       Identifier: aws/kubernetes-deploy@v1
       Environment:
         Name: codecatalyst-eks-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-eks-deploy-role
       Inputs:
         Artifacts:
           - Manifests
       Configuration:
         Namespace: default
         Region: us-west-2
         Cluster: codecatalyst-eks-cluster
         Manifests: Kubernetes/
   ```

   Pada kode sebelumnya, ganti:
   + Kedua contoh *codecatalyst-eks-environment* dengan nama lingkungan yang Anda buat. [Prasyarat](#deploy-tut-eks-prereqs)
   + Kedua contoh *codecatalyst-account-connection* dengan nama tampilan koneksi akun Anda. Nama tampilan mungkin nomor. Untuk informasi selengkapnya, lihat [Langkah 6: Tambahkan AWS peran ke CodeCatalyst](#deploy-tut-eks-import-roles).
   + *codecatalyst-eks-build-role*dengan nama peran build yang Anda buat[Langkah 5: Buat AWS peran](#deploy-tut-eks-roles).
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-eks-image-repo*(di `Value:` properti) dengan URI dari repositori Amazon ECR yang Anda buat. [Langkah 3: Buat repositori gambar Amazon ECR](#deploy-tut-eks-ecr)
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com*(dalam `Run: aws ecr` perintah) dengan URI dari repositori Amazon ECR tanpa akhiran gambar (). `/codecatalyst-eks-image-repo`
   + *codecatalyst-eks-deploy-role*dengan nama peran penerapan yang Anda buat. [Langkah 5: Buat AWS peran](#deploy-tut-eks-roles)
   + Kedua contoh *us-west-2* dengan kode AWS Wilayah Anda. Untuk daftar kode Region, lihat [Titik akhir Regional](https://docs.aws.amazon.com/general/latest/gr/rande.html) di. *Referensi Umum AWS*
**catatan**  
Jika Anda memutuskan untuk tidak membuat peran build dan deploy, ganti *codecatalyst-eks-build-role* dan *codecatalyst-eks-deploy-role* dengan nama `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut. Untuk informasi selengkapnya tentang peran ini, silakan lihat [Langkah 5: Buat AWS peran](#deploy-tut-eks-roles).

1. (Opsional) Pilih **Validasi** untuk memastikan bahwa kode YAMM valid sebelum melakukan.

1. Pilih **Terapkan**.

1. Dalam kotak dialog **Commit workflow**, masukkan yang berikut ini:

   1. Untuk **pesan Commit**, hapus teks dan masukkan:

      ```
      Add first workflow
      ```

   1. Untuk **Repositori, pilih**. `codecatalyst-eks-source-repository`

   1. Untuk **nama cabang**, pilih main.

   1. Pilih **Terapkan**.

   Anda sekarang telah membuat alur kerja. Jalankan alur kerja dimulai secara otomatis karena pemicu yang ditentukan di bagian atas alur kerja. Khususnya, ketika Anda melakukan (dan mendorong) `workflow.yaml` file ke repositori sumber Anda, pemicu memulai alur kerja dijalankan.

**Untuk melihat alur kerja, jalankan kemajuan**

1. **Di panel navigasi CodeCatalyst konsol, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih alur kerja yang baru saja Anda buat,`codecatalyst-eks-workflow`.

1. Pilih **BuildBackend**untuk melihat kemajuan pembangunan.

1. Pilih **DeployToEKS** untuk melihat kemajuan penerapan.

   Untuk informasi selengkapnya tentang melihat detail run, lihat[Melihat status dan detail alur kerja](workflows-view-run.md).

**Untuk memverifikasi penyebaran**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di sebelah kiri, dekat bagian bawah, pilih **Load Balancers**.

1. Pilih load balancer yang dibuat sebagai bagian dari penerapan Kubernetes Anda. Jika Anda tidak yakin penyeimbang beban mana yang harus dipilih, cari tag berikut di bawah tab **Tag:**
   + `kubernetes.io/service-name`
   + `kubernetes.io/cluster/ekstutorialcluster`

1. Dengan penyeimbang beban yang benar dipilih, pilih tab **Deskripsi**.

1. Salin dan tempel nilai **nama DNS** ke bilah alamat browser Anda.

   'Halo, Dunia\$1 ' halaman web muncul di browser Anda, menunjukkan bahwa Anda berhasil menerapkan aplikasi Anda.

## Langkah 9: Buat perubahan pada file sumber Anda
<a name="deploy-tut-eks-change"></a>

Di bagian ini, Anda membuat perubahan pada `index.html` file di repositori sumber Anda. Perubahan ini menyebabkan alur kerja membuat image Docker baru, menandainya dengan ID komit, mendorongnya ke Amazon ECR, dan menerapkannya ke Amazon ECS. 

**Untuk mengubah index.html**

1. Pergi ke Lingkungan Pengembang Anda.

1. Pada prompt terminal, ubah ke repositori sumber Anda:

   ```
   cd /projects/codecatalyst-eks-source-repository
   ```

1.  Tarik perubahan alur kerja terbaru:

   ```
   git pull
   ```

1. Buka `codecatalyst-eks-source-repository/public-html/index.html`.

1. Pada baris 14, ubah `Hello, World!` teks menjadi`Tutorial complete!`.

1. Tambahkan, komit, dan dorong:

   ```
   git add .
   git commit -m "update index.html title"
   git push
   ```

   Jalankan alur kerja dimulai secara otomatis.

1. (Opsional) Masukkan:

   ```
   git show HEAD
   ```

   Perhatikan ID komit untuk `index.html` perubahan tersebut. ID komit ini akan ditandai ke image Docker yang akan digunakan oleh alur kerja yang baru saja Anda mulai.

1. Perhatikan kemajuan penerapan:

   1. **Di CodeCatalyst konsol, di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

   1. Pilih `codecatalyst-eks-workflow` untuk melihat proses terbaru.

   1. Pilih **BuildBackend**, dan **DeployToEKS** untuk melihat alur kerja berjalan kemajuan.

1. Verifikasi bahwa aplikasi Anda telah diperbarui, sebagai berikut:

   1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

   1. Di sebelah kiri, dekat bagian bawah, pilih **Load Balancers**.

   1. Pilih load balancer yang dibuat sebagai bagian dari penerapan Kubernetes Anda.

   1. Salin dan tempel nilai **nama DNS** ke bilah alamat browser Anda.

      'Tutorial Lengkap\$1 ' halaman web muncul di browser Anda, menunjukkan bahwa Anda berhasil menerapkan revisi baru aplikasi Anda.

1. (Opsional) Di AWS, alihkan ke konsol Amazon ECR dan verifikasi bahwa image Docker baru ditandai dengan ID komit dari langkah 7 prosedur ini.

## Bersihkan
<a name="deploy-tut-eks-cleanup"></a>

Anda harus membersihkan lingkungan Anda sehingga Anda tidak dikenakan biaya yang tidak perlu untuk penyimpanan dan sumber daya komputasi yang digunakan oleh tutorial ini.

**Untuk membersihkan**

1. Hapus klaster Anda:

   1. Di terminal Dev Environment, masukkan:

     ```
     eksctl delete cluster --region=us-west-2 --name=codecatalyst-eks-cluster
     ```

     Di mana:
     + *us-west-2*diganti dengan wilayah Anda.
     + *codecatalyst-eks-cluster*diganti dengan nama cluster yang Anda buat.

     Setelah 5-10 menit, cluster dan sumber daya terkait dihapus, termasuk namun tidak terbatas pada CloudFormation tumpukan, grup node (di Amazon EC2), dan penyeimbang beban.
**penting**  
Jika `eksctl delete cluster` perintah tidak berfungsi, Anda mungkin perlu me-refresh kredensyal atau AWS kredensyal Anda`kubectl`. Jika Anda tidak yakin kredensyal mana yang akan disegarkan, segarkan kredensialnya terlebih AWS dahulu. Untuk menyegarkan AWS kredensyal Anda, lihat. [Bagaimana cara memperbaiki kesalahan “Tidak dapat menemukan kredensil” dan “ExpiredToken”?](troubleshooting-workflows.md#troubleshooting-workflows-auth-errors-eks) Untuk menyegarkan `kubectl` kredensyal Anda, lihat. [Bagaimana cara memperbaiki kesalahan “Tidak dapat terhubung ke server”?](troubleshooting-workflows.md#troubleshooting-workflows-unable-connect-eks)

1. Di AWS konsol, bersihkan sebagai berikut:

   1. Di Amazon ECR, hapus`codecatalyst-eks-image-repo`.

   1. Di Pusat Identitas IAM, hapus:

      1. `codecatalyst-eks-user`

      1. `codecatalyst-eks-permission-set`

   1. Di IAM, hapus:
      + `codecatalyst-eks-build-role`
      + `codecatalyst-eks-deploy-role`
      + `codecatalyst-eks-build-policy`
      + `codecatalyst-eks-deploy-policy`

1. Di CodeCatalyst konsol, bersihkan sebagai berikut:

   1. Hapus`codecatalyst-eks-workflow`.

   1. Hapus`codecatalyst-eks-environment`.

   1. Hapus`codecatalyst-eks-source-repository`.

   1. Hapus Lingkungan Pengembang Anda.

   1. Hapus`codecatalyst-eks-project`.

Dalam tutorial ini, Anda mempelajari cara menerapkan aplikasi ke layanan Amazon EKS menggunakan CodeCatalyst alur kerja dan tindakan cluster **Deploy to Kubernetes**.

# Menambahkan aksi 'Deploy to Kubernetes cluster'
<a name="deploy-action-eks-adding"></a>

Gunakan instruksi berikut untuk menambahkan tindakan **cluster Deploy ke Kubernetes** ke alur kerja Anda. 

**Sebelum Anda memulai**

Sebelum Anda menambahkan aksi **klaster Deploy ke Kubernetes** ke alur kerja Anda, Anda harus menyiapkan hal-hal berikut:

**Tip**  
Untuk mengatur prasyarat ini dengan cepat, ikuti instruksi di. [Tutorial: Menyebarkan aplikasi ke Amazon EKS](deploy-tut-eks.md)
+ Cluster Kubernetes di Amazon EKS. Untuk informasi tentang cluster, lihat [klaster Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/clusters.html) di **Panduan Pengguna Amazon EKS**.
+ Setidaknya satu Dockerfile yang menjelaskan cara merakit aplikasi Anda menjadi image Docker. Untuk informasi selengkapnya tentang Dockerfiles, lihat referensi [Dockerfile](https://docs.docker.com/engine/reference/builder/).
+ Setidaknya satu file manifes Kubernetes, yang disebut file konfigurasi atau **konfigurasi* dalam dokumentasi* Kubernetes. Untuk informasi selengkapnya, lihat [Mengelola sumber daya](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/) dalam dokumentasi Kubernetes.
+ Peran IAM yang memberikan tindakan **cluster Deploy to Kubernetes kemampuan untuk mengakses dan berinteraksi dengan cluster** Amazon EKS Anda. Untuk informasi lebih lanjut, lihat [Role](deploy-action-ref-eks.md#deploy.action.eks.environment.connections.role) topik di[Tindakan 'Terapkan ke Kluster Kubernetes' YAML](deploy-action-ref-eks.md).

  Setelah membuat peran ini, Anda harus menambahkannya ke:
  + File Kubernetes ConfigMap Anda. Untuk mempelajari cara menambahkan peran ke ConfigMap file, lihat [Mengaktifkan akses utama IAM ke klaster Anda](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) di **Panduan Pengguna Amazon EKS**.
  + CodeCatalyst. Untuk mempelajari cara menambahkan peran IAM CodeCatalyst, lihat[Menambahkan peran IAM ke koneksi akun](ipa-connect-account-addroles.md).
+  CodeCatalyst Ruang, proyek, dan lingkungan. Ruang dan lingkungan keduanya harus terhubung ke AWS akun tempat Anda akan menggunakan aplikasi Anda. Lihat informasi selengkapnya di [Membuat ruang](spaces-create.md), [Membuat proyek kosong di Amazon CodeCatalyst](projects-create.md#projects-create-empty), dan [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md).
+ Repositori sumber yang didukung oleh. CodeCatalyst Repositori menyimpan file sumber aplikasi Anda, Dockerfiles, dan manifes Kubernetes. Untuk informasi selengkapnya, lihat [Simpan dan berkolaborasi pada kode dengan repositori sumber di CodeCatalystSimpan dan berkolaborasi pada kode dengan repositori sumber](source.md).

------
#### [ Visual ]

**Untuk menambahkan aksi 'Deploy to Kubernetes cluster' menggunakan editor visual**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari aksi **cluster Deploy to Kubernetes**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **Deploy ke klaster Kubernetes**. Kotak dialog detail tindakan muncul. Pada kotak dialog ini:
     + (Opsional) Pilih **Unduh** untuk [melihat kode sumber tindakan](workflows-view-source.md#workflows-view-source.title).
     + Pilih **Tambahkan ke alur kerja** untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

1. Pada tab **Input** dan **Konfigurasi**, lengkapi bidang sesuai dengan kebutuhan Anda. Untuk deskripsi setiap bidang, lihat[Tindakan 'Terapkan ke Kluster Kubernetes' YAML](deploy-action-ref-eks.md). Referensi ini memberikan informasi rinci tentang setiap bidang (dan nilai properti YAMAL yang sesuai) seperti yang muncul di YAMAL dan editor visual.

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

------
#### [ YAML ]

**Untuk menambahkan aksi 'Deploy to Kubernetes cluster' menggunakan editor YAMAL**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari aksi **cluster Deploy to Kubernetes**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **Deploy ke klaster Kubernetes**. Kotak dialog detail tindakan muncul. Pada kotak dialog ini:
     + (Opsional) Pilih **Unduh** untuk [melihat kode sumber tindakan](workflows-view-source.md#workflows-view-source.title).
     + Pilih **Tambahkan ke alur kerja** untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

1. Ubah properti dalam kode YAMAL sesuai dengan kebutuhan Anda. Penjelasan tentang setiap properti yang tersedia disediakan di[Tindakan 'Terapkan ke Kluster Kubernetes' YAML](deploy-action-ref-eks.md).

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

------

# Variabel 'Terapkan ke klaster Kubernetes'
<a name="deploy-action-eks-variables"></a>

Tindakan **klaster Deploy to Kubernetes** menghasilkan dan menetapkan variabel-variabel berikut pada waktu proses. Ini dikenal sebagai *variabel yang telah ditentukan*.

Untuk informasi tentang mereferensikan variabel-variabel ini dalam alur kerja, lihat. [Menggunakan variabel yang telah ditentukan](workflows-using-predefined-variables.md)


| Key | Nilai | 
| --- | --- | 
|  klaster  |  Nama Sumber Daya Amazon.com (ARN) dari kluster Amazon EKS yang digunakan selama alur kerja dijalankan. Contoh: `arn:aws:eks:us-west-2:111122223333:cluster/codecatalyst-eks-cluster`  | 
|  platform penyebaran  |  Nama platform penyebaran. Hardcode ke. `AWS:EKS`  | 
|  Metadata  |  Dicadangkan. Metadata berformat JSON yang terkait dengan cluster yang digunakan selama alur kerja dijalankan.  | 
|  namespace  |  Namespace Kubernetes tempat cluster digunakan. Contoh: `default`  | 
|  sumber daya  |  Dicadangkan. Metadata berformat JSON terkait dengan sumber daya yang digunakan selama alur kerja dijalankan.  | 
|  server  |  Nama endpoint server API yang dapat Anda gunakan untuk berkomunikasi dengan cluster Anda menggunakan alat manajemen seperti`kubectl`. Untuk informasi selengkapnya tentang titik akhir layanan API, lihat [kontrol akses titik akhir klaster Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) di **Panduan Pengguna Amazon EKS**. Contoh: `https://random-string.gr7.us-west-2.eks.amazonaws.com`  | 

# Tindakan 'Terapkan ke Kluster Kubernetes' YAML
<a name="deploy-action-ref-eks"></a>

Berikut ini adalah definisi YAMAL dari aksi cluster **Deploy to Kubernetes**. Untuk mempelajari cara menggunakan tindakan ini, lihat[Menerapkan ke Amazon EKS dengan alur kerja](deploy-action-eks.md).

Definisi tindakan ini ada sebagai bagian dalam file definisi alur kerja yang lebih luas. Untuk informasi selengkapnya tentang file ini, lihat[Alur kerja definisi YAMAL](workflow-reference.md).

**catatan**  
Sebagian besar properti YAMM yang mengikuti memiliki elemen UI yang sesuai di editor visual. Untuk mencari elemen UI, gunakan **Ctrl\$1F**. Elemen akan terdaftar dengan properti YAMLnya yang terkait.

```
# The workflow definition starts here.
# See Properti tingkat atas for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  DeployToKubernetesCluster\$1nn: 
    Identifier: aws/kubernetes-deploy@v1
    DependsOn:
      - build-action
    Compute:  
        - Type: EC2 | Lambda
        - Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: DeployToEKS
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - manifest-artifact
    Configuration:
      Namespace: namespace
      Region: us-east-1 
      Cluster: eks-cluster
      Manifests: manifest-path
```

## DeployToKubernetesCluster
<a name="deploy.action.eks.name"></a>

(Diperlukan)

Tentukan nama tindakan. Semua nama tindakan harus unik dalam alur kerja. Nama aksi terbatas pada karakter alfanumerik (a-z, A-Z, 0-9), tanda hubung (-), dan garis bawah (\$1). Spasi tidak diizinkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan karakter dan spasi khusus dalam nama tindakan.

Default: `DeployToKubernetesCluster_nn`.

UI yang sesuai: Tab **konfigurasi/Nama tampilan tindakan**

## Identifier
<a name="deploy.action.eks.identifier"></a>

(*DeployToKubernetesCluster*/**Identifier**)

(Diperlukan)

Mengidentifikasi tindakan. Jangan mengubah properti ini kecuali Anda ingin mengubah versi. Untuk informasi selengkapnya, lihat [Menentukan versi tindakan yang akan digunakan](workflows-action-versions.md).

Default: `aws/kubernetes-deploy@v1`.

**UI yang sesuai: Diagram alur kerja/ DeployToKubernetesCluster \$1nn/ aws/kubernetes-deploy @v1 label**

## DependsOn
<a name="deploy.action.eks.dependson"></a>

(*DeployToKubernetesCluster*/**DependsOn**)

(Opsional)

Tentukan tindakan, grup tindakan, atau gerbang yang harus berjalan dengan sukses agar tindakan ini berjalan.

Untuk informasi selengkapnya tentang fungsionalitas 'tergantung pada', lihat. [Tindakan pengurutan](workflows-depends-on.md)

UI yang sesuai: Tab **masukan/Tergantung pada** - opsional

## Compute
<a name="deploy.action.eks.computename"></a>

(*DeployToKubernetesCluster*/**Compute**)

(Opsional)

Mesin komputasi yang digunakan untuk menjalankan tindakan alur kerja Anda. Anda dapat menentukan komputasi baik di tingkat alur kerja atau di tingkat tindakan, tetapi tidak keduanya. Ketika ditentukan pada tingkat alur kerja, konfigurasi komputasi berlaku untuk semua tindakan yang ditentukan dalam alur kerja. Pada tingkat alur kerja, Anda juga dapat menjalankan beberapa tindakan pada instance yang sama. Untuk informasi selengkapnya, lihat [Berbagi komputasi di seluruh tindakan](compute-sharing.md).

UI yang sesuai: *tidak ada*

## Type
<a name="deploy.action.eks.computetype"></a>

(*DeployToKubernetesCluster*/Compute/**Type**)

(Diperlukan [Compute](#deploy.action.eks.computename) jika disertakan)

Jenis mesin komputasi. Anda dapat menggunakan salah satu nilai berikut:
+ **EC2** (editor visual) atau `EC2` (editor YAMG)

  Dioptimalkan untuk fleksibilitas selama aksi berjalan.
+ **Lambda** (editor visual) atau `Lambda` (editor YAMM)

  Kecepatan start-up aksi yang dioptimalkan.

Untuk informasi selengkapnya tentang jenis komputasi, lihat[Jenis komputasi](workflows-working-compute.md#compute.types).

**UI yang sesuai: Konfigurasi tab/Advanced - tipe opsional/Komputasi**

## Fleet
<a name="deploy.action.eks.computefleet"></a>

(*DeployToKubernetesCluster*/Compute/**Fleet**)

(Opsional)

Tentukan mesin atau armada yang akan menjalankan alur kerja atau tindakan alur kerja Anda. Dengan armada sesuai permintaan, ketika suatu tindakan dimulai, alur kerja menyediakan sumber daya yang dibutuhkan, dan mesin dihancurkan ketika tindakan selesai. Contoh armada sesuai permintaan:`Linux.x86-64.Large`,. `Linux.x86-64.XLarge` Untuk informasi lebih lanjut tentang armada sesuai permintaan, lihat. [Properti armada sesuai permintaan](workflows-working-compute.md#compute.on-demand)

Dengan armada yang disediakan, Anda mengonfigurasi satu set mesin khusus untuk menjalankan tindakan alur kerja Anda. Mesin-mesin ini tetap menganggur, siap untuk memproses tindakan segera. Untuk informasi lebih lanjut tentang armada yang disediakan, lihat. [Properti armada yang disediakan](workflows-working-compute.md#compute.provisioned-fleets)

Jika `Fleet` dihilangkan, defaultnya adalah. `Linux.x86-64.Large`

**UI yang sesuai: Konfigurasi tab/Advanced - armada opsional/Komputasi**

## Timeout
<a name="deploy.action.eks.timeout"></a>

(*DeployToKubernetesCluster*/**Timeout**)

(Opsional)

Tentukan jumlah waktu dalam menit (editor YAMG), atau jam dan menit (editor visual), bahwa tindakan dapat berjalan sebelum CodeCatalyst mengakhiri tindakan. Minimal adalah 5 menit dan maksimum dijelaskan dalam[Kuota untuk alur kerja di CodeCatalyst](workflows-quotas.md). Batas waktu default sama dengan batas waktu maksimum.

UI yang sesuai: Tab **konfigurasi/Timeout** - opsional

## Environment
<a name="deploy.action.eks.environment"></a>

(*DeployToKubernetesCluster*/**Environment**)

(Diperlukan)

Tentukan CodeCatalyst lingkungan yang akan digunakan dengan tindakan. Tindakan terhubung ke Akun AWS dan VPC Amazon opsional yang ditentukan di lingkungan yang dipilih. Tindakan ini menggunakan peran IAM default yang ditentukan di lingkungan untuk terhubung ke Akun AWS, dan menggunakan peran IAM yang ditentukan dalam [koneksi VPC Amazon untuk terhubung ke VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) Amazon.

**catatan**  
Jika peran IAM default tidak memiliki izin yang diperlukan oleh tindakan, Anda dapat mengonfigurasi tindakan untuk menggunakan peran yang berbeda. Untuk informasi selengkapnya, lihat [Mengubah peran IAM dari suatu tindakan](deploy-environments-switch-role.md).

Untuk informasi lebih lanjut tentang lingkungan, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md) dan[Pembuatan lingkungan](deploy-environments-creating-environment.md).

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Name
<a name="deploy.action.eks.environment.name"></a>

(*DeployToKubernetesCluster*/Environment/**Name**)

(Diperlukan [Environment](#deploy.action.eks.environment) jika disertakan)

Tentukan nama lingkungan yang ada yang ingin Anda kaitkan dengan tindakan.

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Connections
<a name="deploy.action.eks.environment.connections"></a>

(*DeployToKubernetesCluster*/Environment/**Connections**)

(Opsional dalam versi tindakan yang lebih baru; diperlukan dalam versi yang lebih lama)

Tentukan koneksi akun untuk dikaitkan dengan tindakan. Anda dapat menentukan maksimum satu koneksi akun di bawah`Environment`.

Jika Anda tidak menentukan koneksi akun:
+ Tindakan menggunakan Akun AWS koneksi dan peran IAM default yang ditentukan di lingkungan di CodeCatalyst konsol. Untuk informasi tentang menambahkan koneksi akun dan peran IAM default ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).
+ Peran IAM default harus menyertakan kebijakan dan izin yang diperlukan oleh tindakan. Untuk menentukan kebijakan dan izin tersebut, lihat deskripsi properti **Peran** dalam dokumentasi definisi YAMAL tindakan.

Untuk informasi selengkapnya tentang koneksi akun, lihat[Memungkinkan akses ke AWS sumber daya yang terhubung Akun AWS](ipa-connect-account.md). Untuk informasi tentang menambahkan koneksi akun ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Name
<a name="deploy.action.eks.environment.connections.name"></a>

(*DeployToKubernetesCluster*/Environment/Connections/**Name**)

(Opsional)

Tentukan nama koneksi akun.

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Role
<a name="deploy.action.eks.environment.connections.role"></a>

(*DeployToKubernetesCluster*/Environment/Connections/**Role**)

(Diperlukan [Connections](#deploy.action.eks.environment.connections) jika disertakan)

Tentukan nama peran IAM yang digunakan tindakan **klaster Deploy to Kubernetes** untuk mengakses. AWS Pastikan Anda telah [menambahkan peran ke CodeCatalyst ruang Anda](ipa-connect-account-addroles.md), dan peran tersebut mencakup kebijakan berikut.

Jika Anda tidak menentukan peran IAM, maka tindakan tersebut menggunakan peran IAM default yang tercantum di [lingkungan](deploy-environments.md) di CodeCatalyst konsol. Jika Anda menggunakan peran default di lingkungan, pastikan itu memiliki kebijakan berikut.
+ Kebijakan izin berikut:
**Awas**  
Batasi izin untuk yang ditampilkan dalam kebijakan berikut. Menggunakan peran dengan izin yang lebih luas dapat menimbulkan risiko keamanan.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "eks:DescribeCluster",
                  "eks:ListClusters"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
**catatan**  
Pertama kali peran digunakan, gunakan wildcard berikut dalam pernyataan kebijakan sumber daya dan kemudian cakup kebijakan dengan nama sumber daya setelah tersedia.  

  ```
  "Resource": "*"
  ```
+ Kebijakan kepercayaan khusus berikut:

Pastikan bahwa peran ini ditambahkan ke:
+ Koneksi akun Anda. Untuk mempelajari selengkapnya tentang menambahkan peran IAM ke koneksi akun, lihat[Menambahkan peran IAM ke koneksi akun](ipa-connect-account-addroles.md).
+ Kubernetes ConfigMap Anda. Untuk mempelajari selengkapnya tentang menambahkan peran IAM ke sebuah ConfigMap, lihat [Mengelola pengguna dan peran IAM](https://eksctl.io/usage/iam-identity-mappings/) dalam dokumentasi. `eksctl`

**Tip**  
Lihat juga [Tutorial: Menyebarkan aplikasi ke Amazon EKS](deploy-tut-eks.md) untuk petunjuk tentang menambahkan peran AM IAM ke koneksi akun dan ConfigMap.

**catatan**  
Anda dapat menggunakan `CodeCatalystWorkflowDevelopmentRole-spaceName` peran dengan tindakan ini, jika Anda mau. Untuk informasi selengkapnya tentang peran ini, silakan lihat [Membuat **CodeCatalystWorkflowDevelopmentRole-*spaceName***peran untuk akun dan ruang Anda](ipa-iam-roles.md#ipa-iam-roles-service-create). Memahami bahwa `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut memiliki izin akses penuh yang dapat menimbulkan risiko keamanan. Kami menyarankan Anda hanya menggunakan peran ini dalam tutorial dan skenario di mana keamanan kurang menjadi perhatian. 

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' '/ Environment/account/role Peran**

## Inputs
<a name="deploy.action.eks.inputs"></a>

(*DeployToKubernetesCluster*/**Inputs**)

(Diperlukan [Connections](#deploy.action.eks.environment.connections) jika disertakan)

`Inputs`Bagian ini mendefinisikan data yang `DeployToKubernetesCluster` dibutuhkan selama menjalankan alur kerja.

**catatan**  
Hanya satu input (baik sumber atau artefak) yang diizinkan per tindakan **Deploy ke Amazon EKS**.

UI yang sesuai: **Tab input**

## Sources
<a name="deploy.action.eks.inputs.sources"></a>

(*DeployToKubernetesCluster*/Inputs/**Sources**)

(Diperlukan jika file manifes Anda disimpan dalam repositori sumber)

Jika file manifes Kubernetes atau file disimpan dalam repositori sumber, tentukan label repositori sumber tersebut. Saat ini, satu-satunya label yang didukung adalah`WorkflowSource`.

Jika file manifes Anda tidak terkandung dalam repositori sumber, mereka harus berada dalam artefak yang dihasilkan oleh tindakan lain.

Untuk informasi selengkapnya tentang sumber, lihat [Menghubungkan repositori sumber ke alur kerja](workflows-sources.md).

UI yang sesuai: **Tab/Sumber** Input - opsional

## Artifacts - input
<a name="deploy.action.eks.inputs.artifacts"></a>

(*DeployToKubernetesCluster*/Inputs/**Artifacts**)

(Diperlukan jika file manifes Anda disimpan dalam [artefak keluaran](workflows-working-artifacts-output.md) dari tindakan sebelumnya)

Jika file atau file manifes Kubernetes terkandung dalam artefak yang dihasilkan oleh tindakan sebelumnya, tentukan artefak tersebut di sini. Jika file manifes Anda tidak terkandung dalam artefak, mereka harus berada di repositori sumber Anda.

Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihat[Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).

UI yang sesuai: Tab **konfigurasi/Artefak** - opsional

## Configuration
<a name="deploy.action.eks.configuration"></a>

(*DeployToKubernetesCluster*/**Configuration**)

(Diperlukan)

Bagian di mana Anda dapat menentukan properti konfigurasi tindakan.

UI yang sesuai: Tab **konfigurasi**

## Namespace
<a name="deploy.action.eks.namespace"></a>

(*DeployToKubernetesCluster*/Configuration/**Namespace**)

(Opsional)

Tentukan namespace Kubernetes tempat aplikasi Kubernetes Anda akan di-deploy. Gunakan `default` jika Anda tidak menggunakan ruang nama dengan cluster Anda. Untuk informasi selengkapnya tentang namespace, lihat [Membagi klaster Anda menggunakan ruang nama Kubernetes dalam dokumentasi Kubernetes](https://kubernetes.io/docs/tasks/administer-cluster/namespaces/#subdividing-your-cluster-using-kubernetes-namespaces).

Jika Anda menghilangkan namespace, nilai digunakan. `default`

**UI yang sesuai: Tab konfigurasi/Namespace**

## Region
<a name="deploy.action.eks.region"></a>

(*DeployToKubernetesCluster*/Configuration/**Region**)

(Diperlukan)

Tentukan AWS Wilayah tempat klaster dan layanan Amazon EKS Anda berada. Untuk daftar kode Wilayah, lihat [Titik akhir Regional](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes) di. *Referensi Umum AWS*

**UI yang sesuai: Tab konfigurasi/Wilayah**

## Cluster
<a name="deploy.action.eks.cluster"></a>

(*DeployToKubernetesCluster*/Configuration/**Cluster**)

(Diperlukan)

Tentukan nama kluster Amazon EKS yang ada. Tindakan **klaster Deploy to Kubernetes akan menyebarkan aplikasi kontainer Anda ke dalam klaster** ini. Untuk informasi selengkapnya tentang kluster Amazon EKS, lihat [Cluster](https://docs.aws.amazon.com/eks/latest/userguide/clusters.html) di **Panduan Pengguna Amazon EKS**.

**UI yang sesuai: Tab konfigurasi/Cluster**

## Manifests
<a name="deploy.action.eks.manifest"></a>

(*DeployToKubernetesCluster*/Configuration/**Manifests**)

(Diperlukan)

*Tentukan path ke file manifes Kubernetes Anda yang diformat YAML, yang disebut file konfigurasi, *file konfigurasi*, atau hanya, *konfigurasi dalam dokumentasi Kubernetes*.*

Jika Anda menggunakan beberapa file manifes, letakkan di satu folder dan rujuk folder itu. File manifes diproses secara alfanumerik oleh Kubernetes, jadi pastikan untuk mengawali nama file dengan angka atau huruf yang bertambah untuk mengontrol urutan pemrosesan. Contoh:

`00-namespace.yaml`

`01-deployment.yaml`

Jika file manifes Anda berada di repositori sumber Anda, jalurnya relatif terhadap folder root repositori sumber. Jika file berada dalam artefak dari tindakan alur kerja sebelumnya, jalurnya relatif terhadap folder root artefak. 

Contoh:

`Manifests/`

`deployment.yaml`

`my-deployment.yml`

Jangan gunakan wildcard (`*`).

**catatan**  
[Bagan helm](https://helm.sh/docs/topics/charts/) dan [file kustomisasi](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/) tidak didukung.

Untuk informasi selengkapnya tentang file manifes, lihat [Mengatur konfigurasi sumber daya](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#organizing-resource-configurations) dalam dokumentasi Kubernetes.

**UI yang sesuai: Tab konfigurasi/Manifes**

# Menyebarkan tumpukan CloudFormation
<a name="deploy-action-cfn"></a>

Bagian ini menjelaskan cara menerapkan AWS CloudFormation tumpukan menggunakan CodeCatalyst alur kerja. Untuk mencapai ini, Anda harus menambahkan tindakan ** CloudFormation tumpukan Deploy** ke alur kerja Anda. Tindakan ini menyebarkan CloudFormation tumpukan sumber daya AWS berdasarkan templat yang Anda berikan. Template dapat berupa:
+ CloudFormation template — Untuk informasi selengkapnya, lihat [Bekerja dengan CloudFormation template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html).
+ AWS SAM template — Untuk informasi lebih lanjut, lihat [AWS Serverless Application Model (AWS SAM) spesifikasi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html).
**catatan**  
Untuk menggunakan AWS SAM template, Anda harus terlebih dahulu mengemas AWS SAM aplikasi Anda menggunakan `[sam package](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-package.html)` operasi. Untuk tutorial yang menunjukkan cara melakukan pengemasan ini secara otomatis sebagai bagian dari CodeCatalyst alur kerja Amazon, lihat[Tutorial: Menyebarkan aplikasi tanpa server](deploy-tut-lambda.md).

Jika tumpukan sudah ada, tindakan menjalankan CloudFormation `[CreateChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html)` operasi, dan kemudian `[ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html)` operasi. Tindakan kemudian menunggu perubahan diterapkan dan menandai dirinya sebagai berhasil karena gagal, tergantung pada hasilnya.

Gunakan tindakan ** CloudFormation tumpukan Deploy** jika Anda sudah memiliki CloudFormation atau AWS SAM template yang berisi sumber daya yang ingin Anda terapkan, atau Anda berencana untuk membuatnya secara otomatis sebagai bagian dari [tindakan pembuatan](build-add-action.md) alur kerja menggunakan alat seperti dan. AWS SAM [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)

Tidak ada batasan pada template yang dapat Anda gunakan—apa pun yang dapat Anda buat CloudFormation atau AWS SAM Anda dapat gunakan dengan tindakan tumpukan **Deploy CloudFormation **.

**Tip**  
Untuk tutorial yang menunjukkan cara menerapkan aplikasi tanpa server menggunakan tindakan ** CloudFormation tumpukan Deploy**, lihat. [Tutorial: Menyebarkan aplikasi tanpa server](deploy-tut-lambda.md)

**Topics**
+ [Gambar runtime yang digunakan oleh aksi CloudFormation 'Deploy stack'](#deploy-action-cfn-runtime)
+ [Tutorial: Menyebarkan aplikasi tanpa server](deploy-tut-lambda.md)
+ [Menambahkan aksi 'Deploy stack' CloudFormation](deploy-action-cfn-adding.md)
+ [Mengkonfigurasi rollback](deploy-consumption-enable-alarms.md)
+ [Variabel 'Menyebarkan tumpukan' CloudFormation](deploy-action-cfn-variables.md)
+ [Tindakan 'Menyebarkan CloudFormation tumpukan' YAMAL](deploy-action-ref-cfn.md)

## Gambar runtime yang digunakan oleh aksi CloudFormation 'Deploy stack'
<a name="deploy-action-cfn-runtime"></a>

Tindakan ** CloudFormation tumpukan Deploy** berjalan pada [gambar November 2022](build-images.md#build.previous-image). Lihat informasi yang lebih lengkap di [Gambar aktif](build-images.md#build-curated-images).

# Tutorial: Menyebarkan aplikasi tanpa server
<a name="deploy-tut-lambda"></a>

Dalam tutorial ini, Anda mempelajari cara membangun, menguji, dan menyebarkan aplikasi tanpa server sebagai CloudFormation tumpukan menggunakan alur kerja.

Aplikasi dalam tutorial ini adalah aplikasi web sederhana yang mengeluarkan pesan 'Hello World'. Ini terdiri dari AWS Lambda fungsi dan Amazon API Gateway, dan Anda membangunnya menggunakan [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html), yang merupakan ekstensi dari [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

**Topics**
+ [Prasyarat](#deploy-tut-lambda-cfn-prereqs)
+ [Langkah 1: Buat repositori sumber](#deploy-tut-lambda-cfn-source)
+ [Langkah 2: Buat AWS peran](#deploy-tut-lambda-cfn-roles)
+ [Langkah 3: Tambahkan AWS peran ke CodeCatalyst](#deploy-tut-lambda-cfn-roles-add)
+ [Langkah 4: Buat ember Amazon S3](#deploy-tut-lambda-cfn-s3)
+ [Langkah 5: Tambahkan file sumber](#deploy-tut-lambda-cfn-files)
+ [Langkah 6: Buat dan jalankan alur kerja](#deploy-tut-lambda-cfn-workflow)
+ [Langkah 7: Buat perubahan](#deploy-tut-lambda-cfn-change)
+ [Bersihkan](#deploy-tut-lambda-cfn-clean-up)

## Prasyarat
<a name="deploy-tut-lambda-cfn-prereqs"></a>

Sebelum Anda memulai:
+ Anda membutuhkan CodeCatalyst **ruang** dengan AWS akun yang terhubung. Untuk informasi selengkapnya, lihat [Membuat ruang](spaces-create.md).
+ Di ruang Anda, Anda memerlukan proyek kosong yang disebut:

  ```
  codecatalyst-cfn-project
  ```

  Gunakan opsi **Mulai dari awal** untuk membuat proyek ini.

  Untuk informasi selengkapnya, lihat [Membuat proyek kosong di Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ Dalam proyek Anda, Anda memerlukan CodeCatalyst **lingkungan** yang disebut:

  ```
  codecatalyst-cfn-environment
  ```

  Konfigurasikan lingkungan ini sebagai berikut:
  + Pilih jenis apa pun, seperti **Non-produksi**.
  + Hubungkan AWS akun Anda ke sana.
  + Untuk peran **IAM Default, pilih peran** apa pun. Anda akan menentukan peran yang berbeda nanti.

  Untuk informasi selengkapnya, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md).

## Langkah 1: Buat repositori sumber
<a name="deploy-tut-lambda-cfn-source"></a>

Pada langkah ini, Anda membuat repositori sumber di. CodeCatalyst Repositori ini digunakan untuk menyimpan file sumber tutorial, seperti file fungsi Lambda. 

Untuk informasi selengkapnya tentang repositori sumber, lihat. [Membuat repositori sumber](source-repositories-create.md)

**Untuk membuat repositori sumber**

1. Di CodeCatalyst, di panel navigasi, pilih **Kode**, lalu pilih **Repositori sumber**. 

1. Pilih **Tambahkan repositori**, lalu pilih **Buat** repositori.

1. Dalam **nama Repositori, masukkan:**

   ```
   codecatalyst-cfn-source-repository
   ```

1. Pilih **Buat**.

Anda sekarang telah membuat repositori yang disebut. `codecatalyst-cfn-source-repository`

## Langkah 2: Buat AWS peran
<a name="deploy-tut-lambda-cfn-roles"></a>

Pada langkah ini, Anda membuat peran AWS IAM berikut:
+ **Menyebarkan peran** — Memberikan izin tindakan ** CloudFormation tumpukan CodeCatalyst Deploy** untuk mengakses AWS akun dan CloudFormation layanan tempat Anda akan menerapkan aplikasi tanpa server Anda. Tindakan ** CloudFormation tumpukan Deploy** adalah bagian dari alur kerja Anda.
+ **Peran build** - Memberikan izin tindakan CodeCatalyst build untuk mengakses AWS akun Anda dan menulis ke Amazon S3 tempat paket aplikasi tanpa server Anda akan disimpan. Tindakan build adalah bagian dari alur kerja Anda.
+ **Peran tumpukan** - Memberikan CloudFormation izin untuk membaca dan memodifikasi sumber daya yang ditentukan dalam AWS SAM template yang akan Anda berikan nanti. Juga memberikan izin untuk CloudWatch.

Untuk informasi selengkapnya tentang peran IAM, lihat [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) di *AWS Identity and Access Management Panduan Pengguna*.

**catatan**  
Untuk menghemat waktu, Anda dapat membuat satu peran, yang disebut `CodeCatalystWorkflowDevelopmentRole-spaceName` peran, alih-alih tiga peran yang tercantum sebelumnya. Untuk informasi selengkapnya, lihat [Membuat **CodeCatalystWorkflowDevelopmentRole-*spaceName***peran untuk akun dan ruang Anda](ipa-iam-roles.md#ipa-iam-roles-service-create). Pahami bahwa `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut memiliki izin yang sangat luas yang dapat menimbulkan risiko keamanan. Kami menyarankan Anda hanya menggunakan peran ini dalam tutorial dan skenario di mana keamanan kurang menjadi perhatian. Tutorial ini mengasumsikan Anda membuat tiga peran yang tercantum sebelumnya.

**catatan**  
[Peran eksekusi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) juga diperlukan, tetapi Anda tidak perlu membuatnya sekarang karena `sam-template.yml` file membuatnya untuk Anda ketika Anda menjalankan alur kerja di langkah 5.



**Untuk membuat peran penerapan**

1. Buat kebijakan untuk peran tersebut, sebagai berikut:

   1. Masuk ke AWS.

   1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Di panel navigasi, pilih **Kebijakan**.

   1. Pilih **Buat kebijakan**.

   1. Pilih tab **JSON**.

   1. Hapus kode yang ada.

   1. Tempel kode berikut:
**catatan**  
Pertama kali peran digunakan untuk menjalankan tindakan alur kerja, gunakan wildcard dalam pernyataan kebijakan sumber daya dan kemudian cakup kebijakan dengan nama sumber daya setelah tersedia.  

      ```
      "Resource": "*"
      ```

   1. Pilih **Berikutnya: Tanda**.

   1. Pilih **Berikutnya: Tinjau**.

   1. Dalam **Nama**, masukkan:

      ```
      codecatalyst-deploy-policy
      ```

   1. Pilih **Buat kebijakan**.

      Anda sekarang telah membuat kebijakan izin.

1. Buat peran deploy, sebagai berikut:

   1. Di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

   1. Pilih **Kebijakan kepercayaan khusus**.

   1. Hapus kebijakan kepercayaan kustom yang ada.

   1. Tambahkan kebijakan kepercayaan khusus berikut:

   1. Pilih **Berikutnya**.

   1. Di **Kebijakan izin**, cari `codecatalyst-deploy-policy` dan pilih kotak centang.

   1. Pilih **Berikutnya**.

   1. Untuk **nama Peran**, masukkan:

      ```
      codecatalyst-deploy-role
      ```

   1. Untuk **deskripsi Peran**, masukkan:

      ```
      CodeCatalyst deploy role
      ```

   1. Pilih **Buat peran**.

   Anda sekarang telah membuat peran penerapan dengan kebijakan kepercayaan dan kebijakan izin.

1. Dapatkan peran penyebaran ARN, sebagai berikut:

   1. Di panel navigasi, pilih **Peran**.

   1. Di kotak pencarian, masukkan nama peran yang baru saja Anda buat (`codecatalyst-deploy-role`).

   1. Pilih peran dari daftar.

      Halaman **Ringkasan** peran muncul.

   1. Di bagian atas, salin nilai **ARN**.

   Anda sekarang telah membuat peran penerapan dengan izin yang sesuai, dan memperoleh ARN-nya.

**Untuk membuat peran build**

1. Buat kebijakan untuk peran tersebut, sebagai berikut:

   1. Masuk ke AWS.

   1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Di panel navigasi, pilih **Kebijakan**.

   1. Pilih **Buat kebijakan**.

   1. Pilih tab **JSON**.

   1. Hapus kode yang ada.

   1. Tempel kode berikut:
**catatan**  
Pertama kali peran digunakan untuk menjalankan tindakan alur kerja, gunakan wildcard dalam pernyataan kebijakan sumber daya dan kemudian cakup kebijakan dengan nama sumber daya setelah tersedia.  

      ```
      "Resource": "*"
      ```

   1. Pilih **Berikutnya: Tanda**.

   1. Pilih **Berikutnya: Tinjau**.

   1. Dalam **Nama**, masukkan:

      ```
      codecatalyst-build-policy
      ```

   1. Pilih **Buat kebijakan**.

      Anda sekarang telah membuat kebijakan izin.

1. Buat peran build, sebagai berikut:

   1. Di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

   1. Pilih **Kebijakan kepercayaan khusus**.

   1. Hapus kebijakan kepercayaan kustom yang ada.

   1. Tambahkan kebijakan kepercayaan khusus berikut:

   1. Pilih **Berikutnya**.

   1. Di **Kebijakan izin**, cari `codecatalyst-build-policy` dan pilih kotak centang.

   1. Pilih **Berikutnya**.

   1. Untuk **nama Peran**, masukkan:

      ```
      codecatalyst-build-role
      ```

   1. Untuk **deskripsi Peran**, masukkan:

      ```
      CodeCatalyst build role
      ```

   1. Pilih **Buat peran**.

   Anda sekarang telah membuat peran build dengan kebijakan kepercayaan dan kebijakan izin.

1. Dapatkan peran membangun ARN, sebagai berikut:

   1. Di panel navigasi, pilih **Peran**.

   1. Di kotak pencarian, masukkan nama peran yang baru saja Anda buat (`codecatalyst-build-role`).

   1. Pilih peran dari daftar.

      Halaman **Ringkasan** peran muncul.

   1. Di bagian atas, salin nilai **ARN**.

   Anda sekarang telah membuat peran build dengan izin yang sesuai, dan memperoleh ARN-nya.<a name="deploy-tut-lambda-cfn-roles-stack"></a>

**Untuk membuat peran tumpukan**

1. Masuk untuk AWS menggunakan akun tempat Anda ingin menyebarkan tumpukan Anda.

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Buat peran tumpukan sebagai berikut:

   1. Di panel navigasi, pilih **Peran**.

   1. Pilih **Buat peran**.

   1. Pilih **Layanan AWS **.

   1. Di bagian **Use case**, pilih **CloudFormation**dari daftar drop-down.

   1. Pilih tombol **CloudFormation**radio.

   1. Di bagian bawah, pilih **Berikutnya**.

   1. Menggunakan kotak pencarian, temukan kebijakan izin berikut, lalu pilih kotak centang masing-masing.
**catatan**  
Jika Anda mencari kebijakan dan tidak muncul, pastikan untuk memilih **Hapus filter** dan coba lagi.
      + **CloudWatchFullAccess**
      + **AWS CloudFormationFullAccess**
      + **IAMFullAkses**
      + **AWS Lambda\$1 FullAccess**
      + **APIGatewayAdministrator Amazon**
      + **AmazonS3 FullAccess**
      + **Amazon EC2 ContainerRegistryFullAccess**

      Kebijakan pertama memungkinkan akses CloudWatch untuk mengaktifkan rollback tumpukan saat alarm terjadi.

      Kebijakan yang tersisa memungkinkan AWS SAM untuk mengakses layanan dan sumber daya di tumpukan yang akan digunakan dalam tutorial ini. Untuk informasi selengkapnya, lihat [Izin](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-permissions.html) di *Panduan AWS Serverless Application Model Pengembang*.

   1. Pilih **Berikutnya**.

   1. Untuk **nama Peran**, masukkan:

      ```
      codecatalyst-stack-role
      ```

   1. Pilih **Buat peran**.

1. Dapatkan ARN peran tumpukan, sebagai berikut:

   1. Di panel navigasi, pilih **Peran**.

   1. Di kotak pencarian, masukkan nama peran yang baru saja Anda buat (`codecatalyst-stack-role`).

   1. Pilih peran dari daftar.

   1. Di bagian **Ringkasan**, salin nilai **ARN**. Anda membutuhkannya nanti.

   Anda sekarang telah membuat peran tumpukan dengan izin yang sesuai, dan Anda telah memperoleh ARN-nya.

## Langkah 3: Tambahkan AWS peran ke CodeCatalyst
<a name="deploy-tut-lambda-cfn-roles-add"></a>

Pada langkah ini, Anda menambahkan build role (`codecatalyst-build-role`) dan deploy role (`codecatalyst-deploy-role`) ke koneksi CodeCatalyst akun di ruang Anda.

**catatan**  
Anda tidak perlu menambahkan stack role (`codecatalyst-stack-role`) ke koneksi. Ini karena peran tumpukan digunakan oleh *CloudFormation*(not CodeCatalyst), *setelah* koneksi sudah dibuat antara CodeCatalyst dan AWS menggunakan peran penerapan. Karena peran tumpukan tidak digunakan oleh CodeCatalyst untuk mendapatkan akses ke AWS, itu tidak perlu dikaitkan dengan koneksi akun.

**Untuk menambahkan peran build dan deploy ke koneksi akun**

1. Masuk CodeCatalyst, navigasikan ke ruang Anda.

1. Pilih **AWS akun**. Daftar koneksi akun muncul.

1. Pilih koneksi akun yang mewakili AWS akun tempat Anda membuat peran build dan deploy.

1. Pilih **Kelola peran dari konsol AWS manajemen**.

   **Peran Add IAM ke halaman CodeCatalyst ruang Amazon** muncul. Anda mungkin perlu masuk untuk mengakses halaman.

1. Pilih **Tambahkan peran yang sudah Anda buat di IAM**.

   Daftar drop-down muncul. Daftar ini menampilkan semua peran IAM dengan kebijakan kepercayaan yang mencakup prinsip `codecatalyst-runner.amazonaws.com` dan `codecatalyst.amazonaws.com` layanan.

1. Dalam daftar drop-down, pilih`codecatalyst-build-role`, dan pilih **Tambah peran**.

1. Pilih **Tambahkan peran IAM**, pilih **Tambahkan peran yang ada yang telah Anda buat di IAM**, dan dalam daftar drop-down, pilih. `codecatalyst-deploy-role` Pilih **Tambahkan peran**.

   Anda sekarang telah menambahkan peran build dan deploy ke ruang Anda.

1. Salin nilai **nama CodeCatalyst tampilan Amazon**. Anda akan membutuhkan nilai ini nanti, saat membuat alur kerja Anda.

## Langkah 4: Buat ember Amazon S3
<a name="deploy-tut-lambda-cfn-s3"></a>

Pada langkah ini, Anda membuat bucket Amazon S3 tempat Anda menyimpan file paket deployment aplikasi tanpa server.

**Untuk membuat bucket Amazon S3**

1. Buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel utama, pilih **Buat ember**.

1. Untuk **nama Bucket**, masukkan:

   ```
   codecatalyst-cfn-s3-bucket
   ```

1. Untuk **Wilayah AWS **, pilih Wilayah. Tutorial ini mengasumsikan Anda memilih **US West (Oregon) us-west-2**. Untuk informasi tentang Wilayah yang didukung oleh Amazon S3, lihat [titik akhir dan kuota Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) di. *Referensi Umum AWS*

1. Di bagian bawah halaman, pilih **Buat ember**.

Anda sekarang telah membuat ember yang disebut **codecatalyst-cfn-s3-bucket** di Wilayah AS Barat (Oregon) us-west-2.

## Langkah 5: Tambahkan file sumber
<a name="deploy-tut-lambda-cfn-files"></a>

Pada langkah ini, Anda menambahkan beberapa file sumber aplikasi ke repositori CodeCatalyst sumber Anda. `hello-world`Folder berisi file aplikasi yang akan Anda gunakan. `tests`Folder berisi tes unit. Struktur folder adalah sebagai berikut:

```
.
|— hello-world
|  |— tests
|     |— unit
|        |— test-handler.js
|  |— app.js
|— .npmignore
|— package.json
|— sam-template.yml
|— setup-sam.sh
```

### .npmignore
<a name="deploy-tut-lambda-cfn-files-npmignore"></a>

`.npmignore`File menunjukkan file dan folder npm mana yang harus dikecualikan dari paket aplikasi. Dalam tutorial ini, npm mengecualikan `tests` folder karena bukan bagian dari aplikasi.

**Untuk menambahkan file.npmignore**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda, `codecatalyst-cfn-project`

1. Di panel navigasi, pilih **Kode**, lalu pilih **Repositori sumber**.

1. Dari daftar repositori sumber, pilih repositori Anda,. `codecatalyst-cfn-source-repository` 

1. Di **File**, pilih **Buat file**.

1. Untuk **nama File**, masukkan:

   ```
   .npmignore
   ```

1. Di kotak teks, masukkan kode berikut:

   ```
   tests/*
   ```

1. Pilih **Komit**, lalu pilih **Komit** lagi.

   Anda sekarang telah membuat file yang disebut `.npmignore` di root repositori Anda.

### berkas package.json
<a name="deploy-tut-lambda-cfn-files-package-json"></a>

`package.json`File berisi metadata penting tentang proyek Node Anda seperti nama proyek, nomor versi, deskripsi, dependensi, dan detail lain yang menjelaskan cara berinteraksi dan menjalankan aplikasi Anda.

`package.json`Dalam tutorial ini mencakup daftar dependensi dan skrip. `test` Skrip pengujian melakukan hal berikut:
+ Menggunakan [moka](https://mochajs.org/), skrip pengujian menjalankan pengujian unit yang ditentukan `hello-world/tests/unit/` dan menulis hasilnya ke `junit.xml` file menggunakan reporter [xunit]().
+ [Menggunakan [Istanbul (nyc)](https://istanbul.js.org/), skrip pengujian menghasilkan laporan cakupan kode (`clover.xml`) menggunakan reporter semanggi.](https://openclover.org/doc/manual/4.2.0/general--about-openclover.html) Untuk informasi lebih lanjut, lihat [Menggunakan reporter alternatif](https://istanbul.js.org/docs/advanced/alternative-reporters/#clover) dalam dokumentasi Istanbul.

**Untuk menambahkan file package.json**

1. Di repositori Anda, di **File**, pilih **Buat** file.

1. Untuk **nama File**, masukkan:

   ```
   package.json
   ```

1. Di kotak teks, masukkan kode berikut:

   ```
   {
     "name": "hello_world",
     "version": "1.0.0",
     "description": "hello world sample for NodeJS",
     "main": "app.js",
     "repository": "https://github.com/awslabs/aws-sam-cli/tree/develop/samcli/local/init/templates/cookiecutter-aws-sam-hello-nodejs",
     "author": "SAM CLI",
     "license": "MIT",
     "dependencies": {
       "axios": "^0.21.1",
       "nyc": "^15.1.0"
     },
     "scripts": {
       "test": "nyc --reporter=clover mocha hello-world/tests/unit/ --reporter xunit --reporter-option output=junit.xml"
     },
     "devDependencies": {
       "aws-sdk": "^2.815.0",
       "chai": "^4.2.0",
       "mocha": "^8.2.1"
     }
   }
   ```

1. Pilih **Komit**, lalu pilih **Komit** lagi.

   Anda sekarang telah menambahkan file yang dipanggil `package.json` ke root repositori.

### file sam-template.yml
<a name="deploy-tut-lambda-cfn-files-sam-template-yml"></a>

`sam-template.yml`File berisi instruksi untuk menerapkan fungsi Lambda dan API Gateway dan mengonfigurasinya bersama-sama. Ini mengikuti [spesifikasi AWS Serverless Application Model template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html), yang memperluas spesifikasi CloudFormation template.

Anda menggunakan AWS SAM template dalam tutorial ini alih-alih CloudFormation template biasa karena AWS SAM menawarkan tipe sumber daya [AWS: :Serverless: :Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) yang bermanfaat. Tipe ini melakukan banyak behind-the-scenes konfigurasi yang biasanya harus Anda tulis untuk menggunakan CloudFormation sintaks dasar. Misalnya, `AWS::Serverless::Function` membuat fungsi Lambda, peran eksekusi Lambda, dan pemetaan sumber peristiwa yang memulai fungsi. Anda harus mengkodekan semua ini jika Anda ingin menulisnya menggunakan dasar CloudFormation.

Meskipun tutorial ini menggunakan template yang telah ditulis sebelumnya, Anda dapat membuatnya sebagai bagian dari alur kerja Anda menggunakan tindakan build. Untuk informasi selengkapnya, lihat [Menyebarkan tumpukan CloudFormation](deploy-action-cfn.md).

**Untuk menambahkan file sam-template.yml.**

1. Di repositori Anda, di **File**, pilih **Buat** file.

1. Untuk **nama File**, masukkan:

   ```
   sam-template.yml
   ```

1. Di kotak teks, masukkan kode berikut:

   ```
   AWSTemplateFormatVersion: '2010-09-09'
   Transform: AWS::Serverless-2016-10-31
   Description: >
     serverless-api
   
     Sample SAM Template for serverless-api
     
   # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
   Globals:
     Function:
       Timeout: 3
   
   Resources:
     HelloWorldFunction:
       Type: AWS::Serverless::Function # For details on this resource type, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
       Properties:
         CodeUri: hello-world/
         Handler: app.lambdaHandler
         Runtime: nodejs12.x
         Events:
           HelloWorld:
             Type: Api # For details on this event source type, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
             Properties:
               Path: /hello
               Method: get
   
   Outputs:
     # ServerlessRestApi is an implicit API created out of the events key under Serverless::Function
     # Find out about other implicit resources you can reference within AWS SAM at
     # https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api
     HelloWorldApi:
       Description: "API Gateway endpoint URL for the Hello World function"
       Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"
     HelloWorldFunction:
       Description: "Hello World Lambda function ARN"
       Value: !GetAtt HelloWorldFunction.Arn
     HelloWorldFunctionIamRole:
       Description: "Implicit Lambda execution role created for the Hello World function"
       Value: !GetAtt HelloWorldFunctionRole.Arn
   ```

1. Pilih **Komit**, lalu pilih **Komit** lagi.

   Anda sekarang telah menambahkan file yang disebut `sam-template.yml` di bawah folder root repositori Anda.

### setup-sam.sh berkas
<a name="deploy-tut-lambda-cfn-files-setup-sam"></a>

`setup-sam.sh`File berisi instruksi untuk mengunduh dan menginstal utilitas AWS SAM CLI. Alur kerja menggunakan utilitas ini untuk mengemas `hello-world` sumber.

**Untuk menambahkan file setup-sam.sh**

1. Di repositori Anda, di **File**, pilih **Buat** file.

1. Untuk **nama File**, masukkan:

   ```
   setup-sam.sh
   ```

1. Di kotak teks, masukkan kode berikut:

   ```
   #!/usr/bin/env bash
   echo "Setting up sam"
   
   yum install unzip -y
   
   curl -LO https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip
   unzip -qq aws-sam-cli-linux-x86_64.zip -d sam-installation-directory
   
   ./sam-installation-directory/install; export AWS_DEFAULT_REGION=us-west-2
   ```

   Dalam kode sebelumnya, ganti *us-west-2* dengan Wilayah Anda AWS .

1. Pilih **Komit**, lalu pilih **Komit** lagi.

   Anda sekarang telah menambahkan file yang dipanggil `setup-sam.sh` ke root repositori.

### app.js berkas
<a name="deploy-tut-lambda-cfn-files-app-js"></a>

`app.js`Berisi kode fungsi Lambda. Dalam tutorial ini, kode mengembalikan teks`hello world`.

**Untuk menambahkan file app.js**

1. Di repositori Anda, di **File**, pilih **Buat** file.

1. Untuk **nama File**, masukkan:

   ```
   hello-world/app.js
   ```

1. Di kotak teks, masukkan kode berikut:

   ```
   // const axios = require('axios')
   // const url = 'http://checkip.amazonaws.com/';
   let response;
   
   /**
    *
    * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format
    * @param {Object} event - API Gateway Lambda Proxy Input Format
    *
    * Context doc: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html 
    * @param {Object} context
    *
    * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
    * @returns {Object} object - API Gateway Lambda Proxy Output Format
    * 
    */
   exports.lambdaHandler = async (event, context) => {
       try {
           // const ret = await axios(url);
           response = {
               'statusCode': 200,
               'body': JSON.stringify({
                   message: 'hello world',
                   // location: ret.data.trim()
               })
           }
       } catch (err) {
           console.log(err);
           return err;
       }
   
       return response
   };
   ```

1. Pilih **Komit**, lalu pilih **Komit** lagi.

   Anda sekarang telah membuat folder bernama `hello-world` dan file bernama`app.js`.

### test-handler.js berkas
<a name="deploy-tut-lambda-cfn-files-test-handler-js"></a>

`test-handler.js`File berisi pengujian unit untuk fungsi Lambda.

**Untuk menambahkan file test-handler.js**

1. Di repositori Anda, di **File**, pilih **Buat** file.

1. Untuk **nama File**, masukkan:

   ```
   hello-world/tests/unit/test-handler.js
   ```

1. Di kotak teks, masukkan kode berikut:

   ```
   'use strict';
   
   const app = require('../../app.js');
   const chai = require('chai');
   const expect = chai.expect;
   var event, context;
   
   describe('Tests index', function () {
       it('verifies successful response', async () => {
           const result = await app.lambdaHandler(event, context)
   
           expect(result).to.be.an('object');
           expect(result.statusCode).to.equal(200);
           expect(result.body).to.be.an('string');
   
           let response = JSON.parse(result.body);
   
           expect(response).to.be.an('object');
           expect(response.message).to.be.equal("hello world");
           // expect(response.location).to.be.an("string");
       });
   });
   ```

1. Pilih **Komit**, lalu pilih **Komit** lagi.

   Anda sekarang telah menambahkan file yang disebut `test-handler.js` di bawah `hello-world/tests/unit` folder.

Anda sekarang telah menambahkan semua file sumber Anda.

Luangkan waktu sejenak untuk memeriksa ulang pekerjaan Anda dan pastikan Anda menempatkan semua file di folder yang benar. Struktur folder adalah sebagai berikut:

```
.
|— hello-world
|  |— tests
|     |— unit
|        |— test-handler.js
|  |— app.js
|— .npmignore
|— README.md
|— package.json
|— sam-template.yml
|— setup-sam.sh
```

## Langkah 6: Buat dan jalankan alur kerja
<a name="deploy-tut-lambda-cfn-workflow"></a>

Pada langkah ini, Anda membuat alur kerja yang mengemas kode sumber Lambda Anda dan menerapkannya. 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 pengujian (`Test`) — Pada pemicu, tindakan ini menginstal [manajer paket Node (npm)](https://www.npmjs.com/), dan kemudian menjalankan perintah. `npm run test` Perintah ini memberitahu npm untuk menjalankan `test` script didefinisikan dalam `package.json` file. `test`Skrip, pada gilirannya, menjalankan pengujian unit dan menghasilkan dua laporan: laporan pengujian (`junit.xml`) dan laporan cakupan kode (`clover.xml`). Untuk informasi selengkapnya, lihat [berkas package.json](#deploy-tut-lambda-cfn-files-package-json).

  Selanjutnya, tindakan pengujian mengubah laporan XHTML menjadi CodeCatalyst laporan dan menampilkannya di CodeCatalyst konsol, di bawah tab **Laporan** tindakan pengujian.

  Untuk informasi lebih lanjut tentang tindakan pengujian, lihat[Pengujian dengan alur kerjaPengujian dengan alur kerja](test-workflow-actions.md).
+ Tindakan build (`BuildBackend`) — Setelah menyelesaikan tindakan pengujian, tindakan build mengunduh dan menginstal AWS SAM CLI, mengemas sumbernya, dan menyalin paket `hello-world` ke bucket Amazon S3 Anda, tempat layanan Lambda mengharapkannya. Tindakan ini juga mengeluarkan file AWS SAM template baru yang disebut `sam-template-packaged.yml` dan menempatkannya dalam artefak keluaran yang disebut. `buildArtifact`

  Untuk informasi selengkapnya tentang tindakan build, lihat[Membangun dengan alur kerja](build-workflow-actions.md).
+ Tindakan penerapan (`DeployCloudFormationStack`) — Setelah menyelesaikan aksi build, tindakan deploy mencari artefak keluaran yang dihasilkan oleh build action (`buildArtifact`), menemukan AWS SAM template di dalamnya, dan kemudian menjalankan template. AWS SAM Template membuat tumpukan yang menyebarkan aplikasi tanpa server.

**Untuk membuat alur kerja**

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih **Buat alur kerja**.

1. Untuk **repositori Sumber, pilih**. `codecatalyst-cfn-source-repository`

1. Untuk **Cabang**, pilih`main`.

1. Pilih **Buat**.

1. Hapus kode sampel YAMAL.

1. Tambahkan kode YAML berikut:
**catatan**  
Dalam kode YAMAL berikut, Anda dapat menghilangkan `Connections:` bagian jika Anda mau. Jika Anda menghilangkan bagian ini, Anda harus memastikan bahwa peran yang ditentukan dalam bidang **peran IAM default** di lingkungan Anda mencakup izin dan kebijakan kepercayaan dari kedua peran yang dijelaskan. [Langkah 2: Buat AWS peran](#deploy-tut-lambda-cfn-roles) Untuk informasi selengkapnya tentang menyiapkan lingkungan dengan peran IAM default, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-cfn-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: PUSH
       Branches:
         - main   
   Actions:
     Test:
       Identifier: aws/managed-test@v1
       Inputs:
         Sources:
           - WorkflowSource
       Outputs:
         Reports:
           CoverageReport:
             Format: CLOVERXML
             IncludePaths:
               - "coverage/*"
           TestReport:
             Format: JUNITXML
             IncludePaths:
               - junit.xml
       Configuration:
         Steps:
           - Run: npm install
           - Run: npm run test  
     BuildBackend:
       Identifier: aws/build@v1
       DependsOn:
         - Test
       Environment:
         Name: codecatalyst-cfn-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-build-role
       Inputs:
         Sources:
           - WorkflowSource
       Configuration: 
         Steps:
           - Run: . ./setup-sam.sh
           - Run: sam package --template-file sam-template.yml --s3-bucket codecatalyst-cfn-s3-bucket --output-template-file sam-template-packaged.yml --region us-west-2
       Outputs:
         Artifacts:
           - Name: buildArtifact
             Files:
               - "**/*"
     DeployCloudFormationStack:
       Identifier: aws/cfn-deploy@v1
       DependsOn: 
         - BuildBackend
       Environment:
         Name: codecatalyst-cfn-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-deploy-role
       Inputs:
         Artifacts:
           - buildArtifact
         Sources: []
       Configuration:
         name: codecatalyst-cfn-stack
         region: us-west-2
         role-arn: arn:aws:iam::111122223333:role/StackRole
         template: ./sam-template-packaged.yml
         capabilities: CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND
   ```

   Pada kode sebelumnya, ganti:
   + Kedua contoh *codecatalyst-cfn-environment* dengan nama lingkungan Anda.
   + Kedua contoh *codecatalyst-account-connection* dengan nama tampilan koneksi akun Anda. Nama tampilan mungkin nomor. Untuk informasi selengkapnya, lihat [Langkah 3: Tambahkan AWS peran ke CodeCatalyst](#deploy-tut-lambda-cfn-roles-add).
   + *codecatalyst-build-role*dengan nama peran build yang Anda buat[Langkah 2: Buat AWS peran](#deploy-tut-lambda-cfn-roles).
   + *codecatalyst-cfn-s3-bucket*dengan nama bucket Amazon S3 yang Anda buat. [Langkah 4: Buat ember Amazon S3](#deploy-tut-lambda-cfn-s3)
   + Kedua instance *us-west-2* dengan Wilayah tempat bucket Amazon S3 Anda berada (instance pertama) dan tempat tumpukan Anda akan diterapkan (instance kedua). Daerah ini bisa berbeda. Tutorial ini mengasumsikan bahwa kedua Wilayah diatur ke`us-west-2`. Untuk detail tentang Wilayah yang didukung oleh Amazon S3 dan CloudFormation, lihat [Titik akhir dan kuota layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) di. *Referensi Umum AWS*
   + *codecatalyst-deploy-role*dengan nama peran penerapan yang Anda buat. [Langkah 2: Buat AWS peran](#deploy-tut-lambda-cfn-roles)
   + *codecatalyst-cfn-environment*dengan nama lingkungan yang Anda buat[Prasyarat](#deploy-tut-lambda-cfn-prereqs).
   + *arn:aws:iam::111122223333:role/StackRole*dengan Nama Sumber Daya Amazon (ARN) dari peran tumpukan yang Anda buat. [Langkah 2: Buat AWS peran](#deploy-tut-lambda-cfn-roles)
**catatan**  
Jika Anda memutuskan untuk tidak membuat peran build, deploy, dan stack, ganti *codecatalyst-build-role**codecatalyst-deploy-role*, dan *arn:aws:iam::111122223333:role/StackRole* dengan nama atau ARN peran tersebut. `CodeCatalystWorkflowDevelopmentRole-spaceName` Untuk informasi selengkapnya tentang peran ini, silakan lihat [Langkah 2: Buat AWS peran](#deploy-tut-lambda-cfn-roles).

   Untuk informasi tentang properti dalam kode yang ditunjukkan sebelumnya, lihat[Tindakan 'Menyebarkan CloudFormation tumpukan' YAMAL](deploy-action-ref-cfn.md).

1. (Opsional) Pilih **Validasi** untuk memastikan kode YAMG valid sebelum melakukan.

1. Pilih **Terapkan**.

1. Pada kotak dialog **Commit workflow**, masukkan yang berikut ini:

   1. Untuk **nama file Workflow**, pertahankan default,`codecatalyst-cfn-workflow`.

   1. Untuk **pesan Commit**, masukkan:

      ```
      add initial workflow file
      ```

   1. Untuk **Repositori, pilih**. **codecatalyst-cfn-source-repository**

   1. Untuk **nama Branch**, pilih **main**.

   1. Pilih **Terapkan**.

   Anda sekarang telah membuat alur kerja. Jalankan alur kerja dimulai secara otomatis karena pemicu yang ditentukan di bagian atas alur kerja. Khususnya, ketika Anda melakukan (dan mendorong) `codecatalyst-cfn-workflow.yaml` file ke repositori sumber Anda, pemicu memulai alur kerja dijalankan.

**Untuk melihat alur kerja yang sedang berjalan**

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih alur kerja yang baru saja Anda buat:`codecatalyst-cfn-workflow`.

1. Pilih tab **Runs**.

1. Di kolom **Run ID**, pilih run ID.

1. Pilih **Uji** untuk melihat kemajuan tes.

1. Pilih **BuildBackend**untuk melihat kemajuan pembangunan.

1. Pilih **DeployCloudFormationStack**untuk melihat kemajuan penerapan.

   Untuk informasi selengkapnya tentang melihat detail run, lihat[Melihat status dan detail alur kerja](workflows-view-run.md).

1. Saat **DeployCloudFormationStack**tindakan selesai, lakukan hal berikut:
   + Jika alur kerja berjalan berhasil, pergi ke prosedur berikutnya.
   + Jika alur kerja gagal pada **Pengujian** atau **BuildBackend**tindakan, pilih **Log** untuk memecahkan masalah.
   + Jika alur kerja berjalan gagal pada **DeployCloudFormationStack**tindakan, pilih tindakan penerapan, lalu pilih tab **Ringkasan**. Gulir ke bagian **CloudFormation peristiwa** untuk melihat pesan kesalahan terperinci. Jika terjadi rollback, hapus `codecatalyst-cfn-stack` tumpukan melalui CloudFormation konsol AWS sebelum menjalankan kembali alur kerja.

**Untuk memverifikasi penyebaran**

1. Setelah penerapan berhasil, pilih **Variabel (7)** dari bilah menu horizontal di dekat bagian atas. (Jangan memilih **Variabel** di panel di sebelah kanan.)

1. Di samping **HelloWorldApi**, tempel `https://` URL ke browser.

   Pesan JSON **hello world** dari fungsi Lambda ditampilkan, menunjukkan bahwa alur kerja berhasil digunakan dan dikonfigurasi fungsi Lambda dan API Gateway.
**Tip**  
Anda dapat CodeCatalyst menampilkan URL ini dalam diagram alur kerja dengan beberapa konfigurasi kecil. Untuk informasi selengkapnya, lihat [Menampilkan URL aplikasi dalam diagram alur kerja](deploy-app-url.md).

**Untuk memverifikasi hasil pengujian unit dan cakupan kode**

1. Dalam diagram alur kerja, pilih **Uji**, lalu pilih **Laporan**.

1. Pilih **TestReport**untuk melihat hasil pengujian unit, atau pilih **CoverageReport**untuk melihat detail cakupan kode file yang sedang diuji, dalam hal ini, `app.js` dan`test-handler.js`.

**Untuk memverifikasi sumber daya yang digunakan**

1. Masuk ke Konsol Manajemen AWS dan buka konsol API Gateway di [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Amati **codecatalyst-cfn-stack**API yang dibuat AWS SAM template. Nama API berasal dari `Configuration/name` nilai dalam file definisi alur kerja (`codecatalyst-cfn-workflow.yaml`).

1. Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Di panel navigasi, pilih **Fungsi**.

1. Pilih fungsi Lambda Anda,. `codecatalyst-cfn-stack-HelloWorldFunction-string`

1. Anda dapat melihat bagaimana API Gateway adalah pemicu untuk fungsi tersebut. Integrasi ini secara otomatis dikonfigurasi oleh jenis AWS SAM `AWS::Serverless::Function` sumber daya.

## Langkah 7: Buat perubahan
<a name="deploy-tut-lambda-cfn-change"></a>

Pada langkah ini, Anda membuat perubahan pada kode sumber Lambda Anda dan melakukan itu. Komit ini memulai alur kerja baru. Proses ini menerapkan fungsi Lambda baru dalam skema biru-hijau yang menggunakan konfigurasi perpindahan lalu lintas default yang ditentukan di konsol Lambda.

**Untuk membuat perubahan pada sumber Lambda Anda**

1. Masuk CodeCatalyst, navigasikan ke proyek Anda.

1. Di panel navigasi, pilih **Kode**, lalu pilih **Repositori sumber**.

1. Pilih repositori `codecatalyst-cfn-source-repository` sumber Anda.

1. Ubah file aplikasi:

   1. Pilih `hello-world` foldernya.

   1. Pilih `app.js` file.

   1. Pilih **Edit**.

   1. Pada baris 23, ubah `hello world` ke**Tutorial complete\$1**.

   1. Pilih **Komit**, lalu pilih **Komit** lagi.

      Komit menyebabkan alur kerja berjalan dimulai. Proses ini akan gagal karena Anda belum memperbarui pengujian unit untuk mencerminkan perubahan nama.

1. Perbarui pengujian unit:

   1. Pilih `hello-world\tests\unit\test-handler.js`.

   1. Pilih **Edit**.

   1. Pada baris 19, ubah `hello world` ke**Tutorial complete\$1**.

   1. Pilih **Komit**, lalu pilih **Komit** lagi.

      Komit menyebabkan alur kerja lain dijalankan. Lari ini akan berhasil.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih`codecatalyst-cfn-workflow`, lalu pilih **Runs**.

1. Pilih ID run dari run terbaru. Seharusnya masih dalam proses.

1. Pilih **Uji**, **BuildBackend**, dan **DeployCloudFormationStack**untuk melihat alur kerja berjalan kemajuan.

1. Saat alur kerja selesai, pilih **Variabel (7)** di dekat bagian atas.

1. Di samping **HelloWorldApi**, tempel `https://` URL ke browser.

   Sebuah `Tutorial complete!` pesan muncul di browser, menunjukkan bahwa aplikasi baru Anda berhasil digunakan.

## Bersihkan
<a name="deploy-tut-lambda-cfn-clean-up"></a>

Bersihkan file dan layanan yang digunakan dalam tutorial ini untuk menghindari biaya untuk mereka.

**Untuk membersihkan di CodeCatalyst konsol**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Hapus`codecatalyst-cfn-workflow`.

1. Hapus`codecatalyst-cfn-environment`.

1. Hapus`codecatalyst-cfn-source-repository`.

1. Hapus`codecatalyst-cfn-project`.

**Untuk membersihkan di Konsol Manajemen AWS**

1. Bersihkan CloudFormation, sebagai berikut:

   1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

   1. Hapus`codecatalyst-cfn-stack`.

      Menghapus tumpukan menghapus semua sumber daya tutorial dari API Gateway dan layanan Lambda.

1. Bersihkan di Amazon S3, sebagai berikut:

   1. Buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

   1. Pilih `codecatalyst-cfn-s3-bucket`.

   1. Hapus isi ember.

   1. Hapus bucket.

1. Bersihkan di IAM, sebagai berikut:

   1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Hapus`codecatalyst-deploy-policy`.

   1. Hapus`codecatalyst-build-policy`.

   1. Hapus`codecatalyst-stack-policy`.

   1. Hapus`codecatalyst-deploy-role`.

   1. Hapus`codecatalyst-build-role`.

   1. Hapus`codecatalyst-stack-role`.

**Dalam tutorial ini, Anda belajar bagaimana menerapkan aplikasi tanpa server sebagai CloudFormation tumpukan menggunakan CodeCatalyst alur kerja dan tindakan tumpukan Deploy. CloudFormation **

# Menambahkan aksi 'Deploy stack' CloudFormation
<a name="deploy-action-cfn-adding"></a>

Gunakan petunjuk berikut untuk menambahkan tindakan ** CloudFormation tumpukan Deploy** ke alur kerja Anda. 

------
#### [ Visual ]

**Untuk menambahkan tindakan 'Deploy CloudFormation stack' menggunakan editor visual**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari tindakan ** CloudFormation tumpukan Deploy**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **Deploy CloudFormation stack**. Kotak dialog detail tindakan muncul. Pada kotak dialog ini:
     + (Opsional) Pilih **Unduh** untuk [melihat kode sumber tindakan](workflows-view-source.md#workflows-view-source.title).
     + Pilih **Tambahkan ke alur kerja** untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

1. Pada tab **Input** dan **Konfigurasi**, lengkapi bidang sesuai dengan kebutuhan Anda. Untuk deskripsi setiap bidang, lihat[Tindakan 'Menyebarkan CloudFormation tumpukan' YAMAL](deploy-action-ref-cfn.md). Referensi ini memberikan informasi rinci tentang setiap bidang (dan nilai properti YAMAL yang sesuai) seperti yang muncul di YAMAL dan editor visual.

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

------
#### [ YAML ]

**Untuk menambahkan tindakan 'Deploy CloudFormation stack' menggunakan editor YAMAL**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari tindakan ** CloudFormation tumpukan Deploy**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **Deploy CloudFormation stack**. Kotak dialog detail tindakan muncul. Pada kotak dialog ini:
     + (Opsional) Pilih **Unduh** untuk [melihat kode sumber tindakan](workflows-view-source.md#workflows-view-source.title).
     + Pilih **Tambahkan ke alur kerja** untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

1. Ubah properti dalam kode YAMAL sesuai dengan kebutuhan Anda. Penjelasan tentang setiap properti yang tersedia disediakan di[Tindakan 'Menyebarkan CloudFormation tumpukan' YAMAL](deploy-action-ref-cfn.md).

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

------

# Mengkonfigurasi rollback
<a name="deploy-consumption-enable-alarms"></a>

Secara default, jika tindakan ** CloudFormation tumpukan Deploy** gagal, itu akan menyebabkan CloudFormation untuk memutar kembali tumpukan ke status stabil terakhir yang diketahui. Anda dapat mengubah perilaku sehingga rollback terjadi tidak hanya ketika tindakan gagal, tetapi juga ketika CloudWatch alarm Amazon tertentu terjadi. Untuk informasi selengkapnya tentang CloudWatch alarm, lihat [Menggunakan CloudWatch alarm Amazon](https://docs.aws.amazon.com/) di * CloudWatch Panduan Pengguna Amazon*.

Anda juga dapat mengubah perilaku default sehingga CloudFormation tidak memutar kembali tumpukan ketika tindakan gagal. 

Gunakan petunjuk berikut untuk mengkonfigurasi rollback.

**catatan**  
Anda tidak dapat memulai rollback secara manual.

------
#### [ Visual ]

**Sebelum Anda mulai**

1. Pastikan Anda memiliki [alur kerja](workflow.md) yang menyertakan tindakan ** CloudFormation tumpukan Deploy** yang berfungsi. Untuk informasi selengkapnya, lihat [Menyebarkan tumpukan CloudFormation](deploy-action-cfn.md).

1. Dalam peran yang ditentukan dalam **peran Stack - bidang opsional** dari tindakan ** CloudFormation tumpukan Deploy**, pastikan untuk menyertakan **CloudWatchFullAccess**izin. Untuk informasi tentang membuat peran ini dengan izin yang sesuai, lihat[Langkah 2: Buat AWS peran](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles).

**Untuk mengonfigurasi alarm rollback untuk tindakan 'Deploy stack' CloudFormation**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Pilih tindakan ** CloudFormation tumpukan Deploy** Anda.

1. Di panel detail, pilih **Konfigurasi**.

1. Di bagian bawah, perluas **Advanced**.

1. Di bawah **Monitor alarm ARNs**, pilih **Tambahkan alarm**.

1. Masukkan informasi ke dalam bidang berikut.
   + **Alarm ARN**

     Tentukan Nama Sumber Daya Amazon (ARN) dari CloudWatch alarm Amazon untuk digunakan sebagai pemicu rollback. Misalnya, `arn:aws:cloudwatch::123456789012:alarm/MyAlarm`. Anda dapat memiliki maksimal lima pemicu rollback.
**catatan**  
Jika Anda menentukan ARN CloudWatch alarm, Anda juga harus mengonfigurasi izin tambahan untuk mengaktifkan tindakan untuk mengakses. CloudWatch Untuk informasi selengkapnya, lihat [Mengkonfigurasi rollback](#deploy-consumption-enable-alarms).
   + **Waktu pemantauan**

     Tentukan jumlah waktu, dari 0 hingga 180 menit, di mana CloudFormation memantau alarm yang ditentukan. Pemantauan dimulai *setelah* semua sumber daya tumpukan telah digunakan. Jika alarm terjadi dalam waktu pemantauan yang ditentukan, maka penerapan gagal, dan CloudFormation memutar kembali seluruh operasi tumpukan.

     Default: 0. CloudFormation hanya memonitor alarm saat sumber daya tumpukan sedang digunakan, bukan setelahnya.

------
#### [ YAML ]

**Untuk mengonfigurasi pemicu rollback untuk tindakan 'Deploy stack' CloudFormation**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja yang menyertakan tindakan ** CloudFormation tumpukan Deploy**. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Tambahkan `monitor-alarm-arns` dan `monitor-timeout-in-minutes` properti dalam kode YAMAL untuk menambahkan pemicu rollback. Untuk penjelasan masing-masing properti, lihat[Tindakan 'Menyebarkan CloudFormation tumpukan' YAMAL](deploy-action-ref-cfn.md).

1. Dalam peran yang ditentukan dalam `role-arn` properti tindakan ** CloudFormation tumpukan Deploy**, pastikan untuk menyertakan **CloudWatchFullAccess**izin. Untuk informasi tentang membuat peran ini dengan izin yang sesuai, lihat[Langkah 2: Buat AWS peran](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles).

------

------
#### [ Visual ]

**Untuk mematikan rollback untuk tindakan 'Deploy stack' CloudFormation**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja yang menyertakan tindakan ** CloudFormation tumpukan Deploy**. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Pilih tindakan ** CloudFormation tumpukan Deploy** Anda.

1. Di panel detail, pilih **Konfigurasi**.

1. Di bagian bawah, perluas **Advanced**.

1. Nyalakan **Nonaktifkan rollback**.

------
#### [ YAML ]

**Untuk mematikan rollback untuk tindakan 'Deploy stack' CloudFormation**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja yang menyertakan tindakan ** CloudFormation tumpukan Deploy**. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Tambahkan `disable-rollback: 1` properti dalam kode YAMAL untuk menghentikan rollback. Untuk penjelasan tentang properti ini, lihat[Tindakan 'Menyebarkan CloudFormation tumpukan' YAMAL](deploy-action-ref-cfn.md).

------

# Variabel 'Menyebarkan tumpukan' CloudFormation
<a name="deploy-action-cfn-variables"></a>

Tindakan ** CloudFormation tumpukan Deploy** menghasilkan dan menetapkan variabel berikut pada waktu berjalan. Ini dikenal sebagai *variabel yang telah ditentukan*.

Untuk informasi tentang mereferensikan variabel-variabel ini dalam alur kerja, lihat. [Menggunakan variabel yang telah ditentukan](workflows-using-predefined-variables.md)


| Key | Nilai | 
| --- | --- | 
|  platform penyebaran  |  Nama platform penyebaran. Hardcode ke. `AWS:CloudFormation`  | 
|  region  |  Kode wilayah Wilayah AWS yang digunakan selama alur kerja dijalankan. Contoh: `us-west-2`  | 
|  tumpukan-id  |  Nama Sumber Daya Amazon (ARN) dari tumpukan yang digunakan. Contoh: `arn:aws:cloudformation:us-west-2:111122223333:stack/codecatalyst-cfn-stack/6aad4380-100a-11ec-a10a-03b8a84d40df`  | 

# Tindakan 'Menyebarkan CloudFormation tumpukan' YAMAL
<a name="deploy-action-ref-cfn"></a>

Berikut ini adalah definisi YAMAL dari tindakan ** CloudFormation tumpukan Deploy**. Untuk mempelajari cara menggunakan tindakan ini, lihat[Menyebarkan tumpukan CloudFormation](deploy-action-cfn.md).

Definisi tindakan ini ada sebagai bagian dalam file definisi alur kerja yang lebih luas. Untuk informasi lebih lanjut tentang file ini, lihat[Alur kerja definisi YAMAL](workflow-reference.md).

**catatan**  
Sebagian besar properti YAMAL yang mengikuti memiliki elemen UI yang sesuai di editor visual. Untuk mencari elemen UI, gunakan **Ctrl\$1F**. Elemen akan terdaftar dengan properti YAMLnya yang terkait.

```
# The workflow definition starts here.
# See Properti tingkat atas for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.    
  DeployCloudFormationStack:  
    Identifier: aws/cfn-deploy@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: DeployRole
    Inputs:
      Sources:
        - source-name-1
      Artifacts:
        - CloudFormation-artifact
    Configuration:
      name: stack-name
      region: us-west-2
      template: template-path
      role-arn: arn:aws:iam::123456789012:role/StackRole        
      capabilities: CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND
      parameter-overrides: KeyOne=ValueOne,KeyTwo=ValueTwo | path-to-JSON-file
      no-execute-changeset: 1|0
      fail-on-empty-changeset: 1|0
      disable-rollback: 1|0
      termination-protection: 1|0
      timeout-in-minutes: minutes
      notification-arns: arn:aws:sns:us-east-1:123456789012:MyTopic,arn:aws:sns:us-east-1:123456789012:MyOtherTopic
      monitor-alarm-arns: arn:aws:cloudwatch::123456789012:alarm/MyAlarm,arn:aws:cloudwatch::123456789012:alarm/MyOtherAlarm
      monitor-timeout-in-minutes: minutes       
      tags: '[{"Key":"MyKey1","Value":"MyValue1"},{"Key":"MyKey2","Value":"MyValue2"}]'
```

## DeployCloudFormationStack
<a name="deploy.action.cfn.deploycloudformationstack"></a>

(Diperlukan)

Tentukan nama tindakan. Semua nama tindakan harus unik dalam alur kerja. Nama aksi terbatas pada karakter alfanumerik (a-z, A-Z, 0-9), tanda hubung (-), dan garis bawah (\$1). Spasi tidak diizinkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan karakter dan spasi khusus dalam nama tindakan.

Default: `DeployCloudFormationStack_nn`.

UI yang sesuai: Tab **konfigurasi/Nama tampilan tindakan**

## Identifier
<a name="deploy.action.cfn.identifier"></a>

(*DeployCloudFormationStack*/**Identifier**)

(Diperlukan)

Mengidentifikasi tindakan. Jangan mengubah properti ini kecuali Anda ingin mengubah versi. Untuk informasi selengkapnya, lihat [Menentukan versi tindakan yang akan digunakan](workflows-action-versions.md).

Default: `aws/cfn-deploy@v1`.

**UI yang sesuai: Diagram alur DeployCloudFormationStack kerja/\$1nn/ aws/cfn-deploy @v1 label**

## DependsOn
<a name="deploy.action.cfn.dependson"></a>

(*DeployCloudFormationStack*/**DependsOn**)

(Opsional)

Tentukan tindakan, grup tindakan, atau gerbang yang harus berjalan dengan sukses agar tindakan ini berjalan.

Untuk informasi selengkapnya tentang fungsionalitas 'tergantung pada', lihat. [Tindakan pengurutan](workflows-depends-on.md)

UI yang sesuai: Tab **masukan/Tergantung pada** - opsional

## Compute
<a name="deploy.action.cfn.computename"></a>

(*DeployCloudFormationStack*/**Compute**)

(Opsional)

Mesin komputasi digunakan untuk menjalankan tindakan alur kerja Anda. Anda dapat menentukan komputasi baik di tingkat alur kerja atau di tingkat tindakan, tetapi tidak keduanya. Ketika ditentukan pada tingkat alur kerja, konfigurasi komputasi berlaku untuk semua tindakan yang ditentukan dalam alur kerja. Pada tingkat alur kerja, Anda juga dapat menjalankan beberapa tindakan pada instance yang sama. Untuk informasi selengkapnya, lihat [Berbagi komputasi di seluruh tindakan](compute-sharing.md).

UI yang sesuai: *tidak ada*

## Type
<a name="deploy.action.cfn.computetype"></a>

(*DeployCloudFormationStack*/Compute/**Type**)

(Diperlukan [Compute](#deploy.action.cfn.computename) jika disertakan)

Jenis mesin komputasi. Anda dapat menggunakan salah satu nilai berikut:
+ **EC2** (editor visual) atau `EC2` (editor YAMAL)

  Dioptimalkan untuk fleksibilitas selama aksi berjalan.
+ **Lambda** (editor visual) atau `Lambda` (editor YAMAL)

  Kecepatan start-up aksi yang dioptimalkan.

Untuk informasi selengkapnya tentang jenis komputasi, lihat[Jenis komputasi](workflows-working-compute.md#compute.types).

**UI yang sesuai: Konfigurasi tab/Advanced - tipe opsional/Komputasi**

## Fleet
<a name="deploy.action.cfn.computefleet"></a>

(*DeployCloudFormationStack*/Compute/**Fleet**)

(Opsional)

Tentukan mesin atau armada yang akan menjalankan alur kerja atau tindakan alur kerja Anda. Dengan armada sesuai permintaan, ketika suatu tindakan dimulai, alur kerja menyediakan sumber daya yang dibutuhkan, dan mesin dihancurkan ketika tindakan selesai. Contoh armada sesuai permintaan:`Linux.x86-64.Large`,. `Linux.x86-64.XLarge` Untuk informasi lebih lanjut tentang armada sesuai permintaan, lihat. [Properti armada sesuai permintaan](workflows-working-compute.md#compute.on-demand)

Dengan armada yang disediakan, Anda mengonfigurasi satu set mesin khusus untuk menjalankan tindakan alur kerja Anda. Mesin-mesin ini tetap menganggur, siap untuk memproses tindakan segera. Untuk informasi lebih lanjut tentang armada yang disediakan, lihat. [Properti armada yang disediakan](workflows-working-compute.md#compute.provisioned-fleets)

Jika `Fleet` dihilangkan, defaultnya adalah. `Linux.x86-64.Large`

**UI yang sesuai: Konfigurasi tab/Advanced - armada opsional/Komputasi**

## Timeout
<a name="deploy.action.cfn.timeout"></a>

(*DeployCloudFormationStack*/**Timeout**)

(Opsional)

Tentukan jumlah waktu dalam menit (editor YAMG), atau jam dan menit (editor visual), bahwa tindakan dapat berjalan sebelum CodeCatalyst mengakhiri tindakan. Minimal adalah 5 menit dan maksimum dijelaskan dalam[Kuota untuk alur kerja di CodeCatalyst](workflows-quotas.md). Batas waktu default sama dengan batas waktu maksimum.

UI yang sesuai: Tab konfigurasi/Batas **waktu dalam hitungan menit** - opsional

## Environment
<a name="deploy.action.cfn.environment"></a>

(*DeployCloudFormationStack*/**Environment**)

(Diperlukan)

Tentukan CodeCatalyst lingkungan yang akan digunakan dengan tindakan. Tindakan terhubung ke Akun AWS dan VPC Amazon opsional yang ditentukan di lingkungan yang dipilih. Tindakan ini menggunakan peran IAM default yang ditentukan di lingkungan untuk terhubung ke Akun AWS, dan menggunakan peran IAM yang ditentukan dalam [koneksi VPC Amazon untuk terhubung ke VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) Amazon.

**catatan**  
Jika peran IAM default tidak memiliki izin yang diperlukan oleh tindakan, Anda dapat mengonfigurasi tindakan untuk menggunakan peran yang berbeda. Untuk informasi selengkapnya, lihat [Mengubah peran IAM dari suatu tindakan](deploy-environments-switch-role.md).

Untuk informasi lebih lanjut tentang lingkungan, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md) dan[Pembuatan lingkungan](deploy-environments-creating-environment.md).

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Name
<a name="deploy.action.cfn.environment.name"></a>

(*DeployCloudFormationStack*/Environment/**Name**)

(Diperlukan [Environment](#deploy.action.cfn.environment) jika disertakan)

Tentukan nama lingkungan yang ada yang ingin Anda kaitkan dengan tindakan.

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Connections
<a name="deploy.action.cfn.environment.connections"></a>

(*DeployCloudFormationStack*/Environment/**Connections**)

(Opsional dalam versi tindakan yang lebih baru; diperlukan dalam versi yang lebih lama)

Tentukan koneksi akun untuk dikaitkan dengan tindakan. Anda dapat menentukan maksimum satu koneksi akun di bawah`Environment`.

Jika Anda tidak menentukan koneksi akun:
+ Tindakan menggunakan Akun AWS koneksi dan peran IAM default yang ditentukan di lingkungan di CodeCatalyst konsol. Untuk informasi tentang menambahkan koneksi akun dan peran IAM default ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).
+ Peran IAM default harus menyertakan kebijakan dan izin yang diperlukan oleh tindakan. Untuk menentukan kebijakan dan izin tersebut, lihat deskripsi properti **Peran** dalam dokumentasi definisi YAMAL tindakan.

Untuk informasi selengkapnya tentang koneksi akun, lihat[Memungkinkan akses ke AWS sumber daya yang terhubung Akun AWS](ipa-connect-account.md). Untuk informasi tentang menambahkan koneksi akun ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Name
<a name="deploy.action.cfn.environment.connections.name"></a>

(*DeployCloudFormationStack*/Environment/Connections/**Name**)

(Diperlukan [Connections](#deploy.action.cfn.environment.connections) jika disertakan)

Tentukan nama koneksi akun.

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Role
<a name="deploy.action.cfn.environment.connections.role"></a>

(*DeployCloudFormationStack*/Environment/Connections/**Role**)

(Diperlukan [Connections](#deploy.action.cfn.environment.connections) jika disertakan)

Tentukan nama peran IAM yang digunakan tindakan ** CloudFormation tumpukan Deploy** untuk mengakses AWS dan layanan. CloudFormation Pastikan Anda telah [menambahkan peran ke CodeCatalyst ruang Anda](ipa-connect-account-addroles.md), dan peran tersebut mencakup kebijakan berikut.

Jika Anda tidak menentukan peran IAM, maka tindakan tersebut menggunakan peran IAM default yang tercantum di [lingkungan](deploy-environments.md) di CodeCatalyst konsol. Jika Anda menggunakan peran default di lingkungan, pastikan itu memiliki kebijakan berikut.
+ Kebijakan izin berikut:
**Awas**  
Batasi izin untuk yang ditampilkan dalam kebijakan berikut. Menggunakan peran dengan izin yang lebih luas dapat menimbulkan risiko keamanan.
**catatan**  
Pertama kali peran digunakan, gunakan wildcard berikut dalam pernyataan kebijakan sumber daya dan kemudian cakup kebijakan dengan nama sumber daya setelah tersedia.  

  ```
  "Resource": "*"
  ```
+ Kebijakan kepercayaan khusus berikut:

**catatan**  
Anda dapat menggunakan `CodeCatalystWorkflowDevelopmentRole-spaceName` peran dengan tindakan ini, jika Anda mau. Untuk informasi selengkapnya tentang peran ini, silakan lihat [Membuat **CodeCatalystWorkflowDevelopmentRole-*spaceName***peran untuk akun dan ruang Anda](ipa-iam-roles.md#ipa-iam-roles-service-create). Memahami bahwa `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut memiliki izin akses penuh yang dapat menimbulkan risiko keamanan. Kami menyarankan Anda hanya menggunakan peran ini dalam tutorial dan skenario di mana keamanan kurang menjadi perhatian. 

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' '/ Environment/account/role Peran**

## Inputs
<a name="deploy.action.cfn.inputs"></a>

(*DeployCloudFormationStack*/**Inputs**)

(Opsional)

`Inputs`Bagian ini mendefinisikan data yang `DeployCloudFormationStack` dibutuhkan selama menjalankan alur kerja.

**catatan**  
Maksimal empat input (satu sumber dan tiga artefak) diizinkan per tindakan tumpukan **Deploy CloudFormation **.

Jika Anda perlu merujuk ke file yang berada di input yang berbeda (katakanlah sumber dan artefak), input sumber adalah input utama, dan artefak adalah input sekunder. Referensi ke file dalam input sekunder mengambil awalan khusus untuk menyisihkannya dari primer. Lihat perinciannya di [Contoh: Merujuk file dalam beberapa artefak](workflows-working-artifacts-ex.md#workflows-working-artifacts-ex-ref-file).

UI yang sesuai: **Tab input**

## Sources
<a name="deploy.action.cfn.inputs.sources"></a>

(*DeployCloudFormationStack*/Inputs/**Sources**)

(Diperlukan jika CloudFormation atau AWS SAM template Anda disimpan dalam repositori sumber)

Jika AWS SAM template CloudFormation atau Anda disimpan dalam repositori sumber, tentukan label repositori sumber tersebut. Saat ini, satu-satunya label yang didukung adalah`WorkflowSource`.

Jika Anda CloudFormation atau AWS SAM template tidak terkandung dalam repositori sumber, itu harus berada dalam artefak yang dihasilkan oleh tindakan lain, atau dalam bucket Amazon S3.

Untuk informasi selengkapnya tentang sumber, lihat [Menghubungkan repositori sumber ke alur kerja](workflows-sources.md).

UI yang sesuai: **Tab/Sumber** Input - opsional

## Artifacts - input
<a name="deploy.action.cfn.inputs.artifacts"></a>

(*DeployCloudFormationStack*/Inputs/**Artifacts**)

(Diperlukan jika CloudFormation atau AWS SAM template Anda disimpan dalam [artefak keluaran](workflows-working-artifacts-output.md) dari tindakan sebelumnya)

Jika AWS SAM templat CloudFormation atau yang ingin Anda terapkan terkandung dalam artefak yang dihasilkan oleh tindakan sebelumnya, tentukan artefak tersebut di sini. Jika CloudFormation template Anda tidak terkandung dalam artefak, itu harus berada di repositori sumber Anda atau di bucket Amazon S3.

Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihat[Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).

UI yang sesuai: Tab **konfigurasi/Artefak** - opsional

## Configuration
<a name="deploy.action.cfn.configuration"></a>

(*DeployCloudFormationStack*/**Configuration**)

(Diperlukan)

Bagian di mana Anda dapat menentukan properti konfigurasi tindakan.

UI yang sesuai: Tab **konfigurasi**

## name
<a name="deploy.action.cfn.stackname"></a>

(*DeployCloudFormationStack*/Configuration/**name**)

(Diperlukan)

Tentukan nama untuk CloudFormation tumpukan yang dibuat atau diperbarui oleh tindakan ** CloudFormation tumpukan Deploy**.

UI yang sesuai: Tab konfigurasi/Nama **tumpukan**

## region
<a name="deploy.action.cfn.stackregion"></a>

(*DeployCloudFormationStack*/Configuration/**region**)

(Diperlukan)

Tentukan Wilayah AWS ke mana tumpukan akan digunakan. Untuk daftar kode Wilayah, lihat [Titik akhir Regional](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes).

UI yang sesuai: Tab konfigurasi/Wilayah **tumpukan**

## template
<a name="deploy.action.cfn.templatepath"></a>

(*DeployCloudFormationStack*/Configuration/**template**)

(Diperlukan)

Tentukan nama dan jalur ke file CloudFormation atau AWS SAM template Anda. Template dapat dalam format JSON atau YAMG, dan dapat berada di repositori sumber, artefak dari tindakan sebelumnya, atau bucket Amazon S3. Jika file template berada dalam repositori sumber atau artefak, jalurnya relatif terhadap sumber atau akar artefak. Jika template berada di bucket Amazon S3, jalurnya adalah nilai **URL Objek** template.

Contoh:

`./MyFolder/MyTemplate.json`

`MyFolder/MyTemplate.yml`

`https://MyBucket.s3.us-west-2.amazonaws.com/MyTemplate.yml`

**catatan**  
Anda mungkin perlu menambahkan awalan ke jalur file template untuk menunjukkan artefak atau sumber mana yang akan menemukannya. Untuk informasi selengkapnya, lihat [Merujuk file repositori sumber](workflows-sources-reference-files.md) dan [Mereferensikan file dalam artefak](workflows-working-artifacts-refer-files.md).

**UI yang sesuai: Tab/Template Konfigurasi**

## role-arn
<a name="deploy.action.cfn.stackrolearn"></a>

(*DeployCloudFormationStack*/Configuration/**role-arn**)

(Diperlukan)

Tentukan Nama Sumber Daya Amazon (ARN) dari peran tumpukan. CloudFormation menggunakan peran ini untuk mengakses dan memodifikasi sumber daya di tumpukan Anda. Sebagai contoh: `arn:aws:iam::123456789012:role/StackRole`.

Pastikan peran tumpukan meliputi:
+ Satu atau beberapa kebijakan izin. Kebijakan tergantung pada sumber daya yang Anda miliki di tumpukan Anda. Misalnya, jika tumpukan Anda menyertakan AWS Lambda fungsi, Anda perlu menambahkan izin yang memberikan akses ke Lambda. Jika Anda mengikuti tutorial yang dijelaskan[Tutorial: Menyebarkan aplikasi tanpa server](deploy-tut-lambda.md), itu termasuk prosedur berjudul, [Untuk membuat peran tumpukan](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles-stack) yang mencantumkan izin yang dibutuhkan peran tumpukan jika Anda menerapkan tumpukan aplikasi tanpa server yang khas.
**Awas**  
Batasi izin untuk yang diperlukan oleh CloudFormation layanan untuk mengakses sumber daya di tumpukan Anda. Menggunakan peran dengan izin yang lebih luas dapat menimbulkan risiko keamanan.
+ Kebijakan kepercayaan berikut:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "",
              "Effect": "Allow",
              "Principal": {
                  "Service": "cloudformation.amazonaws.com"
              },
              "Action": "sts:AssumeRole"
          }
      ]
  }
  ```

------

Secara opsional, kaitkan peran ini dengan koneksi akun Anda. Untuk mempelajari lebih lanjut tentang mengaitkan peran IAM dengan koneksi akun, lihat. [Menambahkan peran IAM ke koneksi akun](ipa-connect-account-addroles.md) Jika Anda tidak mengaitkan peran tumpukan dengan koneksi akun, maka peran tumpukan tidak akan muncul di daftar drop-down **peran Stack** di editor visual; namun, peran ARN masih dapat ditentukan di `role-arn` bidang menggunakan editor YAMG.

**catatan**  
Anda dapat menggunakan `CodeCatalystWorkflowDevelopmentRole-spaceName` peran dengan tindakan ini, jika Anda mau. Untuk informasi selengkapnya tentang peran ini, silakan lihat [Membuat **CodeCatalystWorkflowDevelopmentRole-*spaceName***peran untuk akun dan ruang Anda](ipa-iam-roles.md#ipa-iam-roles-service-create). Memahami bahwa `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut memiliki izin akses penuh yang dapat menimbulkan risiko keamanan. Kami menyarankan Anda hanya menggunakan peran ini dalam tutorial dan skenario di mana keamanan kurang menjadi perhatian. 

UI yang sesuai: Tab **konfigurasi/Peran tumpukan -** opsional

## capabilities
<a name="deploy.action.cfn.capabilities"></a>

(*DeployCloudFormationStack*/Configuration/**capabilities**)

(Diperlukan)

Tentukan daftar kemampuan IAM yang diperlukan untuk memungkinkan CloudFormation untuk membuat tumpukan tertentu. Dalam kebanyakan kasus, Anda dapat meninggalkan `capabilities` dengan nilai default`CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND`.

Jika Anda melihat `##[error] requires capabilities: [capability-name]` di log tindakan ** CloudFormation tumpukan Deploy**, lihat [Bagaimana cara memperbaiki kesalahan kemampuan IAM?](troubleshooting-workflows.md#troubleshooting-workflows-capabilities) informasi tentang cara memperbaiki masalah.

*Untuk informasi selengkapnya tentang kemampuan IAM, lihat [Mengakui sumber daya IAM dalam CloudFormation templat di Panduan Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities) IAM.*

**UI yang sesuai: Tab Konfigurasi/Lanjutan/Kemampuan**

## parameter-overrides
<a name="deploy.action.cfn.parameter.overrides"></a>

(*DeployCloudFormationStack*/Configuration/**parameter-overrides**)

(Opsional)

Tentukan parameter dalam CloudFormation atau AWS SAM templat yang tidak memiliki nilai default, atau yang ingin Anda tentukan nilai non-default. Untuk informasi selengkapnya tentang parameter, lihat [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) di *Panduan AWS CloudFormation Pengguna*.

`parameter-overrides`Properti menerima:
+ File JSON yang berisi parameter dan nilai.
+ Daftar parameter dan nilai yang terpisah koma.

**Untuk menentukan file JSON**

1. Pastikan file JSON menggunakan salah satu sintaks berikut:

   ```
   {
     "Parameters": {
       "Param1": "Value1",
       "Param2": "Value2",
       ...
     }
   }
   ```

   Atau...

   ```
   [
     {
        "ParameterKey": "Param1",
        "ParameterValue": "Value1"
     },
     ...
   ]
   ```

   (Ada sintaks lain, tetapi tidak didukung oleh CodeCatalyst pada saat penulisan.) *Untuk informasi selengkapnya tentang menentukan CloudFormation parameter dalam file JSON, lihat [Sintaks JSON yang didukung di Referensi](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/deploy/index.html#supported-json-syntax) Perintah.AWS CLI *

1. Tentukan jalur ke file JSON menggunakan salah satu format berikut:
   + Jika file JSON Anda berada dalam artefak keluaran dari tindakan sebelumnya, gunakan:

     `file:///artifacts/current-action-name/output-artifact-name/path-to-json-file`

     Lihat **Contoh 1** untuk detailnya.
   + Jika file JSON Anda berada di repositori sumber Anda, gunakan:

     `file:///sources/WorkflowSource/path-to-json-file`

     Lihat **Contoh 2** untuk detailnya.

     **Contoh 1** - File JSON berada di artefak keluaran

     ```
     ##My workflow YAML
     ...
     Actions:
       MyBuildAction:
         Identifier: aws/build@v1
         Outputs:
           Artifacts:
             - Name: ParamArtifact
               Files:
                 - params.json
         Configuration:
         ...
       MyDeployCFNStackAction:
         Identifier: aws/cfn-deploy@v1
         Configuration:
           parameter-overrides: file:///artifacts/MyDeployCFNStackAction/ParamArtifact/params.json
     ```

     **Contoh 2** - File JSON berada di repositori sumber Anda, dalam folder bernama `my/folder`

     ```
     ##My workflow YAML
     ...
     Actions:
       MyDeployCloudFormationStack:
         Identifier: aws/cfn-deploy@v1
         Inputs:
           Sources:
             - WorkflowSource
         Configuration:
           parameter-overrides: file:///sources/WorkflowSource/my/folder/params.json
     ```

**Untuk menggunakan daftar parameter yang terpisah koma**
+ Tambahkan pasangan nama-nilai parameter di `parameter-overrides` properti menggunakan format berikut:

  `param-1=value-1,param-2=value-2`

  Misalnya, dengan asumsi CloudFormation template berikut:

  ```
  ##My CloudFormation template
  
  Description: My CloudFormation template
  
  Parameters:
    InstanceType:
      Description: Defines the Amazon EC2 compute for the production server.
      Type: String
      Default: t2.micro
      AllowedValues:
        - t2.micro
        - t2.small
        - t3.medium
      
  Resources:
  ...
  ```

  ... Anda dapat mengatur `parameter-overrides` properti sebagai berikut:

  ```
  ##My workflow YAML
  ...
  Actions:
  ...
    DeployCloudFormationStack:
      Identifier: aws/cfn-deploy@v1
      Configuration:
        parameter-overrides: InstanceType=t3.medium,UseVPC=true
  ```
**catatan**  
Anda dapat menentukan nama parameter tanpa nilai yang sesuai menggunakan `undefined` sebagai nilai. Contoh:  
`parameter-overrides: MyParameter=undefined`  
 Efeknya adalah bahwa selama pembaruan tumpukan, CloudFormation menggunakan nilai parameter yang ada untuk nama parameter yang diberikan.

UI yang sesuai:
+ **Tab konfigurasi/Lanjutan/Parameter menimpa**
+ tab/Advanced/ParameterPenggantian **konfigurasi/Tentukan penggantian menggunakan file**
+ tab/Advanced/ParameterPenggantian **konfigurasi/Tentukan penggantian menggunakan set nilai**

## no-execute-changeset
<a name="deploy.action.cfn.noexecutechangeset"></a>

(*DeployCloudFormationStack*/Configuration/**no-execute-changeset**)

(Opsional)

Tentukan apakah Anda CodeCatalyst ingin membuat set CloudFormation perubahan dan kemudian berhenti sebelum menjalankannya. Ini memberi Anda kesempatan untuk meninjau perubahan yang ditetapkan di CloudFormation konsol. Jika Anda menentukan bahwa set perubahan terlihat bagus, nonaktifkan opsi ini dan kemudian jalankan kembali alur kerja sehingga CodeCatalyst dapat membuat dan menjalankan set perubahan tanpa henti. Defaultnya adalah membuat dan menjalankan set perubahan tanpa henti. Untuk informasi selengkapnya, lihat parameter CloudFormation [penerapan](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) di *Referensi AWS CLI Perintah*. Untuk informasi selengkapnya tentang melihat set perubahan, lihat [Melihat set perubahan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets-view.html) di *Panduan AWS CloudFormation Pengguna*.

**UI yang sesuai: Tab konfigurasi/Lanjutan/Tidak ada set perubahan eksekusi**

## fail-on-empty-changeset
<a name="deploy.action.cfn.failonemptychangeset"></a>

(*DeployCloudFormationStack*/Configuration/**fail-on-empty-changeset**)

(Opsional)

Tentukan apakah Anda CodeCatalyst ingin gagal dalam tindakan ** CloudFormation tumpukan Deploy** jika set CloudFormation perubahan kosong. (Jika set perubahan kosong, itu berarti tidak ada perubahan yang dibuat pada tumpukan selama penerapan terbaru.) Defaultnya adalah mengizinkan tindakan untuk melanjutkan jika set perubahan kosong, dan mengembalikan `UPDATE_COMPLETE` pesan meskipun tumpukan tidak diperbarui.

Untuk informasi selengkapnya tentang setelan ini, lihat parameter CloudFormation [penerapan](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) di *Referensi AWS CLI Perintah*. Untuk informasi selengkapnya tentang set perubahan, lihat [Memperbarui tumpukan menggunakan set perubahan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html) di *Panduan AWS CloudFormation Pengguna*.

**UI yang sesuai: Tab konfigurasi/Lanjutan/Gagal pada set perubahan kosong**

## disable-rollback
<a name="deploy.action.cfn.disablerollback"></a>

(*DeployCloudFormationStack*/Configuration/**disable-rollback**)

(Opsional)

Tentukan apakah Anda CodeCatalyst ingin memutar kembali penerapan tumpukan jika gagal. Rollback mengembalikan tumpukan ke keadaan stabil terakhir yang diketahui. Defaultnya adalah mengaktifkan rollback. Untuk informasi selengkapnya tentang setelan ini, lihat parameter CloudFormation [penerapan](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) di *Referensi AWS CLI Perintah*.

Untuk informasi selengkapnya tentang cara tindakan ** CloudFormation tumpukan Deploy** menangani rollback, lihat. [Mengkonfigurasi rollback](deploy-consumption-enable-alarms.md)

Untuk informasi selengkapnya tentang memutar kembali tumpukan, lihat [Opsi kegagalan tumpukan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-failure-options.html) di *Panduan AWS CloudFormation Pengguna*.

**UI yang sesuai: Tab Konfigurasi/Lanjutan/Nonaktifkan rollback**

## termination-protection
<a name="deploy.action.cfn.terminationprotection"></a>

(*DeployCloudFormationStack*/Configuration/**termination-protection**)

(Opsional)

Tentukan apakah Anda ingin ** CloudFormation tumpukan Deploy** menambahkan perlindungan terminasi ke tumpukan yang disebarkan. Jika pengguna mencoba menghapus tumpukan dengan perlindungan pengakhiran diaktifkan, penghapusan gagal dan tumpukan, termasuk statusnya, tetap tidak berubah. Standarnya adalah menonaktifkan perlindungan terminasi. Untuk informasi selengkapnya, lihat [Melindungi tumpukan agar tidak dihapus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) di *Panduan AWS CloudFormation Pengguna*.

**UI yang sesuai: Tab Konfigurasi/Perlindungan lanjutan/Penghentian**

## timeout-in-minutes
<a name="deploy.action.cfn.timeoutinminutes"></a>

(*DeployCloudFormationStack*/Configuration/**timeout-in-minutes**)

(Opsional)

Tentukan jumlah waktu, dalam menit, yang CloudFormation harus dialokasikan sebelum mengatur waktu operasi pembuatan tumpukan dan mengatur status tumpukan ke`CREATE_FAILED`. Jika CloudFormation tidak dapat membuat seluruh tumpukan dalam waktu yang diberikan, pembuatan tumpukan akan gagal karena waktu habis dan mengembalikan tumpukan.

Secara default, tidak ada waktu habis untuk pembuatan tumpukan. Namun, sumber daya individu mungkin memiliki waktu habis sendiri berdasarkan sifat layanan yang diterapkan. Misalnya, jika waktu sumber daya individual di tumpukan Anda habis, waktu pembuatan tumpukan juga akan habis meskipun waktu habis yang Anda tentukan untuk pembuatan tumpukan belum tercapai.

**UI yang sesuai: Tab konfigurasi/lanjutan/batas waktu CloudFormation**

## notification-arns
<a name="deploy.action.cfn.notificationarns"></a>

(*DeployCloudFormationStack*/Configuration/**notification-arns**)

(Opsional)

Tentukan ARN dari topik Amazon SNS yang CodeCatalyst ingin Anda kirimi pesan notifikasi. Misalnya, `arn:aws:sns:us-east-1:111222333:MyTopic`. Saat tindakan ** CloudFormation tumpukan Deploy** berjalan, CodeCatalyst berkoordinasi dengan CloudFormation untuk mengirim satu notifikasi per CloudFormation peristiwa yang terjadi selama proses pembuatan atau pembaruan tumpukan. (Peristiwa terlihat di tab **Peristiwa CloudFormation ** konsol untuk tumpukan.) Anda dapat menentukan hingga lima topik. Untuk informasi lebih lanjut, lihat [Apa itu Amazon SNS?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) .

**UI yang sesuai: Tab Konfigurasi/Lanjutan/Pemberitahuan ARNs**

## monitor-alarm-arns
<a name="deploy.action.cfn.monitoralarmarns"></a>

(*DeployCloudFormationStack*/Configuration/**monitor-alarm-arns**)

(Opsional)

Tentukan Nama Sumber Daya Amazon (ARN) dari CloudWatch alarm Amazon untuk digunakan sebagai pemicu rollback. Misalnya, `arn:aws:cloudwatch::123456789012:alarm/MyAlarm`. Anda dapat memiliki maksimal lima pemicu rollback.

**catatan**  
Jika Anda menentukan ARN CloudWatch alarm, Anda juga harus mengonfigurasi izin tambahan untuk mengaktifkan tindakan untuk mengakses. CloudWatch Untuk informasi selengkapnya, lihat [Mengkonfigurasi rollback](deploy-consumption-enable-alarms.md).

**UI yang sesuai: Tab konfigurasi/Alarm lanjutan/Monitor ARNs**

## monitor-timeout-in-minutes
<a name="deploy.action.cfn.monitortimeinminutes"></a>

(*DeployCloudFormationStack*/Configuration/**monitor-timeout-in-minutes**)

(Opsional)

Tentukan jumlah waktu, dari 0 hingga 180 menit, di mana CloudFormation memantau alarm yang ditentukan. Pemantauan dimulai *setelah* semua sumber daya tumpukan telah digunakan. Jika alarm terjadi dalam waktu pemantauan yang ditentukan, maka penerapan gagal, dan CloudFormation memutar kembali seluruh operasi tumpukan.

Default: 0. CloudFormation hanya memonitor alarm saat sumber daya tumpukan sedang digunakan, bukan setelahnya.

**UI yang sesuai: Tab konfigurasi/Lanjutan/Waktu pemantauan**

## tags
<a name="deploy.action.cfn.tags"></a>

(*DeployCloudFormationStack*/Configuration/**tags**)

(Opsional)

Tentukan tag untuk dilampirkan ke CloudFormation tumpukan Anda. Tag adalah pasangan nilai kunci arbitrer yang dapat Anda gunakan untuk mengidentifikasi tumpukan Anda untuk tujuan seperti alokasi biaya. Untuk informasi lebih lanjut tentang apa itu tanda dan bagaimana cara penggunaannya, lihat [Menandai sumber daya Anda](https://docs.aws.amazon.com/) di *Panduan Pengguna Amazon EC2*. Untuk informasi selengkapnya tentang penandaan CloudFormation, lihat [Menyetel opsi CloudFormation tumpukan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html) di *Panduan AWS CloudFormation Pengguna*.

Sebuah kunci dapat memiliki karakter alfanumerik atau spasi, dan dapat memiliki hingga 127 karakter. Nilai dapat memiliki karakter alfanumerik atau spasi, dan dapat memiliki hingga 255 karakter.

Anda dapat menambahkan hingga 50 tag unik untuk setiap tumpukan.

**UI yang sesuai: Tab Konfigurasi/Lanjutan/Tag**

# Menerapkan AWS CDK aplikasi dengan alur kerja
<a name="cdk-dep-action"></a>

Bagian ini menjelaskan cara menerapkan AWS Cloud Development Kit (AWS CDK) aplikasi ke AWS akun Anda menggunakan alur kerja. Untuk mencapai ini, Anda harus menambahkan tindakan **AWS CDK penerapan** ke alur kerja Anda. Tindakan **AWS CDK penerapan** mensintesis dan menerapkan aplikasi Anda AWS Cloud Development Kit (AWS CDK) ke dalamnya. AWS Jika aplikasi Anda sudah ada AWS, tindakan akan memperbaruinya jika perlu. 

Untuk informasi umum tentang menulis aplikasi menggunakan aplikasi AWS CDK, lihat [Apa itu AWS CDK?](https://docs.aws.amazon.com/cdk/v2/guide/home.html) di *Panduan AWS Cloud Development Kit (AWS CDK) Pengembang*.

**Topics**
+ [Kapan menggunakan tindakan 'AWS CDK penerapan'](#cdk-dep-action-when-to-use)
+ [Cara kerja tindakan 'AWS CDK penerapan'](#cdk-dep-action-how-it-works)
+ [Versi CDK CLI yang digunakan oleh tindakan 'penerapan'AWS CDK](#cdk-dep-action-cdk-version)
+ [Gambar runtime yang digunakan oleh aksi 'AWS CDK deploy'](#cdk-dep-action-runtime)
+ [Berapa banyak tumpukan yang dapat diterapkan tindakan?](#cdk-dep-action-how-many-stacks)
+ [Contoh: Menerapkan aplikasi AWS CDK](cdk-dep-action-example-workflow.md)
+ [Menambahkan tindakan 'AWS CDK deploy'](cdk-dep-action-add.md)
+ [variabel 'AWS CDK penyebaran'](cdk-dep-action-variables.md)
+ [Tindakan 'AWS CDK menyebarkan' YAMAL](cdk-dep-action-ref.md)

## Kapan menggunakan tindakan 'AWS CDK penerapan'
<a name="cdk-dep-action-when-to-use"></a>

Gunakan tindakan ini jika Anda telah mengembangkan aplikasi menggunakan aplikasi AWS CDK, dan sekarang Anda ingin menerapkannya secara otomatis sebagai bagian dari alur kerja integrasi dan pengiriman berkelanjutan (CI/CD) otomatis. Misalnya, Anda mungkin ingin menerapkan AWS CDK aplikasi secara otomatis setiap kali seseorang menggabungkan permintaan tarik yang terkait dengan sumber AWS CDK aplikasi Anda. 

## Cara kerja tindakan 'AWS CDK penerapan'
<a name="cdk-dep-action-how-it-works"></a>

**AWS CDK Penyebaran berfungsi** sebagai berikut:

1. [Saat runtime, jika Anda menentukan versi 1.0.12 atau tindakan yang lebih lama, tindakan akan mengunduh CDK CLI terbaru (juga disebut AWS CDK Tookit) ke gambar lingkungan runtime. CodeCatalyst ](#cdk-dep-action-runtime)

   Jika Anda menentukan versi 1.0.13 atau yang lebih baru, tindakan tersebut dibundel dengan [versi tertentu](#cdk-dep-action-cdk-version) dari CDK CLI, jadi tidak ada unduhan yang terjadi.

1. Tindakan ini menggunakan CDK CLI untuk menjalankan `cdk deploy` perintah. Perintah ini mensintesis dan menerapkan AWS CDK aplikasi Anda ke dalam. AWS Untuk informasi selengkapnya tentang perintah ini, lihat topik [AWS CDK Toolkit (perintah cdk)](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) di Panduan *AWS Cloud Development Kit (AWS CDK) Pengembang*.

## Versi CDK CLI yang digunakan oleh tindakan 'penerapan'AWS CDK
<a name="cdk-dep-action-cdk-version"></a>

**Tabel berikut menunjukkan versi CDK CLI mana yang digunakan secara default oleh versi tindakan penerapan yang berbeda.AWS CDK **

**catatan**  
Anda mungkin dapat mengganti default. Untuk informasi selengkapnya, lihat [CdkCliVersion](cdk-dep-action-ref.md#cdk.dep.cdk.cli.version) di [Tindakan 'AWS CDK menyebarkan' YAMAL](cdk-dep-action-ref.md).


| versi AWS CDK tindakan 'menyebarkan' | AWS CDK Versi CLI | 
| --- | --- | 
|  1.0.0 — 1.0.12  |  terbaru  | 
|  1.0.13 atau yang lebih baru  |  2.99.1  | 

## Gambar runtime yang digunakan oleh aksi 'AWS CDK deploy'
<a name="cdk-dep-action-runtime"></a>

Tabel berikut menunjukkan gambar lingkungan runtime yang CodeCatalyst digunakan untuk menjalankan versi tindakan **AWS CDK penerapan** yang berbeda. Gambar-gambar tersebut mencakup berbagai set perkakas yang sudah diinstal sebelumnya. Untuk informasi selengkapnya, lihat [Gambar aktif](build-images.md#build-curated-images).

**catatan**  
Kami merekomendasikan untuk meningkatkan tindakan **AWS CDK penerapan** Anda ke versi 2.x untuk memanfaatkan perkakas terbaru yang tersedia pada gambar Maret 2024. Untuk memutakhirkan tindakan, setel `Identifier` propertinya ke `aws/cdk-deploy@v2` dalam file definisi alur kerja Anda. Untuk informasi selengkapnya, lihat [Tindakan 'AWS CDK menyebarkan' YAMAL](cdk-dep-action-ref.md). 


| versi AWS CDK tindakan 'menyebarkan' | Gambar lingkungan runtime | 
| --- | --- | 
|  1.x  |  Gambar November 2022  | 
|  2.x  |  Maret 2024 foto  | 

## Berapa banyak tumpukan yang dapat diterapkan tindakan?
<a name="cdk-dep-action-how-many-stacks"></a>

**AWS CDK Penyebaran hanya dapat menyebarkan** satu tumpukan. Jika AWS CDK aplikasi Anda terdiri dari beberapa tumpukan, Anda harus membuat tumpukan induk dengan tumpukan bersarang, dan menerapkan induk menggunakan tindakan ini.

# Contoh: Menerapkan aplikasi AWS CDK
<a name="cdk-dep-action-example-workflow"></a>

Contoh alur kerja berikut mencakup tindakan **AWS CDK penerapan**, bersama dengan tindakan **AWS CDK bootstrap**. 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. Repositori ini berisi aplikasi Anda AWS CDK . Untuk informasi lebih lanjut tentang menggunakan pemicu, lihat [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md).
+ Tindakan **AWS CDK bootstrap** (`CDKBootstrap`) — Pada pemicu, tindakan menyebarkan tumpukan `CDKToolkit` bootstrap ke dalam AWS. Jika `CDKToolkit` tumpukan sudah ada di lingkungan, itu akan ditingkatkan jika perlu; jika tidak, tidak ada yang terjadi, dan tindakan ditandai sebagai berhasil.
+ Tindakan **AWS CDK penerapan** (`AWS CDK Deploy`) — Setelah menyelesaikan tindakan **AWS CDK bootstrap**, tindakan **AWS CDK penerapan** mensintesis kode AWS CDK aplikasi Anda ke dalam CloudFormation templat dan menerapkan tumpukan yang ditentukan dalam templat. AWS

**catatan**  
Contoh alur kerja berikut adalah untuk tujuan ilustrasi, dan tidak akan berfungsi tanpa konfigurasi tambahan.

**catatan**  
Dalam kode YAMAL berikut, Anda dapat menghilangkan `Connections:` bagian jika Anda mau. **Jika Anda menghilangkan bagian ini, Anda harus memastikan bahwa peran yang ditentukan dalam bidang **peran IAM Default** di lingkungan Anda mencakup izin dan kebijakan kepercayaan yang diperlukan oleh tindakan **AWS CDK bootstrap dan AWS CDK penerapan**.** Untuk informasi selengkapnya tentang menyiapkan lingkungan dengan peran IAM default, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md). Untuk informasi selengkapnya tentang izin dan kebijakan kepercayaan yang diperlukan oleh tindakan **AWS CDK bootstrap** dan **AWS CDK penerapan**, lihat deskripsi `Role` properti di [Aksi 'AWS CDK bootstrap' YAMAL](cdk-boot-action-ref.md) dan. [Tindakan 'AWS CDK menyebarkan' YAMAL](cdk-dep-action-ref.md)

```
Name: codecatalyst-cdk-deploy-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  CDKBootstrap:
    Identifier: aws/cdk-bootstrap@v2
    Inputs:
      Sources:
        - WorkflowSource
    Environment:
      Name: codecatalyst-cdk-deploy-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-cdk-bootstrap-role
    Configuration:
      Region: us-west-2
        
  CDKDeploy:
    Identifier: aws/cdk-deploy@v2
    DependsOn: 
      - CDKBootstrap
    Environment:
      Name: codecatalyst-cdk-deploy-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-cdk-deploy-role
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      StackName: my-app-stack
      Region: us-west-2
```

# Menambahkan tindakan 'AWS CDK deploy'
<a name="cdk-dep-action-add"></a>

 Gunakan petunjuk berikut untuk menambahkan tindakan **AWS CDK penerapan** ke alur kerja Anda. 

**Sebelum Anda memulai**

Sebelum Anda dapat menambahkan tindakan **AWS CDK penerapan** ke alur kerja Anda, selesaikan tugas-tugas berikut:

1. **Siapkan AWS CDK aplikasi**. Anda dapat menulis AWS CDK aplikasi Anda menggunakan AWS CDK v1 atau v2, dalam bahasa pemrograman apa pun yang didukung oleh. AWS CDK Pastikan file AWS CDK aplikasi Anda tersedia di:
   + Sebuah [repositori CodeCatalyst sumber](source.md), atau 
   + [Artefak CodeCatalyst keluaran](workflows-working-artifacts.md) yang dihasilkan oleh aksi alur kerja lain

1. **Bootstrap AWS lingkungan Anda**. Untuk bootstrap, Anda dapat:
   + Gunakan salah satu metode yang dijelaskan dalam [Cara bootstrap](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html#bootstrapping-howto) di *Panduan AWS Cloud Development Kit (AWS CDK) Pengembang*.
   + Gunakan tindakan **AWS CDK bootstrap**. Anda dapat menambahkan tindakan ini dalam alur kerja yang sama dengan **AWS CDK penerapan** Anda, atau di alur kerja yang berbeda. Pastikan saja tindakan bootstrap berjalan setidaknya sekali sebelum menjalankan tindakan **AWS CDK penerapan** sehingga sumber daya yang diperlukan ada. Untuk informasi selengkapnya tentang tindakan **AWS CDK bootstrap**, lihat[Bootstrapping AWS CDK aplikasi dengan alur kerja](cdk-boot-action.md).

     *Untuk informasi selengkapnya tentang bootstrap, lihat [Bootstrapping di Panduan Pengembang](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html).AWS Cloud Development Kit (AWS CDK) *

------
#### [ Visual ]

**Untuk menambahkan tindakan 'AWS CDK deploy' menggunakan editor visual**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari tindakan **AWS CDK penerapan**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **AWS CDK menyebarkan**. Kotak dialog detail tindakan muncul. Pada kotak dialog ini:
     + (Opsional) Pilih **Unduh** untuk [melihat kode sumber tindakan](workflows-view-source.md#workflows-view-source.title).
     + Pilih **Tambahkan ke alur kerja** untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

1. Pada tab **Input** dan **Konfigurasi**, lengkapi bidang sesuai dengan kebutuhan Anda. Untuk deskripsi setiap bidang, lihat[Tindakan 'AWS CDK menyebarkan' YAMAL](cdk-dep-action-ref.md). Referensi ini memberikan informasi rinci tentang setiap bidang (dan nilai properti YAMAL yang sesuai) seperti yang muncul di YAMAL dan editor visual.

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, lalu pilih **Komit** lagi.
**catatan**  
Jika tindakan **AWS CDK penerapan** Anda gagal [Bagaimana cara memperbaiki kesalahan “npm install”?](troubleshooting-workflows.md#troubleshooting-workflows-npm) karena `npm install` kesalahan, lihat informasi tentang cara memperbaiki kesalahan.

------
#### [ YAML ]

**Untuk menambahkan tindakan 'AWS CDK deploy' menggunakan editor YAMAL**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari tindakan **AWS CDK penerapan**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **AWS CDK menyebarkan**. Kotak dialog detail tindakan muncul. Pada kotak dialog ini:
     + (Opsional) Pilih **Unduh** untuk [melihat kode sumber tindakan](workflows-view-source.md#workflows-view-source.title).
     + Pilih **Tambahkan ke alur kerja** untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

1. Ubah properti dalam kode YAMAL sesuai dengan kebutuhan Anda. Penjelasan tentang setiap properti yang tersedia disediakan di[Tindakan 'AWS CDK menyebarkan' YAMAL](cdk-dep-action-ref.md).

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, lalu pilih **Komit** lagi.
**catatan**  
Jika tindakan **AWS CDK penerapan** Anda gagal [Bagaimana cara memperbaiki kesalahan “npm install”?](troubleshooting-workflows.md#troubleshooting-workflows-npm) karena `npm install` kesalahan, lihat informasi tentang cara memperbaiki kesalahan.

------

# variabel 'AWS CDK penyebaran'
<a name="cdk-dep-action-variables"></a>

Tindakan **AWS CDK deploy** menghasilkan dan menetapkan variabel berikut pada waktu berjalan. Ini dikenal sebagai *variabel yang telah ditentukan*.

Untuk informasi tentang mereferensikan variabel-variabel ini dalam alur kerja, lihat. [Menggunakan variabel yang telah ditentukan](workflows-using-predefined-variables.md)


| Key | Nilai | 
| --- | --- | 
|  tumpukan-id  |  Nama Sumber Daya Amazon (ARN) dari tumpukan AWS CDK aplikasi yang digunakan selama alur kerja dijalankan. Contoh: `arn:aws:cloudformation:us-west-2:111122223333:stack/codecatalyst-cdk-app-stack/6aad4380-100a-11ec-a10a-03b8a84d40df`  | 
|  platform penyebaran  |  Nama platform penyebaran. Hardcode ke. `AWS:CloudFormation`  | 
|  region  |  Kode wilayah Wilayah AWS yang digunakan selama alur kerja dijalankan. Contoh: `us-west-2`  | 
|  LEWATI PENYEBARAN  |  Nilai `true` menunjukkan bahwa penerapan tumpukan AWS CDK aplikasi Anda dilewati selama alur kerja dijalankan. Penerapan tumpukan akan dilewati jika tidak ada perubahan dalam tumpukan sejak penerapan terakhir. Variabel ini hanya diproduksi jika nilainya`true`. Hardcode ke. `true`  | 
|  *CloudFormation variabel*  |  Selain menghasilkan variabel yang tercantum sebelumnya, tindakan **AWS CDK penerapan** juga mengekspos variabel *CloudFormation*keluaran sebagai variabel *alur kerja untuk digunakan dalam tindakan alur* kerja berikutnya. Secara default, tindakan hanya mengekspos empat (atau lebih sedikit) CloudFormation variabel pertama yang ditemukannya. Untuk menentukan mana yang diekspos, jalankan tindakan **AWS CDK deploy** sekali, lalu lihat di tab **Variables** pada halaman run details. Jika variabel yang tercantum pada tab **Variabel** tidak seperti yang Anda inginkan, Anda dapat mengonfigurasi variabel yang berbeda menggunakan properti `CfnOutputVariables` YAMAL. Untuk informasi selengkapnya, lihat deskripsi [CfnOutputVariables](cdk-dep-action-ref.md#cdk.dep.cfn.out) properti di[Tindakan 'AWS CDK menyebarkan' YAMAL](cdk-dep-action-ref.md).  | 

# Tindakan 'AWS CDK menyebarkan' YAMAL
<a name="cdk-dep-action-ref"></a>

Berikut ini adalah definisi YAMAL dari tindakan **AWS CDK penerapan**. Untuk mempelajari cara menggunakan tindakan ini, lihat[Menerapkan AWS CDK aplikasi dengan alur kerja](cdk-dep-action.md).

Definisi tindakan ini ada sebagai bagian dalam file definisi alur kerja yang lebih luas. Untuk informasi selengkapnya tentang file ini, lihat[Alur kerja definisi YAMAL](workflow-reference.md).

**catatan**  
Sebagian besar properti YAMB yang mengikuti memiliki elemen UI yang sesuai di editor visual. Untuk mencari elemen UI, gunakan **Ctrl\$1F**. Elemen akan terdaftar dengan properti YAMLnya yang terkait.

```
# The workflow definition starts here.
# See Properti tingkat atas for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  CDKDeploy\$1nn: 
    Identifier: aws/cdk-deploy@v2
    DependsOn:
      - CDKBootstrap
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - artifact-name
    Outputs:
      Artifacts:
        - Name: cdk_artifact
          Files: 
            - "cdk.out/**/*"
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      StackName: my-cdk-stack
      Region: us-west-2
      Tags: '{"key1": "value1", "key2": "value2"}'
      Context: '{"key1": "value1", "key2": "value2"}'
      CdkCliVersion: version
      CdkRootPath: directory-containing-cdk.json-file
      CfnOutputVariables: '["CnfOutputKey1","CfnOutputKey2","CfnOutputKey3"]'
      CloudAssemblyRootPath: path-to-cdk.out
```

## CDKDeploy
<a name="cdk.dep.name"></a>

(Diperlukan)

Tentukan nama tindakan. Semua nama tindakan harus unik dalam alur kerja. Nama aksi terbatas pada karakter alfanumerik (a-z, A-Z, 0-9), tanda hubung (-), dan garis bawah (\$1). Spasi tidak diizinkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan karakter dan spasi khusus dalam nama tindakan.

Default: `CDKDeploy_nn`.

UI yang sesuai: Tab konfigurasi/Nama **tindakan**

## Identifier
<a name="cdk.dep.identifier"></a>

(*CDKDeploy*/**Identifier**)

(Diperlukan)

Mengidentifikasi tindakan. Jangan mengubah properti ini kecuali Anda ingin mengubah versi. Untuk informasi selengkapnya, lihat [Menentukan versi tindakan yang akan digunakan](workflows-action-versions.md).

**catatan**  
Menentukan `aws/cdk-deploy@v2` menyebabkan tindakan berjalan pada [gambar Maret 2024](build-images.md#build.default-image) yang menyertakan perkakas yang lebih baru seperti Node.js 18. Menentukan `aws/cdk-deploy@v1` menyebabkan tindakan berjalan pada [gambar November 2022](build-images.md#build.previous-image) yang menyertakan perkakas lama seperti Node.js 16.

Default: `aws/cdk-deploy@v2`.

**UI yang sesuai: Diagram alur CDKDeploy kerja/\$1nn/ aws/cdk-deploy @v2 label**

## DependsOn
<a name="cdk.dep.dependson"></a>

(*CDKDeploy*/**DependsOn**)

(Opsional)

Tentukan grup tindakan atau tindakan yang harus berjalan dengan sukses agar tindakan **AWS CDK penerapan** berjalan. Kami merekomendasikan untuk menentukan tindakan **AWS CDK bootstrap** di `DependsOn` properti, seperti ini:

```
CDKDeploy:
  Identifier: aws/cdk-deploy@v2
  DependsOn:
    - CDKBootstrap
```

**catatan**  
[Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) adalah prasyarat wajib untuk menerapkan aplikasi. AWS CDK Jika Anda tidak menyertakan tindakan **AWS CDK Bootstrap** dalam alur kerja Anda, maka Anda harus menemukan cara lain untuk menyebarkan tumpukan AWS CDK bootstrap sebelum menjalankan tindakan **AWS CDK penerapan** Anda. Untuk informasi selengkapnya, lihat [Menambahkan tindakan 'AWS CDK deploy'](cdk-dep-action-add.md) di [Menerapkan AWS CDK aplikasi dengan alur kerja](cdk-dep-action.md).

Untuk informasi selengkapnya tentang fungsionalitas 'tergantung pada', lihat. [Tindakan pengurutan](workflows-depends-on.md)

UI yang sesuai: Tab **masukan/Tergantung pada** - opsional

## Compute
<a name="cdk.dep.computename"></a>

(*CDKDeploy*/**Compute**)

(Opsional)

Mesin komputasi yang digunakan untuk menjalankan tindakan alur kerja Anda. Anda dapat menentukan komputasi baik di tingkat alur kerja atau di tingkat tindakan, tetapi tidak keduanya. Ketika ditentukan pada tingkat alur kerja, konfigurasi komputasi berlaku untuk semua tindakan yang ditentukan dalam alur kerja. Pada tingkat alur kerja, Anda juga dapat menjalankan beberapa tindakan pada instance yang sama. Untuk informasi selengkapnya, lihat [Berbagi komputasi di seluruh tindakan](compute-sharing.md).

UI yang sesuai: *tidak ada*

## Type
<a name="cdk.dep.computetype"></a>

(*CDKDeploy*/Compute/**Type**)

(Diperlukan [Compute](#cdk.dep.computename) jika disertakan)

Jenis mesin komputasi. Anda dapat menggunakan salah satu nilai berikut:
+ **EC2**(editor visual) atau `EC2` (editor YAMAL)

  Dioptimalkan untuk fleksibilitas selama aksi berjalan.
+ **Lambda** (editor visual) atau `Lambda` (editor YAMAL)

  Kecepatan start-up aksi yang dioptimalkan.

Untuk informasi selengkapnya tentang jenis komputasi, lihat[Jenis komputasi](workflows-working-compute.md#compute.types).

**UI yang sesuai: Konfigurasi tab/Advanced - tipe opsional/Komputasi**

## Fleet
<a name="cdk.dep.computefleet"></a>

(*CDKDeploy*/Compute/**Fleet**)

(Opsional)

Tentukan mesin atau armada yang akan menjalankan alur kerja atau tindakan alur kerja Anda. Dengan armada sesuai permintaan, ketika suatu tindakan dimulai, alur kerja menyediakan sumber daya yang dibutuhkan, dan mesin dihancurkan ketika tindakan selesai. Contoh armada sesuai permintaan:`Linux.x86-64.Large`,. `Linux.x86-64.XLarge` Untuk informasi lebih lanjut tentang armada sesuai permintaan, lihat. [Properti armada sesuai permintaan](workflows-working-compute.md#compute.on-demand)

Dengan armada yang disediakan, Anda mengonfigurasi satu set mesin khusus untuk menjalankan tindakan alur kerja Anda. Mesin-mesin ini tetap menganggur, siap untuk memproses tindakan segera. Untuk informasi selengkapnya tentang armada yang disediakan, lihat. [Properti armada yang disediakan](workflows-working-compute.md#compute.provisioned-fleets)

Jika `Fleet` dihilangkan, defaultnya adalah. `Linux.x86-64.Large`

**UI yang sesuai: Konfigurasi tab/Advanced - armada opsional/Komputasi**

## Timeout
<a name="cdk.dep.timeout"></a>

(*CDKDeploy*/**Timeout**)

(Diperlukan)

Tentukan jumlah waktu dalam menit (editor YAMB), atau jam dan menit (editor visual), bahwa tindakan dapat berjalan sebelum CodeCatalyst mengakhiri tindakan. Minimal adalah 5 menit dan maksimum dijelaskan dalam[Kuota untuk alur kerja di CodeCatalyst](workflows-quotas.md). Batas waktu default sama dengan batas waktu maksimum.

UI yang sesuai: Tab **konfigurasi/Timeout** - opsional

## Inputs
<a name="cdk.dep.inputs"></a>

(*CDKDeploy*/**Inputs**)

(Opsional)

`Inputs`Bagian ini mendefinisikan data yang `CDKDeploy` dibutuhkan selama menjalankan alur kerja.

**catatan**  
Hanya satu input (baik sumber atau artefak) yang diizinkan untuk setiap tindakan **AWS CDK penerapan**.

UI yang sesuai: **Tab input**

## Sources
<a name="cdk.dep.inputs.sources"></a>

(*CDKDeploy*/Inputs/**Sources**)

(Diperlukan jika AWS CDK aplikasi yang ingin Anda terapkan disimpan dalam repositori sumber)

Jika AWS CDK aplikasi Anda disimpan dalam repositori sumber, tentukan label repositori sumber tersebut. Tindakan **AWS CDK penerapan** mensintesis aplikasi di repositori ini sebelum memulai proses penerapan. Saat ini, satu-satunya label yang didukung adalah`WorkflowSource`.

Jika AWS CDK aplikasi Anda tidak terkandung dalam repositori sumber, itu harus berada dalam artefak yang dihasilkan oleh tindakan lain.

Untuk informasi selengkapnya tentang sumber, lihat [Menghubungkan repositori sumber ke alur kerja](workflows-sources.md).

UI yang sesuai: **Tab/Sumber** Input - opsional

## Artifacts - input
<a name="cdk.dep.inputs.artifacts"></a>

(*CDKDeploy*/Inputs/**Artifacts**)

(Diperlukan jika AWS CDK aplikasi yang ingin Anda terapkan disimpan dalam [artefak keluaran](workflows-working-artifacts-output.md) dari tindakan sebelumnya)

Jika AWS CDK aplikasi Anda terkandung dalam artefak yang dihasilkan oleh tindakan sebelumnya, tentukan artefak tersebut di sini. Tindakan **AWS CDK penerapan** mensintesis aplikasi dalam artefak yang ditentukan ke dalam CloudFormation templat sebelum memulai proses penerapan. Jika AWS CDK aplikasi Anda tidak terkandung dalam artefak, itu harus berada di repositori sumber Anda.

Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihat[Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).

UI yang sesuai: Tab **masukan/Artefak** - opsional

## Outputs
<a name="cdk.dep.outputs"></a>

(*CDKDeploy*/**Outputs**)

(Opsional)

Mendefinisikan data yang dihasilkan oleh tindakan selama menjalankan alur kerja.

UI yang sesuai: **Tab keluaran**

## Artifacts - output
<a name="cdk.dep.outputs.artifacts"></a>

(*CDKDeploy*/Outputs/**Artifacts**

(Opsional)

Tentukan artefak yang dihasilkan oleh tindakan. Anda dapat mereferensikan artefak ini sebagai masukan dalam tindakan lain.

Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihat[Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).

**UI yang sesuai: Tab keluaran/Artefak**

## Name
<a name="cdk.dep.outputs.artifacts.name"></a>

(*CDKDeploy*/Outputs/Artifacts/**Name**)

(Diperlukan [Artifacts - output](#cdk.dep.outputs.artifacts) jika disertakan)

Tentukan nama artefak yang akan berisi CloudFormation template yang disintesis oleh tindakan **AWS CDK penerapan saat runtime**. Nilai default-nya adalah `cdk_artifact`. Jika Anda tidak menentukan artefak, maka tindakan mensintesis template tetapi tidak akan menyimpannya dalam artefak. Pertimbangkan untuk menyimpan template yang disintesis dalam artefak untuk menyimpan catatannya untuk tujuan pengujian atau pemecahan masalah.

**UI yang sesuai: Menghasilkan tab/Artifacts/Add artefak/Membangun nama artefak**

## Files
<a name="cdk.dep.outputs.artifacts.files"></a>

(*CDKDeploy*/Outputs/Artifacts/**Files**)

(Diperlukan [Artifacts - output](#cdk.dep.outputs.artifacts) jika disertakan)

Tentukan file yang akan disertakan dalam artefak. Anda harus menentukan `"cdk.out/**/*"` untuk menyertakan CloudFormation template yang disintesis AWS CDK aplikasi Anda.

**catatan**  
`cdk.out`adalah direktori default tempat file yang disintesis disimpan. Jika Anda menentukan direktori keluaran selain `cdk.out` di `cdk.json` file Anda, tentukan direktori itu di sini, bukan`cdk.out`.

**UI yang sesuai: Mengeluarkan tab/Artifacts/Add artefak/File yang dihasilkan oleh build**

## Environment
<a name="cdk.dep.environment"></a>

(*CDKDeploy*/**Environment**)

(Diperlukan)

Tentukan CodeCatalyst lingkungan yang akan digunakan dengan tindakan. Tindakan terhubung ke Akun AWS dan VPC Amazon opsional yang ditentukan di lingkungan yang dipilih. Tindakan ini menggunakan peran IAM default yang ditentukan di lingkungan untuk terhubung ke Akun AWS, dan menggunakan peran IAM yang ditentukan dalam [koneksi VPC Amazon untuk terhubung ke VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) Amazon.

**catatan**  
Jika peran IAM default tidak memiliki izin yang diperlukan oleh tindakan, Anda dapat mengonfigurasi tindakan untuk menggunakan peran yang berbeda. Untuk informasi selengkapnya, lihat [Mengubah peran IAM dari suatu tindakan](deploy-environments-switch-role.md).

Untuk informasi selengkapnya tentang lingkungan, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md) dan[Pembuatan lingkungan](deploy-environments-creating-environment.md).

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Name
<a name="cdk.dep.environment.name"></a>

(*CDKDeploy*/Environment/**Name**)

(Diperlukan [Environment](#cdk.dep.environment) jika disertakan)

Tentukan nama lingkungan yang ada yang ingin Anda kaitkan dengan tindakan.

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Connections
<a name="cdk.dep.environment.connections"></a>

(*CDKDeploy*/Environment/**Connections**)

(Opsional dalam versi tindakan yang lebih baru; diperlukan dalam versi yang lebih lama)

Tentukan koneksi akun untuk dikaitkan dengan tindakan. Anda dapat menentukan maksimum satu koneksi akun di bawah`Environment`.

Jika Anda tidak menentukan koneksi akun:
+ Tindakan menggunakan Akun AWS koneksi dan peran IAM default yang ditentukan di lingkungan di CodeCatalyst konsol. Untuk informasi tentang menambahkan koneksi akun dan peran IAM default ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).
+ Peran IAM default harus menyertakan kebijakan dan izin yang diperlukan oleh tindakan. Untuk menentukan kebijakan dan izin tersebut, lihat deskripsi properti **Peran** dalam dokumentasi definisi YAMAL tindakan.

Untuk informasi selengkapnya tentang koneksi akun, lihat[Memungkinkan akses ke AWS sumber daya yang terhubung Akun AWS](ipa-connect-account.md). Untuk informasi tentang menambahkan koneksi akun ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Name
<a name="cdk.dep.environment.connections.name"></a>

(*CDKDeploy*/Environment/Connections/**Name**)

(Diperlukan [Connections](#cdk.dep.environment.connections) jika disertakan)

Tentukan nama koneksi akun.

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Role
<a name="cdk.dep.environment.connections.role"></a>

(*CDKDeploy*/Environment/Connections/**Role**)

(Diperlukan [Connections](#cdk.dep.environment.connections) jika disertakan)

Tentukan nama koneksi akun.

Tentukan nama peran IAM yang **AWS CDK digunakan tindakan penerapan** untuk mengakses AWS dan menyebarkan tumpukan aplikasi. AWS CDK Pastikan Anda telah [menambahkan peran ke CodeCatalyst ruang Anda](ipa-connect-account-addroles.md), dan peran tersebut mencakup kebijakan berikut.

Jika Anda tidak menentukan peran IAM, maka tindakan tersebut menggunakan peran IAM default yang tercantum di [lingkungan](deploy-environments.md) di CodeCatalyst konsol. Jika Anda menggunakan peran default di lingkungan, pastikan itu memiliki kebijakan berikut.
+ Kebijakan izin berikut:
**Awas**  
Batasi izin untuk yang ditampilkan dalam kebijakan berikut. Menggunakan peran dengan izin yang lebih luas dapat menimbulkan risiko keamanan.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "cloudformation:DescribeStackEvents",
                  "cloudformation:DescribeChangeSet",
                  "cloudformation:DescribeStacks",
                  "cloudformation:ListStackResources"
              ],
              "Resource": "*"
          },
          {
              "Sid": "VisualEditor1",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": "arn:aws:iam::111122223333:role/cdk-*"
          }
      ]
  }
  ```

------
+ Kebijakan kepercayaan khusus berikut:

**catatan**  
Anda dapat menggunakan `CodeCatalystWorkflowDevelopmentRole-spaceName` peran dengan tindakan ini, jika Anda mau. Untuk informasi selengkapnya tentang peran ini, silakan lihat [Membuat **CodeCatalystWorkflowDevelopmentRole-*spaceName***peran untuk akun dan ruang Anda](ipa-iam-roles.md#ipa-iam-roles-service-create). Memahami bahwa `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut memiliki izin akses penuh yang dapat menimbulkan risiko keamanan. Kami menyarankan Anda hanya menggunakan peran ini dalam tutorial dan skenario di mana keamanan kurang menjadi perhatian. 

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' '/ Environment/account/role Peran**

## Configuration
<a name="cdk.dep.configuration"></a>

(*CDKDeploy*/**Configuration**)

(Diperlukan)

Bagian di mana Anda dapat menentukan properti konfigurasi tindakan.

UI yang sesuai: Tab **konfigurasi**

## StackName
<a name="cdk.dep.stack.name"></a>

(*CDKDeploy*/Configuration/**StackName**)

(Diperlukan)

Nama tumpukan AWS CDK aplikasi Anda, seperti yang muncul di file entrypoint di direktori AWS CDK aplikasi Anda. `bin` Contoh berikut menunjukkan isi file TypeScript entrypoint, dengan nama stack disorot. *red italics* Jika file entrypoint Anda dalam bahasa yang berbeda, itu akan terlihat serupa.

```
import * as cdk from 'aws-cdk-lib';
import { CdkWorksopTypescriptStack } from '../lib/cdk_workshop_typescript-stack';

const app = new cdk.App();
new CdkWorkshopTypescriptStack(app, 'CdkWorkshopTypescriptStack');
```

Anda hanya dapat menentukan satu tumpukan.

**Tip**  
Jika Anda memiliki beberapa tumpukan, Anda dapat membuat tumpukan induk dengan tumpukan bersarang. Anda kemudian dapat menentukan tumpukan induk dalam tindakan ini untuk menerapkan semua tumpukan.

UI yang sesuai: Tab konfigurasi/Nama **tumpukan**

## Region
<a name="cdk.dep.region"></a>

(*CDKDeploy*/Configuration/**Region**)

(Opsional)

Tentukan Wilayah AWS ke mana tumpukan AWS CDK aplikasi akan digunakan. Untuk daftar kode Wilayah, lihat [Titik akhir Regional](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes).

Jika Anda tidak menentukan Wilayah, tindakan **AWS CDK penerapan** akan diterapkan ke Wilayah yang ditentukan dalam kode Anda AWS CDK . Untuk informasi selengkapnya, lihat [Lingkungan](https://docs.aws.amazon.com/cdk/v2/guide/environments.html) di *Panduan AWS Cloud Development Kit (AWS CDK) Pengembang*.

**UI yang sesuai: Tab konfigurasi/Wilayah**

## Tags
<a name="cdk.dep.tags"></a>

(*CDKDeploy*/Configuration/**Tags**)

(Opsional)

Tentukan tag yang ingin Anda terapkan ke AWS sumber daya di tumpukan AWS CDK aplikasi. Tag diterapkan ke tumpukan itu sendiri serta sumber daya individu di tumpukan. Untuk informasi selengkapnya tentang penandaan, lihat [Penandaan](https://docs.aws.amazon.com/cdk/v2/guide/tagging.html) di Panduan *AWS Cloud Development Kit (AWS CDK) Pengembang*.

**UI yang sesuai: Konfigurasi tab/Advanced - opsional/Tag**

## Context
<a name="cdk.dep.context"></a>

(*CDKDeploy*/Configuration/**Context**)

(Opsional)

Tentukan konteks, dalam bentuk pasangan kunci-nilai, untuk dikaitkan dengan tumpukan aplikasi. AWS CDK *Untuk informasi selengkapnya tentang konteks, lihat konteks [Runtime di Panduan Pengembang](https://docs.aws.amazon.com/cdk/v2/guide/context.html).AWS Cloud Development Kit (AWS CDK) *

**UI yang sesuai: Konfigurasi tab/Advanced - opsional/Konteks**

## CdkCliVersion
<a name="cdk.dep.cdk.cli.version"></a>

(*CDKDeploy*/Configuration/**CdkCliVersion**)

(Opsional)

**Properti ini tersedia dengan versi 1.0.13 atau yang lebih baru dari tindakan **AWS CDK penerapan**, dan versi 1.0.8 atau yang lebih baru dari tindakan bootstrap.AWS CDK **

Tentukan satu dari yang berikut ini:
+ Versi lengkap dari AWS Cloud Development Kit (AWS CDK) Command Line Interface (CLI) (juga disebut AWS CDK Toolkit) yang Anda ingin tindakan ini untuk digunakan. Contoh:`2.102.1`. Pertimbangkan untuk menentukan versi lengkap untuk memastikan konsistensi dan stabilitas saat membangun dan menerapkan aplikasi Anda.

  Atau
+ `latest`. Pertimbangkan `latest` untuk menentukan untuk memanfaatkan fitur dan perbaikan terbaru CDK CLI.

Tindakan akan mengunduh versi AWS CDK CLI yang ditentukan (atau versi terbaru) ke [gambar CodeCatalyst build](build-images.md), dan kemudian menggunakan versi ini untuk menjalankan perintah yang diperlukan untuk menyebarkan aplikasi CDK Anda atau mem-bootstrap lingkungan Anda. AWS 

[Untuk daftar versi CDK CLI yang didukung yang dapat Anda gunakan,AWS CDK lihat Versi.](https://docs.aws.amazon.com/cdk/api/versions.html)

Jika Anda menghilangkan properti ini, tindakan menggunakan versi AWS CDK CLI default yang dijelaskan dalam salah satu topik berikut:
+ [Versi CDK CLI yang digunakan oleh tindakan 'penerapan'AWS CDK](cdk-dep-action.md#cdk-dep-action-cdk-version) 
+ [Versi CDK CLI yang digunakan oleh tindakan AWS CDK "bootstrap”](cdk-boot-action.md#cdk-boot-action-cdk-version)

UI yang sesuai: Tab konfigurasi/versi **AWS CDK CLI**

## CdkRootPath
<a name="cdk.dep.cdk.root.path"></a>

(*CDKDeploy*/Configuration/**CdkRootPath**)

(Opsional)

Path ke direktori yang berisi `cdk.json` file AWS CDK proyek Anda. Tindakan **AWS CDK penyebaran** berjalan dari folder ini, dan output apa pun yang dibuat oleh tindakan akan ditambahkan ke direktori ini. Jika tidak ditentukan, tindakan **AWS CDK penerapan** mengasumsikan bahwa `cdk.json` file tersebut ada di root proyek Anda. AWS CDK 

UI yang sesuai: Tab **konfigurasi/Direktori tempat cdk.json** berada

## CfnOutputVariables
<a name="cdk.dep.cfn.out"></a>

(*CDKDeploy*/Configuration/**CfnOutputVariables**)

(Opsional)

Tentukan `CfnOutput` konstruksi mana dalam kode AWS CDK aplikasi yang ingin Anda paparkan sebagai variabel keluaran alur kerja. Anda kemudian dapat mereferensikan variabel keluaran alur kerja dalam tindakan selanjutnya dalam alur kerja Anda. Untuk informasi lebih lanjut tentang variabel di CodeCatalyst, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

Misalnya, jika kode AWS CDK aplikasi Anda terlihat seperti ini:

```
import { Duration, Stack, StackProps, CfnOutput, RemovalPolicy} from 'aws-cdk-lib';
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as s3 from 'aws-cdk-lib/aws-s3';
import { Construct } from 'constructs';
import * as cdk from 'aws-cdk-lib';
export class HelloCdkStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);
    const bucket = new s3.Bucket(this, 'amzn-s3-demo-bucket', {
      removalPolicy: RemovalPolicy.DESTROY,
    });
    new CfnOutput(this, 'bucketName', {
      value: bucket.bucketName,
      description: 'The name of the s3 bucket',
      exportName: 'amzn-s3-demo-bucket',
    });
    const table = new dynamodb.Table(this, 'todos-table', {
      partitionKey: {name: 'todoId', type: dynamodb.AttributeType.NUMBER},
      billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
      removalPolicy: RemovalPolicy.DESTROY,
    })
    new CfnOutput(this, 'tableName', {
      value: table.tableName,
      description: 'The name of the dynamodb table',
      exportName: 'myDynamoDbTable',
    });
    ...
  }
}
```

... dan `CfnOutputVariables` properti Anda terlihat seperti ini:

```
Configuration:
  ...
  CfnOutputVariables: '["bucketName","tableName"]'
```

... maka tindakan menghasilkan variabel output alur kerja berikut:


| Key | Nilai | 
| --- | --- | 
|  bucketName  |  `bucket.bucketName`  | 
|  tableName  |  `table.tableName`  | 

Anda kemudian dapat mereferensikan `tableName` variabel `bucketName` dan dalam tindakan selanjutnya. Untuk mempelajari cara mereferensikan variabel keluaran alur kerja dalam tindakan selanjutnya, lihat[Merujuk variabel yang telah ditentukan](workflows-working-with-variables-reference-output-vars.md).

Jika Anda tidak menentukan `CfnOutput` konstruksi apa pun di `CfnOutputVariables` properti, maka tindakan tersebut mengekspos empat (atau lebih sedikit) variabel CloudFormation keluaran pertama yang ditemukannya sebagai variabel keluaran alur kerja. Untuk informasi selengkapnya, lihat [variabel 'AWS CDK penyebaran'](cdk-dep-action-variables.md).

**Tip**  
Untuk mendapatkan daftar semua variabel CloudFormation keluaran yang dihasilkan tindakan, jalankan alur kerja yang berisi tindakan **AWS CDK penerapan** sekali, lalu lihat di tab **Log** tindakan. Log berisi daftar semua variabel CloudFormation keluaran yang terkait dengan AWS CDK aplikasi Anda. Setelah Anda tahu apa semua CloudFormation variabel, Anda dapat menentukan mana yang ingin Anda konversi ke variabel output alur kerja menggunakan `CfnOutputVariables` properti.

Untuk informasi selengkapnya tentang variabel CloudFormation keluaran, lihat dokumentasi untuk `CfnOutput` konstruksi, yang tersedia di [class CfnOutput (construct)](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnOutput.html) di Referensi *AWS Cloud Development Kit (AWS CDK) API*.

UI yang sesuai: Variabel **CloudFormation tab/output** konfigurasi

## CloudAssemblyRootPath
<a name="cdk.dep.cloud"></a>

(*CDKDeploy*/Configuration/**CloudAssemblyRootPath**)

(Opsional)

Jika Anda telah mensintesis tumpukan AWS CDK aplikasi ke dalam rakitan cloud (menggunakan `cdk synth` operasi), tentukan jalur root direktori perakitan cloud (`cdk.out`). CloudFormation Template yang terletak di direktori perakitan cloud yang ditentukan akan digunakan oleh tindakan **AWS CDK penerapan** ke dalam Anda Akun AWS menggunakan perintah. `cdk deploy --app` Ketika `--app` opsi hadir, `cdk synth` operasi tidak terjadi.

Jika Anda tidak menentukan direktori perakitan cloud, maka tindakan **AWS CDK penerapan** akan menjalankan `cdk deploy` perintah tanpa `--app` opsi. Tanpa `--app` opsi, `cdk deploy` operasi akan mensintesis (`cdk synth`) dan menerapkan aplikasi Anda ke dalam AWS CDK aplikasi Anda. Akun AWS

**Mengapa saya menentukan rakitan cloud yang sudah ada dan disintesis ketika tindakan "AWS CDK penerapan” dapat melakukan sintesis pada waktu berjalan?**

Anda mungkin ingin menentukan rakitan cloud yang sudah ada dan disintesis ke:
+ **Pastikan bahwa kumpulan sumber daya yang sama persis digunakan setiap kali tindakan "AWS CDK penerapan” berjalan**

  Jika Anda tidak menentukan rakitan cloud, tindakan **AWS CDK penerapan dapat mensintesis dan menyebarkan** file yang berbeda tergantung pada kapan dijalankan. Misalnya, tindakan **AWS CDK penerapan** mungkin mensintesis perakitan cloud dengan satu set dependensi selama tahap pengujian, dan kumpulan dependensi lainnya selama tahap produksi (jika dependensi tersebut berubah di antara tahapan). Untuk menjamin paritas yang tepat antara apa yang diuji dan apa yang diterapkan, kami sarankan untuk mensintesis sekali dan kemudian menggunakan bidang **direktori perakitan Path to cloud** (editor visual) atau `CloudAssemblyRootPath` properti (editor YAMAL) untuk menentukan rakitan cloud yang sudah disintesis.
+ **Gunakan pengelola dan perkakas paket non-standar dengan aplikasi AWS CDK **

  Selama `synth` operasi, tindakan **AWS CDK penerapan** mencoba menjalankan aplikasi Anda menggunakan alat standar seperti npm atau pip. Jika tindakan tidak berhasil menjalankan aplikasi Anda menggunakan alat tersebut, sintesis tidak akan terjadi dan tindakan akan gagal. Untuk mengatasi masalah ini, Anda dapat menentukan perintah persis yang diperlukan untuk menjalankan aplikasi dengan sukses di `cdk.json` file AWS CDK aplikasi, lalu mensintesis aplikasi Anda menggunakan metode yang tidak melibatkan tindakan **AWS CDK penerapan**. Setelah perakitan cloud dibuat, Anda dapat menentukannya di bidang **direktori Path to cloud assembly** (editor visual) atau `CloudAssemblyRootPath` properti (editor YAMAL) dari tindakan **AWS CDK penerapan**. 

Untuk informasi tentang mengonfigurasi `cdk.json` file agar menyertakan perintah untuk menginstal dan menjalankan AWS CDK aplikasi, lihat [Menentukan perintah aplikasi](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-app-command).

*Untuk informasi tentang `cdk synth` perintah `cdk deploy` dan, serta `--app` opsi, lihat Menerapkan tumpukan, [Mensintesis tumpukan](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-deploy), dan [Melewati](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-deploy-nosynth) [sintesis di Panduan](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-synth) Pengembang.AWS Cloud Development Kit (AWS CDK) *

Untuk informasi tentang rakitan cloud, lihat [Cloud Assembly di Referensi AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/api/v2/docs/cloud-assembly-schema-readme.html) *API*.

UI yang sesuai: Tab **konfigurasi/Jalur ke direktori perakitan cloud**

# Bootstrapping AWS CDK aplikasi dengan alur kerja
<a name="cdk-boot-action"></a>

Bagian ini menjelaskan cara bootstrap AWS CDK aplikasi menggunakan CodeCatalyst alur kerja. Untuk mencapai ini, Anda harus menambahkan tindakan **AWS CDK bootstrap** ke alur kerja Anda. Tindakan **AWS CDK bootstrap** menyediakan tumpukan bootstrap di AWS lingkungan Anda menggunakan [template modern](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html#bootstrapping-template). Jika tumpukan bootstrap sudah ada, tindakan akan memperbaruinya jika perlu. Memiliki tumpukan bootstrap yang ada di dalamnya AWS adalah prasyarat untuk menerapkan aplikasi. AWS CDK 

*Untuk informasi selengkapnya tentang bootstrap, lihat [Bootstrapping di Panduan Pengembang](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html).AWS Cloud Development Kit (AWS CDK) *

**Topics**
+ [Kapan menggunakan tindakan 'AWS CDK bootstrap'](#cdk-boot-action-when-to-use)
+ [Bagaimana tindakan 'AWS CDK bootstrap' bekerja](#cdk-boot-action-how-it-works)
+ [Versi CDK CLI yang digunakan oleh tindakan AWS CDK "bootstrap”](#cdk-boot-action-cdk-version)
+ [Gambar runtime yang digunakan oleh aksi 'AWS CDK bootstrap'](#cdk-boot-action-runtime)
+ [Contoh: Bootstrapping aplikasi AWS CDK](cdk-boot-action-example-workflow.md)
+ [Menambahkan aksi 'AWS CDK bootstrap'](cdk-boot-action-add.md)
+ [Variabel 'AWS CDK bootstrap'](cdk-boot-action-variables.md)
+ [Aksi 'AWS CDK bootstrap' YAMAL](cdk-boot-action-ref.md)

## Kapan menggunakan tindakan 'AWS CDK bootstrap'
<a name="cdk-boot-action-when-to-use"></a>

Gunakan tindakan ini jika Anda memiliki alur kerja yang menerapkan AWS CDK aplikasi, dan Anda ingin menerapkan (dan memperbarui, jika perlu) tumpukan bootstrap secara bersamaan. Dalam kasus ini, Anda akan menambahkan tindakan **AWS CDK bootstrap** ke alur kerja yang sama dengan yang menerapkan aplikasi Anda AWS CDK .

**Jangan** gunakan tindakan ini jika salah satu dari berikut ini berlaku:
+ Anda sudah menerapkan tumpukan bootstrap menggunakan mekanisme lain, dan Anda ingin menjaganya tetap utuh (tidak ada pembaruan).
+ Anda ingin menggunakan [template bootstrap khusus](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html#bootstrapping-customizing), yang tidak didukung dengan tindakan **AWS CDK bootstrap**.

## Bagaimana tindakan 'AWS CDK bootstrap' bekerja
<a name="cdk-boot-action-how-it-works"></a>

**AWS CDK Bootstrap** bekerja sebagai berikut:

1. [Saat runtime, jika Anda menentukan versi 1.0.7 atau tindakan sebelumnya, tindakan akan mengunduh CDK CLI terbaru (juga disebut AWS CDK Tookit) ke image build. CodeCatalyst ](build-images.md)

   Jika Anda menentukan versi 1.0.8 atau yang lebih baru, tindakan tersebut dibundel dengan [versi tertentu](cdk-dep-action.md#cdk-dep-action-cdk-version) dari CDK CLI, jadi tidak ada unduhan yang terjadi.

1. Tindakan menggunakan CDK CLI untuk menjalankan `cdk bootstrap` perintah. *Perintah ini melakukan tugas bootstrap yang dijelaskan dalam topik [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) di Panduan Pengembang.AWS Cloud Development Kit (AWS CDK) *

## Versi CDK CLI yang digunakan oleh tindakan AWS CDK "bootstrap”
<a name="cdk-boot-action-cdk-version"></a>

**Tabel berikut menunjukkan versi CDK CLI mana yang digunakan secara default oleh berbagai versi tindakan bootstrap AWS CDK .**

**catatan**  
Anda mungkin dapat mengganti default. Untuk informasi selengkapnya, lihat [CdkCliVersion](cdk-boot-action-ref.md#cdk.boot.cdk.cli.version) di [Aksi 'AWS CDK bootstrap' YAMAL](cdk-boot-action-ref.md).


| Versi AWS CDK tindakan 'bootstrap' | AWS CDK Versi CLI | 
| --- | --- | 
|  1.0.0 — 1.0.7  |  terbaru  | 
|  1.0.8 atau lebih baru  |  2.99.1  | 

## Gambar runtime yang digunakan oleh aksi 'AWS CDK bootstrap'
<a name="cdk-boot-action-runtime"></a>

Tabel berikut menunjukkan gambar lingkungan runtime yang CodeCatalyst digunakan untuk menjalankan berbagai versi tindakan **AWS CDK bootstrap**. Gambar-gambar tersebut mencakup berbagai set perkakas yang sudah diinstal sebelumnya. Untuk informasi selengkapnya, lihat [Gambar aktif](build-images.md#build-curated-images).

**catatan**  
Kami merekomendasikan untuk meningkatkan tindakan **AWS CDK bootstrap** Anda ke versi 2.x untuk memanfaatkan perkakas terbaru yang tersedia pada gambar Maret 2024. Untuk memutakhirkan tindakan, setel `Identifier` propertinya ke `aws/cdk-bootstrap@v2` dalam file definisi alur kerja Anda. Untuk informasi selengkapnya, lihat [Tindakan 'AWS CDK menyebarkan' YAMAL](cdk-dep-action-ref.md). 


| Versi AWS CDK tindakan 'bootstrap' | Gambar lingkungan runtime | 
| --- | --- | 
|  1.x  |  Gambar November 2022  | 
|  2.x  |  Maret 2024 foto  | 

# Contoh: Bootstrapping aplikasi AWS CDK
<a name="cdk-boot-action-example-workflow"></a>

Lihat [Contoh: Menerapkan aplikasi AWS CDK](cdk-dep-action-example-workflow.md) di [Menerapkan AWS CDK aplikasi dengan alur kerja](cdk-dep-action.md) untuk alur kerja yang mencakup tindakan **AWS CDK bootstrap**.

# Menambahkan aksi 'AWS CDK bootstrap'
<a name="cdk-boot-action-add"></a>

 Gunakan petunjuk berikut untuk menambahkan tindakan **AWS CDK bootstrap** ke alur kerja Anda. 

**Sebelum Anda memulai**

Sebelum Anda dapat menggunakan tindakan **AWS CDK bootstrap**, pastikan Anda memiliki AWS CDK aplikasi yang siap. Tindakan bootstrap akan mensintesis AWS CDK aplikasi sebelum bootstrap. Anda dapat menulis aplikasi Anda dalam bahasa pemrograman apa pun yang didukung oleh AWS CDK.

Pastikan file AWS CDK aplikasi Anda tersedia di:
+ Sebuah [repositori CodeCatalyst sumber](source.md), atau 
+ [Artefak CodeCatalyst keluaran](workflows-working-artifacts.md) yang dihasilkan oleh aksi alur kerja lain

------
#### [ Visual ]

**Untuk menambahkan tindakan 'AWS CDK bootstrap' menggunakan editor visual**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari tindakan **AWS CDK bootstrap**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **AWS CDK bootstrap**. Kotak dialog detail tindakan muncul. Pada kotak dialog ini:
     + (Opsional) Pilih **Lihat sumber** untuk [melihat kode sumber tindakan](workflows-view-source.md#workflows-view-source.title).
     + Pilih **Tambahkan ke alur kerja** untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

1. Pada tab **Input**, **Konfigurasi**, dan **Output**, lengkapi bidang sesuai dengan kebutuhan Anda. Untuk deskripsi setiap bidang, lihat[Aksi 'AWS CDK bootstrap' YAMAL](cdk-boot-action-ref.md). Referensi ini memberikan informasi rinci tentang setiap bidang (dan nilai properti YAMAL yang sesuai) seperti yang muncul di YAMAL dan editor visual.

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, lalu pilih **Komit** lagi.
**catatan**  
Jika tindakan **AWS CDK bootstrap** Anda gagal dengan `npm install` kesalahan, lihat [Bagaimana cara memperbaiki kesalahan “npm install”?](troubleshooting-workflows.md#troubleshooting-workflows-npm) untuk informasi tentang cara memperbaiki kesalahan.

------
#### [ YAML ]

**Untuk menambahkan tindakan 'AWS CDK bootstrap' menggunakan editor YAMAL**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari tindakan **AWS CDK bootstrap**, dan pilih **\$1** untuk menambahkannya ke diagram alur kerja dan buka panel konfigurasinya.

1. Ubah properti dalam kode YAMAL sesuai dengan kebutuhan Anda. Penjelasan tentang setiap properti yang tersedia disediakan di[Aksi 'AWS CDK bootstrap' YAMAL](cdk-boot-action-ref.md).

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, lalu pilih **Komit** lagi.
**catatan**  
Jika tindakan **AWS CDK bootstrap** Anda gagal dengan `npm install` kesalahan, lihat [Bagaimana cara memperbaiki kesalahan “npm install”?](troubleshooting-workflows.md#troubleshooting-workflows-npm) untuk informasi tentang cara memperbaiki kesalahan.

------

# Variabel 'AWS CDK bootstrap'
<a name="cdk-boot-action-variables"></a>

Tindakan **AWS CDK bootstrap** menghasilkan dan menetapkan variabel berikut pada waktu berjalan. Ini dikenal sebagai *variabel yang telah ditentukan*.

Untuk informasi tentang mereferensikan variabel-variabel ini dalam alur kerja, lihat. [Menggunakan variabel yang telah ditentukan](workflows-using-predefined-variables.md)


| Key | Nilai | 
| --- | --- | 
|  platform penyebaran  |  Nama platform penyebaran. Hardcode ke. `AWS:CloudFormation`  | 
|  region  |  Kode wilayah tempat Wilayah AWS tumpukan AWS CDK bootstrap digunakan selama alur kerja dijalankan. Contoh: `us-west-2`  | 
|  tumpukan-id  |  Nama Sumber Daya Amazon (ARN) dari tumpukan bootstrap yang diterapkan AWS CDK . Contoh: `arn:aws:cloudformation:us-west-2:111122223333:stack/codecatalyst-cdk-bootstrap-stack/6aad4380-100a-11ec-a10a-03b8a84d40df`  | 
|  LEWATI PENYEBARAN  |  Nilai `true` menunjukkan bahwa penerapan tumpukan AWS CDK bootstrap Anda dilewati selama alur kerja dijalankan. Penerapan tumpukan akan dilewati jika tidak ada perubahan dalam tumpukan sejak penerapan terakhir. Variabel ini hanya diproduksi jika nilainya`true`. Hardcode ke. `true`  | 

# Aksi 'AWS CDK bootstrap' YAMAL
<a name="cdk-boot-action-ref"></a>

Berikut ini adalah definisi YAMAL dari tindakan **AWS CDK bootstrap**. Untuk mempelajari cara menggunakan tindakan ini, lihat[Bootstrapping AWS CDK aplikasi dengan alur kerja](cdk-boot-action.md).

Definisi tindakan ini ada sebagai bagian dalam file definisi alur kerja yang lebih luas. Untuk informasi selengkapnya tentang file ini, lihat[Alur kerja definisi YAMAL](workflow-reference.md).

**catatan**  
Sebagian besar properti YAMB yang mengikuti memiliki elemen UI yang sesuai di editor visual. Untuk mencari elemen UI, gunakan **Ctrl\$1F**. Elemen akan terdaftar dengan properti YAMLnya yang terkait.

```
# The workflow definition starts here.
# See Properti tingkat atas for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.    
  CDKBootstrapAction\$1nn: 
    Identifier: aws/cdk-bootstrap@v2
    DependsOn:
      - action-name
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - artifact-name
    Outputs:
      Artifacts:
        - Name: cdk_bootstrap_artifacts
          Files: 
            - "cdk.out/**/*"
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      Region: us-west-2
      CdkCliVersion: version
```

## CDKBootstrapAction
<a name="cdk.boot.name"></a>

(Diperlukan)

Tentukan nama tindakan. Semua nama tindakan harus unik dalam alur kerja. Nama aksi terbatas pada karakter alfanumerik (a-z, A-Z, 0-9), tanda hubung (-), dan garis bawah (\$1). Spasi tidak diizinkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan karakter dan spasi khusus dalam nama tindakan.

Default: `CDKBootstrapAction_nn`.

UI yang sesuai: Tab **konfigurasi/Nama tampilan tindakan**

## Identifier
<a name="cdk.boot.identifier"></a>

(*CDKBootstrapAction*/**Identifier**)

(Diperlukan)

Mengidentifikasi tindakan. Jangan mengubah properti ini kecuali Anda ingin mengubah versi. Untuk informasi selengkapnya, lihat [Menentukan versi tindakan yang akan digunakan](workflows-action-versions.md).

**catatan**  
Menentukan `aws/cdk-bootstrap@v2` menyebabkan tindakan berjalan pada [gambar Maret 2024](build-images.md#build.default-image) yang menyertakan perkakas yang lebih baru seperti Node.js 18. Menentukan `aws/cdk-bootstrap@v1` menyebabkan tindakan berjalan pada [gambar November 2022](build-images.md#build.previous-image) yang menyertakan perkakas lama seperti Node.js 16.

Default: `aws/cdk-bootstrap@v2`.

**UI yang sesuai: Diagram alur CDKBootstrapAction kerja/\$1nn/ aws/cdk-bootstrap @v2 label**

## DependsOn
<a name="cdk.boot.dependson"></a>

(*CDKBootstrapAction*/**DependsOn**)

(Opsional)

Tentukan tindakan, grup tindakan, atau gerbang yang harus berjalan dengan sukses agar tindakan ini berjalan.

Untuk informasi selengkapnya tentang fungsionalitas 'tergantung pada', lihat. [Tindakan pengurutan](workflows-depends-on.md)

UI yang sesuai: Tab **masukan/Tergantung pada** - opsional

## Compute
<a name="cdk.boot.computename"></a>

(*CDKBootstrapAction*/**Compute**)

(Opsional)

Mesin komputasi yang digunakan untuk menjalankan tindakan alur kerja Anda. Anda dapat menentukan komputasi baik di tingkat alur kerja atau di tingkat tindakan, tetapi tidak keduanya. Ketika ditentukan pada tingkat alur kerja, konfigurasi komputasi berlaku untuk semua tindakan yang ditentukan dalam alur kerja. Pada tingkat alur kerja, Anda juga dapat menjalankan beberapa tindakan pada instance yang sama. Untuk informasi selengkapnya, lihat [Berbagi komputasi di seluruh tindakan](compute-sharing.md).

UI yang sesuai: *tidak ada*

## Type
<a name="cdk.boot.computetype"></a>

(*CDKBootstrapAction*/Compute/**Type**)

(Diperlukan [Compute](#cdk.boot.computename) jika disertakan)

Jenis mesin komputasi. Anda dapat menggunakan salah satu nilai berikut:
+ **EC2**(editor visual) atau `EC2` (editor YAMB)

  Dioptimalkan untuk fleksibilitas selama aksi berjalan.
+ **Lambda** (editor visual) atau `Lambda` (editor YAMG)

  Kecepatan start-up aksi yang dioptimalkan.

Untuk informasi selengkapnya tentang jenis komputasi, lihat[Jenis komputasi](workflows-working-compute.md#compute.types).

**UI yang sesuai: Konfigurasi tab/Advanced - tipe opsional/Komputasi**

## Fleet
<a name="cdk.boot.computefleet"></a>

(*CDKBootstrapAction*/Compute/**Fleet**)

(Opsional)

Tentukan mesin atau armada yang akan menjalankan alur kerja atau tindakan alur kerja Anda. Dengan armada sesuai permintaan, ketika suatu tindakan dimulai, alur kerja menyediakan sumber daya yang dibutuhkan, dan mesin dihancurkan ketika tindakan selesai. Contoh armada sesuai permintaan:`Linux.x86-64.Large`,. `Linux.x86-64.XLarge` Untuk informasi lebih lanjut tentang armada sesuai permintaan, lihat. [Properti armada sesuai permintaan](workflows-working-compute.md#compute.on-demand)

Dengan armada yang disediakan, Anda mengonfigurasi satu set mesin khusus untuk menjalankan tindakan alur kerja Anda. Mesin-mesin ini tetap menganggur, siap untuk memproses tindakan segera. Untuk informasi lebih lanjut tentang armada yang disediakan, lihat. [Properti armada yang disediakan](workflows-working-compute.md#compute.provisioned-fleets)

Jika `Fleet` dihilangkan, defaultnya adalah. `Linux.x86-64.Large`

**UI yang sesuai: Konfigurasi tab/Advanced - armada opsional/Komputasi**

## Timeout
<a name="cdk.boot.timeout"></a>

(*CDKBootstrapAction*/**Timeout**)

(Diperlukan)

Tentukan jumlah waktu dalam menit (editor YAMB), atau jam dan menit (editor visual), bahwa tindakan dapat berjalan sebelum CodeCatalyst mengakhiri tindakan. Minimal adalah 5 menit dan maksimum dijelaskan dalam[Kuota untuk alur kerja di CodeCatalyst](workflows-quotas.md). Batas waktu default sama dengan batas waktu maksimum.

UI yang sesuai: Tab **konfigurasi/Timeout** - opsional

## Inputs
<a name="cdk.boot.inputs"></a>

(*CDKBootstrapAction*/**Inputs**)

(Opsional)

`Inputs`Bagian ini mendefinisikan data yang dibutuhkan tindakan **AWS CDK bootstrap** selama menjalankan alur kerja.

UI yang sesuai: **Tab input**

**catatan**  
Hanya satu input (baik sumber atau artefak) yang diizinkan untuk setiap tindakan **AWS CDK bootstrap**.

## Sources
<a name="cdk.boot.inputs.sources"></a>

(*CDKBootstrapAction*/Inputs/**Sources**)

(Diperlukan jika AWS CDK aplikasi Anda disimpan dalam repositori sumber)

Jika AWS CDK aplikasi Anda disimpan dalam repositori sumber, tentukan label repositori sumber tersebut. Tindakan **AWS CDK bootstrap** mensintesis aplikasi di repositori ini sebelum memulai proses bootstrap. Saat ini, satu-satunya label repositori yang didukung adalah. `WorkflowSource`

Jika AWS CDK aplikasi Anda tidak terkandung dalam repositori sumber, itu harus berada dalam artefak yang dihasilkan oleh tindakan lain.

Untuk informasi selengkapnya tentang sumber, lihat [Menghubungkan repositori sumber ke alur kerja](workflows-sources.md).

UI yang sesuai: **Tab/Sumber** Input - opsional

## Artifacts - input
<a name="cdk.boot.inputs.artifacts"></a>

(*CDKBootstrapAction*/Inputs/**Artifacts**)

(Diperlukan jika AWS CDK aplikasi Anda disimpan dalam [artefak keluaran](workflows-working-artifacts-output.md) dari tindakan sebelumnya)

Jika AWS CDK aplikasi Anda terkandung dalam artefak yang dihasilkan oleh tindakan sebelumnya, tentukan artefak tersebut di sini. Tindakan **AWS CDK bootstrap** mensintesis aplikasi dalam artefak yang ditentukan ke dalam CloudFormation template sebelum memulai proses bootstrap. Jika AWS CDK aplikasi Anda tidak terkandung dalam artefak, itu harus berada di repositori sumber Anda.

Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihat[Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).

UI yang sesuai: Input **tab/Artefak** - opsional

## Outputs
<a name="cdk.boot.outputs"></a>

(*CDKBootstrapAction*/**Outputs**)

(Opsional)

Mendefinisikan data yang dihasilkan oleh tindakan selama menjalankan alur kerja.

UI yang sesuai: **Tab keluaran**

## Artifacts - output
<a name="cdk.boot.outputs.artifacts"></a>

(*CDKBootstrapAction*/Outputs/**Artifacts**)

(Opsional)

Tentukan artefak yang dihasilkan oleh tindakan. Anda dapat mereferensikan artefak ini sebagai masukan dalam tindakan lain.

Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihat[Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).

**UI yang sesuai: Tab keluaran/Artefak**

## Name
<a name="cdk.boot.outputs.artifacts.name"></a>

(*CDKBootstrapAction*/Outputs/Artifacts/**Name**)

(Diperlukan [Artifacts - output](#cdk.boot.outputs.artifacts) jika disertakan)

Tentukan nama artefak yang akan berisi CloudFormation template yang disintesis oleh aksi **AWS CDK bootstrap** saat runtime. Nilai default-nya adalah `cdk_bootstrap_artifacts`. Jika Anda tidak menentukan artefak, maka tindakan mensintesis template, tetapi tidak akan menyimpannya dalam artefak. Pertimbangkan untuk menyimpan template yang disintesis dalam artefak untuk menyimpan catatannya untuk tujuan pengujian atau pemecahan masalah.

**UI yang sesuai: Menghasilkan tab/Artifacts/Add artefak/Membangun nama artefak**

## Files
<a name="cdk.boot.outputs.artifacts.files"></a>

(*CDKBootstrapAction*/Outputs/Artifacts/**Files**)

(Diperlukan [Artifacts - output](#cdk.boot.outputs.artifacts) jika disertakan)

Tentukan file yang akan disertakan dalam artefak. Anda harus menentukan `"cdk.out/**/*"` untuk menyertakan CloudFormation template yang disintesis AWS CDK aplikasi Anda.

**catatan**  
`cdk.out`adalah direktori default tempat file yang disintesis disimpan. Jika Anda menentukan direktori keluaran selain `cdk.out` di `cdk.json` file Anda, tentukan direktori itu di sini, bukan`cdk.out`.

**UI yang sesuai: Mengeluarkan tab/Artifacts/Add artefak/File yang dihasilkan oleh build**

## Environment
<a name="cdk.boot.environment"></a>

(*CDKBootstrapAction*/**Environment**)

(Diperlukan)

Tentukan CodeCatalyst lingkungan yang akan digunakan dengan tindakan. Tindakan terhubung ke Akun AWS dan VPC Amazon opsional yang ditentukan di lingkungan yang dipilih. Tindakan ini menggunakan peran IAM default yang ditentukan di lingkungan untuk terhubung ke Akun AWS, dan menggunakan peran IAM yang ditentukan dalam [koneksi VPC Amazon untuk terhubung ke VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) Amazon.

**catatan**  
Jika peran IAM default tidak memiliki izin yang diperlukan oleh tindakan, Anda dapat mengonfigurasi tindakan untuk menggunakan peran yang berbeda. Untuk informasi selengkapnya, lihat [Mengubah peran IAM dari suatu tindakan](deploy-environments-switch-role.md).

Untuk informasi lebih lanjut tentang lingkungan, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md) dan[Pembuatan lingkungan](deploy-environments-creating-environment.md).

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Name
<a name="cdk.boot.environment.name"></a>

(*CDKBootstrapAction*/Environment/**Name**)

(Diperlukan [Environment](#cdk.boot.environment) jika disertakan)

Tentukan nama lingkungan yang ada yang ingin Anda kaitkan dengan tindakan.

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Connections
<a name="cdk.boot.environment.connections"></a>

(*CDKBootstrapAction*/Environment/**Connections**)

(Opsional dalam versi tindakan yang lebih baru; diperlukan dalam versi yang lebih lama)

Tentukan koneksi akun untuk dikaitkan dengan tindakan. Anda dapat menentukan maksimum satu koneksi akun di bawah`Environment`.

Jika Anda tidak menentukan koneksi akun:
+ Tindakan menggunakan Akun AWS koneksi dan peran IAM default yang ditentukan di lingkungan di CodeCatalyst konsol. Untuk informasi tentang menambahkan koneksi akun dan peran IAM default ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).
+ Peran IAM default harus menyertakan kebijakan dan izin yang diperlukan oleh tindakan. Untuk menentukan kebijakan dan izin tersebut, lihat deskripsi properti **Peran** dalam dokumentasi definisi YAMAL tindakan.

Untuk informasi selengkapnya tentang koneksi akun, lihat[Memungkinkan akses ke AWS sumber daya yang terhubung Akun AWS](ipa-connect-account.md). Untuk informasi tentang menambahkan koneksi akun ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Name
<a name="cdk.boot.environment.connections.name"></a>

(*CDKBootstrapAction*/Environment/Connections/**Name**)

(Diperlukan [Connections](#cdk.boot.environment.connections) jika disertakan)

Tentukan nama koneksi akun.

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Role
<a name="cdk.boot.environment.connections.role"></a>

(*CDKBootstrapAction*/Environment/Connections/**Role**)

(Diperlukan [Connections](#cdk.boot.environment.connections) jika disertakan)

Tentukan nama peran IAM yang digunakan tindakan **AWS CDK bootstrap** untuk mengakses AWS dan menambahkan tumpukan bootstrap. Pastikan Anda telah [menambahkan peran ke CodeCatalyst ruang Anda](ipa-connect-account-addroles.md), dan peran tersebut mencakup kebijakan berikut.

Jika Anda tidak menentukan peran IAM, maka tindakan tersebut menggunakan peran IAM default yang tercantum di [lingkungan](deploy-environments.md) di CodeCatalyst konsol. Jika Anda menggunakan peran default di lingkungan, pastikan itu memiliki kebijakan yang sesuai.

Anda dapat menggunakan `CodeCatalystWorkflowDevelopmentRole-spaceName` peran dengan tindakan ini, jika Anda mau. Untuk informasi selengkapnya tentang peran ini, silakan lihat [Membuat **CodeCatalystWorkflowDevelopmentRole-*spaceName***peran untuk akun dan ruang Anda](ipa-iam-roles.md#ipa-iam-roles-service-create). Memahami bahwa `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut memiliki izin akses penuh yang dapat menimbulkan risiko keamanan. Kami menyarankan Anda hanya menggunakan peran ini dalam tutorial dan skenario di mana keamanan kurang menjadi perhatian. 

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' '/ Environment/account/role Peran**

## Configuration
<a name="cdk.boot.configuration"></a>

(*CDKBootstrapAction*/**Configuration**)

(Diperlukan)

Bagian di mana Anda dapat menentukan properti konfigurasi tindakan.

UI yang sesuai: Tab **konfigurasi**

## Region
<a name="cdk.boot.region"></a>

(*CDKBootstrapAction*/Configuration/**Region**)

(Diperlukan)

Tentukan Wilayah AWS ke mana tumpukan bootstrap akan digunakan. Wilayah ini harus cocok dengan yang digunakan AWS CDK aplikasi Anda. Untuk daftar kode Wilayah, lihat [Titik akhir Regional](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes).

**UI yang sesuai: Tab konfigurasi/Wilayah**

## CdkCliVersion
<a name="cdk.boot.cdk.cli.version"></a>

(*CDKBootstrapAction*/Configuration/**CdkCliVersion**)

(Opsional)

**Properti ini tersedia dengan versi 1.0.13 atau yang lebih baru dari tindakan **AWS CDK penerapan**, dan versi 1.0.8 atau yang lebih baru dari tindakan bootstrap.AWS CDK **

Tentukan satu dari yang berikut ini:
+ Versi lengkap dari AWS Cloud Development Kit (AWS CDK) Command Line Interface (CLI) (juga disebut AWS CDK Toolkit) yang Anda ingin tindakan ini untuk digunakan. Contoh:`2.102.1`. Pertimbangkan untuk menentukan versi lengkap untuk memastikan konsistensi dan stabilitas saat membangun dan menerapkan aplikasi Anda.

  Atau
+ `latest`. Pertimbangkan `latest` untuk menentukan untuk memanfaatkan fitur dan perbaikan terbaru CDK CLI.

Tindakan akan mengunduh versi AWS CDK CLI yang ditentukan (atau versi terbaru) ke [gambar CodeCatalyst build](build-images.md), dan kemudian menggunakan versi ini untuk menjalankan perintah yang diperlukan untuk menyebarkan aplikasi CDK Anda atau mem-bootstrap lingkungan Anda. AWS 

[Untuk daftar versi CDK CLI yang didukung yang dapat Anda gunakan,AWS CDK lihat Versi.](https://docs.aws.amazon.com/cdk/api/versions.html)

Jika Anda menghilangkan properti ini, tindakan menggunakan versi AWS CDK CLI default yang dijelaskan dalam salah satu topik berikut:
+ [Versi CDK CLI yang digunakan oleh tindakan 'penerapan'AWS CDK](cdk-dep-action.md#cdk-dep-action-cdk-version) 
+ [Versi CDK CLI yang digunakan oleh tindakan AWS CDK "bootstrap”](cdk-boot-action.md#cdk-boot-action-cdk-version)

UI yang sesuai: Tab konfigurasi/versi **AWS CDK CLI**

# Menerbitkan file ke Amazon S3 dengan alur kerja
<a name="s3-pub-action"></a>

Bagian ini menjelaskan cara mempublikasikan file ke Amazon S3 menggunakan alur kerja. CodeCatalyst Untuk mencapai ini, Anda harus menambahkan tindakan publikasi **Amazon S3** ke alur kerja Anda. Tindakan **Amazon S3 menerbitkan** tindakan menyalin file dari direktori sumber ke bucket Amazon S3. Direktori sumber dapat berada di:
+ Sebuah [repositori sumber](source.md), atau 
+ [Artefak keluaran](workflows-working-artifacts.md) yang dihasilkan oleh aksi alur kerja lain

**Topics**
+ [Kapan menggunakan tindakan 'Amazon S3 publish'](#s3-pub-action-when-to-use)
+ [Gambar runtime yang digunakan oleh aksi 'Amazon S3 publish'](#s3-pub-action-runtime)
+ [Contoh: Publikasikan file ke Amazon S3](s3-pub-action-example-workflow.md)
+ [Menambahkan tindakan 'Amazon S3' publish'](s3-pub-action-add.md)
+ [Tindakan 'Amazon S3' memublikasikan YAMAL](s3-pub-action-ref.md)

## Kapan menggunakan tindakan 'Amazon S3 publish'
<a name="s3-pub-action-when-to-use"></a>

Gunakan tindakan ini jika:
+ Anda memiliki alur kerja yang menghasilkan file yang ingin Anda simpan di Amazon S3.

  Misalnya, Anda mungkin memiliki alur kerja yang membangun situs web statis yang ingin Anda host di Amazon S3. Dalam hal ini, alur kerja Anda akan menyertakan [tindakan build](build-add-action.md) untuk membangun HTML situs dan file pendukung, dan tindakan publikasi **Amazon S3** untuk menyalin file ke Amazon S3.
+ Anda memiliki repositori sumber yang berisi file yang ingin Anda simpan di Amazon S3.

  Misalnya, Anda mungkin memiliki repositori sumber dengan file sumber aplikasi yang ingin Anda arsipkan setiap malam ke Amazon S3.

## Gambar runtime yang digunakan oleh aksi 'Amazon S3 publish'
<a name="s3-pub-action-runtime"></a>

Tindakan **publikasi Amazon S3** berjalan pada gambar [November 2022](build-images.md#build.previous-image). Lihat informasi yang lebih lengkap di [Gambar aktif](build-images.md#build-curated-images).

# Contoh: Publikasikan file ke Amazon S3
<a name="s3-pub-action-example-workflow"></a>

Contoh alur kerja berikut mencakup tindakan publikasi **Amazon S3**, bersama dengan tindakan build. Alur kerja membangun situs web dokumentasi statis dan kemudian menerbitkannya ke Amazon S3, di mana ia di-host. 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** (`BuildDocs`) — Pada pemicu, tindakan membangun situs web dokumentasi statis (`mkdocs build`) dan menambahkan file HTML terkait dan metadata pendukung ke artefak yang disebut. `MyDocsSite` Untuk informasi selengkapnya tentang tindakan build, lihat[Membangun dengan alur kerja](build-workflow-actions.md).
+ Tindakan **publikasi Amazon S3** (`PublishToS3`) - Setelah menyelesaikan tindakan pembuatan, tindakan ini menyalin situs dalam `MyDocsSite` artefak ke Amazon S3 untuk hosting.

**catatan**  
Contoh alur kerja berikut adalah untuk tujuan ilustrasi, dan tidak akan berfungsi tanpa konfigurasi tambahan.

**catatan**  
Dalam kode YAMAL berikut, Anda dapat menghilangkan `Connections:` bagian jika Anda mau. Jika Anda menghilangkan bagian ini, Anda harus memastikan bahwa peran yang ditentukan dalam bidang **peran IAM default** di lingkungan Anda mencakup izin dan kebijakan kepercayaan yang diperlukan oleh tindakan publikasi **Amazon** S3. Untuk informasi selengkapnya tentang menyiapkan lingkungan dengan peran IAM default, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md). Untuk informasi selengkapnya tentang izin dan kebijakan kepercayaan yang diperlukan oleh tindakan publikasi **Amazon S3**, lihat deskripsi properti [Role](s3-pub-action-ref.md#s3.pub.environment.connections.role) di. [Tindakan 'Amazon S3' memublikasikan YAMAL](s3-pub-action-ref.md)

```
Name: codecatalyst-s3-publish-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  BuildDocs:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
        - Run: echo BuildDocs started on `date`
        - Run: pip install --upgrade pip
        - Run: pip install mkdocs
        - Run: mkdocs build
        - Run: echo BuildDocs completed on `date`
    Outputs:
      Artifacts:
      - Name: MyDocsSite
        Files:
          - "site/**/*"
        
  PublishToS3:
    Identifier: aws/s3-publish@v1
    Environment:
      Name: codecatalyst-s3-publish-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-s3-publish-build-role
    Inputs:
      Sources:
        - WorkflowSource
      Artifacts:
        - MyDocsSite
    Configuration:      
      DestinationBucketName: amzn-s3-demo-bucket
      SourcePath: /artifacts/PublishToS3/MyDocSite/site
      TargetPath: my/docs/site
```

# Menambahkan tindakan 'Amazon S3' publish'
<a name="s3-pub-action-add"></a>

 Gunakan petunjuk berikut untuk menambahkan tindakan **publikasi Amazon S3** ke alur kerja Anda. 

------
#### [ Visual ]

**Untuk menambahkan tindakan 'Amazon S3 publish' menggunakan editor visual**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari tindakan **publikasi Amazon S3**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **Amazon S3** terbitkan. Kotak dialog detail tindakan muncul. Pada kotak dialog ini:
     + (Opsional) Pilih **Lihat sumber** untuk [melihat kode sumber tindakan](workflows-view-source.md#workflows-view-source.title).
     + Pilih **Tambahkan ke alur kerja** untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

1. Pada tab **Input**, **Konfigurasi**, dan **Output**, lengkapi bidang sesuai dengan kebutuhan Anda. Untuk deskripsi setiap bidang, lihat[Tindakan 'Amazon S3' memublikasikan YAMAL](s3-pub-action-ref.md). Referensi ini memberikan informasi rinci tentang setiap bidang (dan nilai properti YAMAL yang sesuai) seperti yang muncul di YAMAL dan editor visual.

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, lalu pilih **Komit** lagi.

------
#### [ YAML ]

**Untuk menambahkan tindakan 'Amazon S3 publish' menggunakan editor YAMAL**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Di kiri atas, pilih **\$1 Tindakan** untuk membuka katalog tindakan.

1. Dari daftar drop-down, pilih **Amazon CodeCatalyst**.

1. Cari tindakan **publikasi Amazon S3**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **Amazon S3** terbitkan. Kotak dialog detail tindakan muncul. Pada kotak dialog ini:
     + (Opsional) Pilih **Lihat sumber** untuk [melihat kode sumber tindakan](workflows-view-source.md#workflows-view-source.title).
     + Pilih **Tambahkan ke alur kerja** untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

1. Ubah properti dalam kode YAMAL sesuai dengan kebutuhan Anda. Penjelasan tentang setiap properti yang tersedia disediakan di[Tindakan 'Amazon S3' memublikasikan YAMAL](s3-pub-action-ref.md).

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, lalu pilih **Komit** lagi.

------

# Tindakan 'Amazon S3' memublikasikan YAMAL
<a name="s3-pub-action-ref"></a>

Berikut ini adalah definisi YAMAL dari tindakan publikasi **Amazon S3**. Untuk mempelajari cara menggunakan tindakan ini, lihat[Menerbitkan file ke Amazon S3 dengan alur kerja](s3-pub-action.md).

Definisi tindakan ini ada sebagai bagian dalam file definisi alur kerja yang lebih luas. Untuk informasi lebih lanjut tentang file ini, lihat[Alur kerja definisi YAMAL](workflow-reference.md).

**catatan**  
Sebagian besar properti YAMAL yang mengikuti memiliki elemen UI yang sesuai di editor visual. Untuk mencari elemen UI, gunakan **Ctrl\$1F**. Elemen akan terdaftar dengan properti YAMLnya yang terkait.

```
# The workflow definition starts here.
# See Properti tingkat atas for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.    
  S3Publish\$1nn: 
    Identifier: aws/s3-publish@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      Sources:
        - source-name-1
      Artifacts:
        - artifact-name
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      SourcePath: my/source
      DestinationBucketName: amzn-s3-demo-bucket
      TargetPath: my/target
```

## S3Publish
<a name="s3.pub.name"></a>

(Diperlukan)

Tentukan nama tindakan. Semua nama tindakan harus unik dalam alur kerja. Nama aksi terbatas pada karakter alfanumerik (a-z, A-Z, 0-9), tanda hubung (-), dan garis bawah (\$1). Spasi tidak diizinkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan karakter dan spasi khusus dalam nama tindakan.

Default: `S3Publish_nn`.

UI yang sesuai: Tab konfigurasi/Nama **tindakan**

## Identifier
<a name="s3.pub.identifier"></a>

(*S3Publish*/**Identifier**)

(Diperlukan)

Mengidentifikasi tindakan. Jangan mengubah properti ini kecuali Anda ingin mengubah versi. Untuk informasi selengkapnya, lihat [Menentukan versi tindakan yang akan digunakan](workflows-action-versions.md).

Default: `aws/s3-publish@v1`.

**UI yang sesuai: Diagram alur kerja/ S3Publish \$1nn/ aws/s3-publish @v1 label**

## DependsOn
<a name="s3.pub.dependson"></a>

(*S3Publish*/**DependsOn**)

(Opsional)

Tentukan tindakan, grup tindakan, atau gerbang yang harus berjalan dengan sukses agar tindakan ini berjalan.

Untuk informasi selengkapnya tentang fungsionalitas 'tergantung pada', lihat. [Tindakan pengurutan](workflows-depends-on.md)

UI yang sesuai: Tab **masukan/Tergantung pada** - opsional

## Compute
<a name="s3.pub.computename"></a>

(*S3Publish*/**Compute**)

(Opsional)

Mesin komputasi digunakan untuk menjalankan tindakan alur kerja Anda. Anda dapat menentukan komputasi baik di tingkat alur kerja atau di tingkat tindakan, tetapi tidak keduanya. Ketika ditentukan pada tingkat alur kerja, konfigurasi komputasi berlaku untuk semua tindakan yang ditentukan dalam alur kerja. Pada tingkat alur kerja, Anda juga dapat menjalankan beberapa tindakan pada instance yang sama. Untuk informasi selengkapnya, lihat [Berbagi komputasi di seluruh tindakan](compute-sharing.md).

UI yang sesuai: *tidak ada*

## Type
<a name="s3.pub.computetype"></a>

(*S3Publish*/Compute/**Type**)

(Diperlukan [Compute](#s3.pub.computename) jika disertakan)

Jenis mesin komputasi. Anda dapat menggunakan salah satu nilai berikut:
+ **EC2**(editor visual) atau `EC2` (editor YAMAL)

  Dioptimalkan untuk fleksibilitas selama aksi berjalan.
+ **Lambda** (editor visual) atau `Lambda` (editor YAMAL)

  Kecepatan start-up aksi yang dioptimalkan.

Untuk informasi selengkapnya tentang jenis komputasi, lihat[Jenis komputasi](workflows-working-compute.md#compute.types).

UI yang sesuai: Tab konfigurasi/Jenis **komputasi**

## Fleet
<a name="s3.pub.computefleet"></a>

(*S3Publish*/Compute/**Fleet**)

(Opsional)

Tentukan mesin atau armada yang akan menjalankan alur kerja atau tindakan alur kerja Anda. Dengan armada sesuai permintaan, ketika suatu tindakan dimulai, alur kerja menyediakan sumber daya yang dibutuhkan, dan mesin dihancurkan ketika tindakan selesai. Contoh armada sesuai permintaan:`Linux.x86-64.Large`,. `Linux.x86-64.XLarge` Untuk informasi lebih lanjut tentang armada sesuai permintaan, lihat. [Properti armada sesuai permintaan](workflows-working-compute.md#compute.on-demand)

Dengan armada yang disediakan, Anda mengonfigurasi satu set mesin khusus untuk menjalankan tindakan alur kerja Anda. Mesin-mesin ini tetap menganggur, siap untuk memproses tindakan segera. Untuk informasi lebih lanjut tentang armada yang disediakan, lihat. [Properti armada yang disediakan](workflows-working-compute.md#compute.provisioned-fleets)

Jika `Fleet` dihilangkan, defaultnya adalah. `Linux.x86-64.Large`

UI yang sesuai: Tab konfigurasi/Armada **komputasi**

## Timeout
<a name="s3.pub.timeout"></a>

(*S3Publish*/**Timeout**)

(Diperlukan)

Tentukan jumlah waktu dalam menit (editor YAMAL), atau jam dan menit (editor visual), bahwa tindakan dapat berjalan sebelum CodeCatalyst mengakhiri tindakan. Minimal adalah 5 menit dan maksimum dijelaskan dalam[Kuota untuk alur kerja di CodeCatalyst](workflows-quotas.md). Batas waktu default sama dengan batas waktu maksimum.

UI yang sesuai: Tab **konfigurasi/Timeout** - opsional

## Inputs
<a name="s3.pub.inputs"></a>

(*S3Publish*/**Inputs**)

(Opsional)

`Inputs`Bagian ini mendefinisikan data yang `S3Publish` dibutuhkan selama menjalankan alur kerja.

**catatan**  
Maksimal empat input (satu sumber dan tiga artefak) diizinkan untuk setiap tindakan **AWS CDK penerapan**. Variabel tidak dihitung terhadap total ini.

Jika Anda perlu merujuk ke file yang berada di input yang berbeda (katakanlah sumber dan artefak), input sumber adalah input utama, dan artefak adalah input sekunder. Referensi ke file dalam input sekunder mengambil awalan khusus untuk menyisihkannya dari primer. Lihat perinciannya di [Contoh: Merujuk file dalam beberapa artefak](workflows-working-artifacts-ex.md#workflows-working-artifacts-ex-ref-file).

UI yang sesuai: **Tab input**

## Sources
<a name="s3.pub.inputs.sources"></a>

(*S3Publish*/Inputs/**Sources**)

(Diperlukan jika file yang ingin Anda publikasikan ke Amazon S3 disimpan dalam repositori sumber)

Jika file yang ingin Anda publikasikan ke Amazon S3 disimpan dalam repositori sumber, tentukan label repositori sumber tersebut. Saat ini, satu-satunya label yang didukung adalah`WorkflowSource`.

Jika file yang ingin Anda publikasikan ke Amazon S3 tidak terkandung dalam repositori sumber, mereka harus berada dalam artefak yang dihasilkan oleh tindakan lain.

Untuk informasi selengkapnya tentang sumber, lihat [Menghubungkan repositori sumber ke alur kerja](workflows-sources.md).

UI yang sesuai: **Tab/Sumber** Input - opsional

## Artifacts - input
<a name="s3.pub.inputs.artifacts"></a>

(*S3Publish*/Inputs/**Artifacts**)

(Diperlukan jika file yang ingin Anda publikasikan ke Amazon S3 disimpan dalam [artefak keluaran dari tindakan](workflows-working-artifacts-output.md) sebelumnya)

Jika file yang ingin Anda publikasikan ke Amazon S3 terkandung dalam artefak yang dihasilkan oleh tindakan sebelumnya, tentukan artefak tersebut di sini. Jika file Anda tidak terkandung dalam artefak, mereka harus berada di repositori sumber Anda.

Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihat[Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).

UI yang sesuai: Tab **konfigurasi/Artefak** - opsional

## Variables - input
<a name="s3.pub.inputs.variables"></a>

(*S3Publish*/Inputs/**Variables**)

(Opsional)

Tentukan urutan name/value pasangan yang menentukan variabel input yang ingin Anda sediakan untuk tindakan. Nama variabel terbatas pada karakter alfanumerik (a-z, A-Z, 0-9), tanda hubung (-), dan garis bawah (\$1). Spasi tidak diizinkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan karakter dan spasi khusus dalam nama variabel.

Untuk informasi selengkapnya tentang variabel, termasuk contoh, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

UI yang sesuai: Input **tab/Variabel** - opsional

## Environment
<a name="s3.pub.environment"></a>

(*S3Publish*/**Environment**)

(Diperlukan)

Tentukan CodeCatalyst lingkungan yang akan digunakan dengan tindakan. Tindakan terhubung ke Akun AWS dan VPC Amazon opsional yang ditentukan di lingkungan yang dipilih. Tindakan ini menggunakan peran IAM default yang ditentukan di lingkungan untuk terhubung ke Akun AWS, dan menggunakan peran IAM yang ditentukan dalam [koneksi VPC Amazon untuk terhubung ke VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) Amazon.

**catatan**  
Jika peran IAM default tidak memiliki izin yang diperlukan oleh tindakan, Anda dapat mengonfigurasi tindakan untuk menggunakan peran yang berbeda. Untuk informasi selengkapnya, lihat [Mengubah peran IAM dari suatu tindakan](deploy-environments-switch-role.md).

Untuk informasi lebih lanjut tentang lingkungan, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md) dan[Pembuatan lingkungan](deploy-environments-creating-environment.md).

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Name
<a name="s3.pub.environment.name"></a>

(*S3Publish*/Environment/**Name**)

(Diperlukan [Environment](#s3.pub.environment) jika disertakan)

Tentukan nama lingkungan yang ada yang ingin Anda kaitkan dengan tindakan.

**UI yang sesuai: Tab konfigurasi/Lingkungan**

## Connections
<a name="s3.pub.environment.connections"></a>

(*S3Publish*/Environment/**Connections**)

(Opsional dalam versi tindakan yang lebih baru; diperlukan dalam versi yang lebih lama)

Tentukan koneksi akun untuk dikaitkan dengan tindakan. Anda dapat menentukan maksimum satu koneksi akun di bawah`Environment`.

Jika Anda tidak menentukan koneksi akun:
+ Tindakan menggunakan Akun AWS koneksi dan peran IAM default yang ditentukan di lingkungan di CodeCatalyst konsol. Untuk informasi tentang menambahkan koneksi akun dan peran IAM default ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).
+ Peran IAM default harus menyertakan kebijakan dan izin yang diperlukan oleh tindakan. Untuk menentukan kebijakan dan izin tersebut, lihat deskripsi properti **Peran** dalam dokumentasi definisi YAMAL tindakan.

Untuk informasi selengkapnya tentang koneksi akun, lihat[Memungkinkan akses ke AWS sumber daya yang terhubung Akun AWS](ipa-connect-account.md). Untuk informasi tentang menambahkan koneksi akun ke lingkungan, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Name
<a name="s3.pub.environment.connections.name"></a>

(*S3Publish*/Environment/Connections/**Name**)

(Diperlukan [Connections](#s3.pub.environment.connections) jika disertakan)

Tentukan nama koneksi akun.

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' Environment/account/role AWS '/ koneksi akun**

## Role
<a name="s3.pub.environment.connections.role"></a>

(*S3Publish*/Environment/Connections/**Role**)

(Diperlukan [Connections](#s3.pub.environment.connections) jika disertakan)

Tentukan nama peran IAM yang digunakan tindakan publikasi **Amazon S3** untuk AWS mengakses dan menyalin file ke Amazon S3. Pastikan Anda telah [menambahkan peran ke CodeCatalyst ruang Anda](ipa-connect-account-addroles.md), dan peran tersebut mencakup kebijakan berikut.

Jika Anda tidak menentukan peran IAM, maka tindakan tersebut menggunakan peran IAM default yang tercantum di [lingkungan](deploy-environments.md) di CodeCatalyst konsol. Jika Anda menggunakan peran default di lingkungan, pastikan itu memiliki kebijakan berikut.
+ Kebijakan izin berikut:
**Awas**  
Batasi izin untuk yang ditampilkan dalam kebijakan berikut. Menggunakan peran dengan izin yang lebih luas dapat menimbulkan risiko keamanan.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:ListBucket",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::bucket-name",
                  "arn:aws:s3:::bucket-name/*"
              ]
          }
      ]
  }
  ```

------
+ Kebijakan kepercayaan khusus berikut:

**catatan**  
Anda dapat menggunakan `CodeCatalystWorkflowDevelopmentRole-spaceName` peran dengan tindakan ini, jika Anda mau. Untuk informasi selengkapnya tentang peran ini, silakan lihat [Membuat **CodeCatalystWorkflowDevelopmentRole-*spaceName***peran untuk akun dan ruang Anda](ipa-iam-roles.md#ipa-iam-roles-service-create). Memahami bahwa `CodeCatalystWorkflowDevelopmentRole-spaceName` peran tersebut memiliki izin akses penuh yang dapat menimbulkan risiko keamanan. Kami menyarankan Anda hanya menggunakan peran ini dalam tutorial dan skenario di mana keamanan kurang menjadi perhatian. 

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:
+ (Versi yang lebih baru) Konfigurasi tab/Environment/What masuk? *my-environment* **/menu tiga titik/Beralih peran**
+ **(Versi lama) Tab konfigurasi/' '/ Environment/account/role Peran**

## Configuration
<a name="s3.pub.configuration"></a>

(*S3Publish*/**Configuration**)

(Diperlukan)

Bagian di mana Anda dapat menentukan properti konfigurasi tindakan.

UI yang sesuai: Tab **konfigurasi**

## SourcePath
<a name="s3.pub.source.directory"></a>

(*S3Publish*/Configuration/**SourcePath**)

(Diperlukan)

Tentukan nama dan jalur direktori atau file yang ingin Anda publikasikan ke Amazon S3. Direktori atau file dapat berada di repositori sumber atau artefak dari tindakan sebelumnya, dan relatif terhadap repositori sumber atau root artefak.

Contoh:

Menentukan `./myFolder/` salinan konten `/myFolder` ke Amazon S3, dan mempertahankan struktur direktori yang mendasarinya.

Menentukan `./myFolder/myfile.txt` salinan *hanya* `myfile.txt` untuk Amazon S3. (Struktur direktori dihapus.)

Anda tidak dapat menggunakan wildcard.

**catatan**  
Anda mungkin perlu menambahkan awalan ke direktori atau jalur file untuk menunjukkan artefak atau sumber mana yang akan menemukannya. Untuk informasi selengkapnya, lihat [Merujuk file repositori sumber](workflows-sources-reference-files.md) dan [Mereferensikan file dalam artefak](workflows-working-artifacts-refer-files.md).

UI yang sesuai: Tab konfigurasi/Jalur **sumber**

## DestinationBucketName
<a name="s3.pub.dest.bucket"></a>

(*S3Publish*/Configuration/**DestinationBucketName**)

(Diperlukan)

Tentukan nama bucket Amazon S3 tempat Anda ingin mempublikasikan file.

UI yang sesuai: Tab **konfigurasi/ember Tujuan -** opsional

## TargetPath
<a name="s3.pub.dest.directory"></a>

(*S3Publish*/Configuration/**TargetPath**)

(Opsional)

Tentukan nama dan jalur direktori di Amazon S3 tempat Anda ingin mempublikasikan file Anda. Jika direktori tidak ada, itu akan dibuat. Jalur direktori tidak boleh menyertakan nama bucket.

Contoh:

`myS3Folder`

`./myS3Folder/myS3Subfolder`

UI yang sesuai: Tab **konfigurasi/direktori Tujuan -** opsional

# Menyebarkan ke dalam Akun AWS dan VPCs
<a name="deploy-environments"></a>

Dengan menggunakan [CodeCatalyst alur kerja](workflow.md), Anda dapat menerapkan aplikasi dan sumber daya lain untuk menargetkan Akun AWS s dan Amazon VPCs di AWS cloud. Untuk mengaktifkan penerapan ini, Anda harus mengatur CodeCatalyst lingkungan.

 CodeCatalyst *Lingkungan*[, jangan dikelirukan dengan [Lingkungan Pengembang](https://docs.aws.amazon.com/codecatalyst/latest/userguide/devenvironment.html), mendefinisikan target Akun AWS dan VPC Amazon opsional yang terhubung dengan CodeCatalyst alur kerja.](workflow.md) Lingkungan juga mendefinisikan [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang dibutuhkan alur kerja untuk mengakses AWS layanan dan sumber daya dalam akun target.

Anda dapat menyiapkan beberapa lingkungan dan memberinya nama seperti pengembangan, pengujian, penahapan, dan produksi. Saat Anda menerapkan ke lingkungan ini, informasi tentang penerapan akan muncul di tab **aktivitas CodeCatalyst Deployment** dan **target Deployment** di lingkungan.

## Bagaimana cara memulai dengan lingkungan?
<a name="deploy-environments-get-started"></a>

Langkah-langkah tingkat tinggi untuk menambah dan menggunakan CodeCatalyst lingkungan adalah sebagai berikut:

1. Di CodeCatalyst ruang Anda, **hubungkan satu atau beberapa AWS akun**. Selama proses ini, tambahkan peran IAM yang diperlukan alur kerja Anda untuk mengakses sumber daya di Anda. Akun AWS Untuk informasi selengkapnya, lihat [Memungkinkan akses ke AWS sumber daya yang terhubung Akun AWS](ipa-connect-account.md).

1. Dalam CodeCatalyst proyek Anda, **buat lingkungan** yang mencakup salah satu peran Akun AWS s dan IAM dari langkah 1. Untuk informasi selengkapnya, lihat [Pembuatan lingkungan](deploy-environments-creating-environment.md).

1. Dalam CodeCatalyst proyek Anda, dalam alur kerja, **tambahkan [tindakan](workflows-actions.md) yang menunjuk ke lingkungan yang** Anda buat di langkah 2. Untuk informasi selengkapnya, lihat [Menambahkan tindakan ke alur kerja](workflows-add-action.md).

   Anda sekarang telah mengkonfigurasi lingkungan. Tindakan sekarang dapat menyebarkan sumber daya ke dalam yang Akun AWS ditentukan di lingkungan.

**catatan**  
Anda juga dapat menambahkan VPC Amazon ke lingkungan. Untuk informasi selengkapnya, lihat [Menambahkan koneksi VPC untuk spasi](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) di *Panduan CodeCatalyst Administrasi* dan. [Mengaitkan VPC dengan lingkungan](deploy-environments-associate-vpc.md)

## Dapatkah beberapa lingkungan ada dalam satu alur kerja?
<a name="deploy-environments-multiple"></a>

Ya. Jika alur kerja menyertakan beberapa tindakan, setiap tindakan tersebut dapat ditetapkan suatu lingkungan. Misalnya, Anda dapat memiliki alur kerja yang menyertakan dua tindakan penerapan, di mana satu ditetapkan `my-staging-enviroment` lingkungan dan yang lain ditetapkan lingkungan. `my-production-environment`

## Tindakan alur kerja mana yang mendukung lingkungan?
<a name="deploy-environments-supported"></a>

Setiap tindakan alur kerja yang menyebarkan sumber daya ke AWS cloud, atau berkomunikasi dengan AWS layanan karena alasan lain (seperti pemantauan dan pelaporan), mendukung lingkungan.

## Tindakan mana yang mendukung agar informasi penerapannya ditampilkan? CodeCatalyst
<a name="deploy-environments-supported-targets"></a>

Dari tindakan alur kerja yang mendukung lingkungan, hanya sedikit yang mendukung agar informasi penerapannya ditampilkan di halaman **aktivitas Deployment** dan **target Deployment** di konsol. CodeCatalyst 

Tindakan alur kerja berikut mendukung agar informasi penerapannya ditampilkan:
+ **Menyebarkan CloudFormation tumpukan** - Untuk informasi selengkapnya, lihat [Menyebarkan tumpukan CloudFormation](deploy-action-cfn.md)
+ **Menyebarkan ke Amazon ECS** - Untuk informasi selengkapnya, lihat [Menyebarkan ke Amazon ECS dengan alur kerja](deploy-action-ecs.md)
+ **Terapkan ke klaster Kubernetes** — Untuk informasi selengkapnya, lihat [Menerapkan ke Amazon EKS dengan alur kerja](deploy-action-eks.md)
+ **AWS CDK deploy** — Untuk informasi selengkapnya, lihat [Menerapkan AWS CDK aplikasi dengan alur kerja](cdk-dep-action.md)

## Wilayah yang Didukung
<a name="deploy-environments-supported-regions"></a>

Halaman **Lingkungan** dapat menampilkan sumber daya di AWS Wilayah mana pun.

## Apakah lingkungan wajib?
<a name="deploy-environments-optional-or-mandatory"></a>

Lingkungan adalah wajib jika tindakan alur kerja yang ditugaskan menyebarkan sumber daya ke AWS cloud, atau berkomunikasi dengan AWS layanan karena alasan lain (seperti pemantauan dan pelaporan).

Misalnya, jika Anda memiliki tindakan build yang membangun aplikasi tetapi tidak perlu berkomunikasi dengan VPC Anda Akun AWS atau Amazon, maka Anda tidak perlu menetapkan lingkungan untuk tindakan tersebut. Namun, jika tindakan build mengirimkan log ke CloudWatch layanan Amazon di Anda Akun AWS, maka tindakan tersebut harus memiliki lingkungan yang ditetapkan. 

**Topics**
+ [Bagaimana cara memulai dengan lingkungan?](#deploy-environments-get-started)
+ [Dapatkah beberapa lingkungan ada dalam satu alur kerja?](#deploy-environments-multiple)
+ [Tindakan alur kerja mana yang mendukung lingkungan?](#deploy-environments-supported)
+ [Tindakan mana yang mendukung agar informasi penerapannya ditampilkan? CodeCatalyst](#deploy-environments-supported-targets)
+ [Wilayah yang Didukung](#deploy-environments-supported-regions)
+ [Apakah lingkungan wajib?](#deploy-environments-optional-or-mandatory)
+ [Pembuatan lingkungan](deploy-environments-creating-environment.md)
+ [Mengaitkan lingkungan dengan tindakan](deploy-environments-add-app-to-environment.md)
+ [Mengaitkan VPC dengan lingkungan](deploy-environments-associate-vpc.md)
+ [Mengaitkan Akun AWS dengan lingkungan](deploy-environments-associate-account.md)
+ [Mengubah peran IAM dari suatu tindakan](deploy-environments-switch-role.md)

# Pembuatan lingkungan
<a name="deploy-environments-creating-environment"></a>

Gunakan petunjuk berikut untuk membuat lingkungan yang nantinya dapat Anda kaitkan dengan tindakan alur kerja.

**Sebelum Anda mulai**

Anda membutuhkan yang berikut ini:
+ Sebuah CodeCatalyst ruang. Untuk informasi selengkapnya, lihat [Siapkan dan masuk ke CodeCatalystSiapkan dan masuk ke CodeCatalyst](setting-up-topnode.md).
+ Sebuah CodeCatalyst proyek. Untuk informasi selengkapnya, lihat [Membuat proyek dengan cetak biru](projects-create.md#projects-create-console-template).
+ Koneksi AWS akun yang menyertakan peran IAM yang perlu diakses oleh tindakan alur kerja Anda. AWS Untuk informasi tentang membuat koneksi akun, lihat[Memungkinkan akses ke AWS sumber daya yang terhubung Akun AWS](ipa-connect-account.md). Anda dapat menggunakan maksimal satu koneksi akun per lingkungan.
**catatan**  
Anda dapat membuat lingkungan tanpa koneksi akun; Namun, Anda harus kembali dan menambahkan koneksi nanti.
+ Salah satu CodeCatalyst peran berikut:
  + **Administrator ruang**
  + **Administrator proyek**
  + **Kontributor**
**catatan**  
Jika Anda memiliki **peran Kontributor**, Anda akan dapat membuat lingkungan tetapi Anda tidak akan dapat mengaitkannya dengan Akun AWS koneksi. Anda harus meminta seseorang dengan **administrator Space** atau peran **administrator Proyek** untuk mengaitkan lingkungan dengan Akun AWS koneksi.

   Untuk informasi selengkapnya tentang izin dan peran, lihat[Memberikan izin proyek kepada pengguna](projects-members.md).

**Untuk membuat lingkungan**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD**, lalu pilih Lingkungan.**

1. Dalam **nama Lingkungan**, masukkan nama, seperti **Production** atau**Staging**.

1. Dalam **jenis Lingkungan**, pilih salah satu dari berikut ini:
   + **Non-produksi** — Lingkungan di mana Anda dapat menguji aplikasi Anda untuk memastikannya berfungsi sebagaimana dimaksud sebelum memindahkannya ke produksi.
   + **Produksi** - Lingkungan 'langsung' yang tersedia untuk umum dan menjadi tuan rumah aplikasi akhir Anda.

     Jika Anda memilih **Produksi**, lencana **Produksi** akan muncul di UI di samping tindakan apa pun yang terkait dengan lingkungan. Lencana membantu Anda melihat dengan cepat tindakan mana yang di-deploy ke produksi. Selain penampilan lencana, tidak ada perbedaan antara lingkungan produksi dan non-produksi.

1. (Opsional) Dalam **Deskripsi**, masukkan deskripsi seperti**Production environment for the hello-world app**.

1. **Akun AWS Sehubungan - opsional**, pilih koneksi AWS akun yang ingin Anda kaitkan dengan lingkungan ini. Tindakan alur kerja yang ditetapkan lingkungan ini akan dapat terhubung ke yang terkait Akun AWS. Untuk informasi selengkapnya tentang membuat Akun AWS koneksi di CodeCatalyst, lihat[Memungkinkan akses ke AWS sumber daya yang terhubung Akun AWS](ipa-connect-account.md).

   Jika Akun AWS koneksi yang ingin Anda gunakan tidak terdaftar, itu mungkin karena tidak diizinkan dalam proyek Anda. *Untuk informasi selengkapnya, lihat [Mengonfigurasi koneksi akun yang dibatasi proyek di Panduan Administrator](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) Amazon. CodeCatalyst *

1. Dalam **peran IAM Default**, pilih peran IAM yang ingin Anda kaitkan dengan lingkungan ini. Tindakan alur kerja yang ditetapkan lingkungan ini akan mewarisi peran IAM ini, dan akan dapat menggunakannya untuk terhubung ke layanan dan sumber daya di Anda. Akun AWS

   Jika Anda perlu menetapkan lingkungan ke beberapa tindakan, dan tindakan tersebut memerlukan peran IAM yang berbeda dari peran default yang ditentukan di sini, maka Anda dapat menentukan peran yang berbeda pada tab **Konfigurasi** setiap tindakan, menggunakan opsi **Beralih peran**. Untuk informasi selengkapnya, lihat [Mengubah peran IAM dari suatu tindakan](deploy-environments-switch-role.md).

   Jika peran IAM yang ingin Anda gunakan sebagai default tidak terdaftar, mungkin karena Anda belum menambahkannya ke Akun AWS koneksi Anda. Untuk menambahkan peran IAM ke koneksi akun, lihat[Menambahkan peran IAM ke koneksi akun](ipa-connect-account-addroles.md).

1. (Opsional) Dalam koneksi **VPC, pilih koneksi** VPC yang ingin Anda kaitkan dengan lingkungan ini. Untuk informasi selengkapnya tentang membuat koneksi VPC, lihat Mengelola [Awan Pribadi Virtual Amazon](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.html) di Panduan * CodeCatalyst Administrator Amazon*.

   Jika koneksi VPC yang ingin Anda gunakan tidak terdaftar, mungkin karena koneksi VPC menyertakan Akun AWS koneksi yang tidak diizinkan dalam proyek Anda. *Untuk informasi selengkapnya, lihat [Mengonfigurasi koneksi akun yang dibatasi proyek di Panduan Administrator](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) Amazon. CodeCatalyst *

1. Pilih **Buat lingkungan**. CodeCatalyst menciptakan lingkungan yang kosong.

**Langkah selanjutnya**
+ Sekarang Anda telah menciptakan lingkungan, Anda siap untuk mengaitkannya dengan tindakan alur kerja. Lihat informasi yang lebih lengkap di [Mengaitkan lingkungan dengan tindakan](deploy-environments-add-app-to-environment.md).

# Mengaitkan lingkungan dengan tindakan
<a name="deploy-environments-add-app-to-environment"></a>

Saat Anda mengaitkan lingkungan dengan [tindakan alur kerja yang didukung](deploy-environments.md#deploy-environments-supported), peran IAM default lingkungan Akun AWS, dan VPC Amazon opsional akan ditetapkan ke tindakan tersebut. Tindakan kemudian dapat terhubung dan menyebarkan ke Akun AWS menggunakan peran IAM, dan juga terhubung ke Amazon VPC opsional.

Gunakan instruksi berikut untuk mengaitkan lingkungan dengan tindakan.

## Langkah 1: Kaitkan lingkungan dengan tindakan alur kerja
<a name="deploy-environments-add-app-to-environment-assoc"></a>

Gunakan prosedur berikut untuk mengaitkan lingkungan dengan tindakan alur kerja.

------
#### [ Visual ]

**Untuk mengaitkan lingkungan dengan tindakan alur kerja menggunakan editor visual**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Dalam diagram alur kerja, pilih tindakan yang didukung dengan lingkungan. Untuk informasi selengkapnya, lihat [Tindakan mana yang mendukung agar informasi penerapannya ditampilkan? CodeCatalyst](deploy-environments.md#deploy-environments-supported-targets).

1. Pilih tab **Konfigurasi**, dan tentukan informasi di bidang **Lingkungan**, sebagai berikut.

   **Lingkungan**

   Tentukan CodeCatalyst lingkungan yang akan digunakan dengan tindakan. Tindakan terhubung ke Akun AWS dan VPC Amazon opsional yang ditentukan di lingkungan yang dipilih. Tindakan ini menggunakan peran IAM default yang ditentukan di lingkungan untuk terhubung ke Akun AWS, dan menggunakan peran IAM yang ditentukan dalam [koneksi VPC Amazon untuk terhubung ke VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) Amazon.
**catatan**  
Jika peran IAM default tidak memiliki izin yang diperlukan oleh tindakan, Anda dapat mengonfigurasi tindakan untuk menggunakan peran yang berbeda. Untuk informasi selengkapnya, lihat [Mengubah peran IAM dari suatu tindakan](deploy-environments-switch-role.md).

   Untuk informasi lebih lanjut tentang lingkungan, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md) dan[Pembuatan lingkungan](deploy-environments-creating-environment.md).

1. (Opsional) Ubah peran IAM yang terkait dengan tindakan. Anda mungkin ingin mengubah peran jika berisi kumpulan izin yang salah untuk tindakan tersebut.

    Untuk mengubah peran:

   1. Dalam **Apa yang ada di*my-environment*?** kotak, dan pilih ikon elipsis vertikal ()![\[Ellipsis.\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/flows/elipsis.png).

   1. Pilih salah satu cara berikut:
      +  **Beralih peran**. Pilih opsi ini untuk mengubah peran IAM yang digunakan oleh tindakan ini, dan hanya tindakan ini. Tindakan lain terus menggunakan peran IAM default yang ditentukan dalam lingkungan terkait. Untuk informasi selengkapnya, lihat [Mengubah peran IAM dari suatu tindakan](deploy-environments-switch-role.md).
      +  **Edit lingkungan**. Pilih opsi ini untuk mengubah peran IAM default yang tercantum di lingkungan Anda. Bila Anda memilih opsi ini, tindakan Anda—dan tindakan lain yang terkait dengan lingkungan yang sama—mulai menggunakan peran IAM default yang baru.
**penting**  
Berhati-hatilah saat memperbarui peran IAM default. Mengubah peran dapat menyebabkan kegagalan tindakan jika izin dalam peran tidak cukup untuk semua tindakan yang berbagi lingkungan.

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

------
#### [ YAML ]

**Untuk mengaitkan lingkungan dengan tindakan alur kerja menggunakan editor YAMAL**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Dalam tindakan alur kerja yang ingin Anda kaitkan dengan lingkungan, tambahkan kode yang mirip dengan berikut ini:

   ```
   action-name:
     Environment:
       Name: environment-name
   ```

   Untuk informasi lebih lanjut, lihat [Jenis tindakan](workflows-actions.md#workflows-actions-types) topiknya. Topik ini memiliki tautan ke dalam dokumentasi untuk setiap tindakan, termasuk referensi YAML-nya.

1. (Opsional) Jika Anda ingin tindakan menggunakan peran yang berbeda dari peran IAM default yang tercantum di lingkungan, tambahkan `Connections:` bagian yang menyertakan peran yang ingin Anda gunakan. Untuk informasi selengkapnya, lihat [Mengubah peran IAM dari suatu tindakan](deploy-environments-switch-role.md).

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

------

## Langkah 2: Isi halaman aktivitas penerapan
<a name="deploy-environments-add-app-to-environment-run"></a>

Setelah mengaitkan lingkungan dengan tindakan alur kerja, Anda dapat mengisi halaman **target **aktivitas Deployment** dan Deployment** di bagian **Lingkungan** konsol dengan informasi penerapan. CodeCatalyst Gunakan petunjuk berikut untuk mengisi halaman ini.

**catatan**  
Hanya beberapa tindakan yang mendukung agar informasi penerapannya ditampilkan di CodeCatalyst konsol. Untuk informasi selengkapnya, lihat [Tindakan mana yang mendukung agar informasi penerapannya ditampilkan? CodeCatalyst](deploy-environments.md#deploy-environments-supported-targets).

**Untuk menambahkan informasi penyebaran ke CodeCatalyst**

1. Jika alur kerja tidak dimulai secara otomatis saat Anda melakukan perubahan[Langkah 1: Kaitkan lingkungan dengan tindakan alur kerja](#deploy-environments-add-app-to-environment-assoc), mulailah menjalankan secara manual sebagai berikut:

   1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

   1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

   1. Pilih **Jalankan**.

   Proses alur kerja memulai penerapan baru, yang CodeCatalyst menyebabkan penambahan informasi penerapan. CodeCatalyst

1. Verifikasi bahwa aktivitas penerapan telah ditambahkan ke CodeCatalyst konsol:

   1. **Di panel navigasi, pilih **CI/CD**, lalu pilih Lingkungan.**

   1. Pilih lingkungan Anda (misalnya,`Production`).

   1. **Pilih tab **aktivitas Deployment**, dan verifikasi bahwa penerapan muncul dengan **Status** SUCCEEDED.** Ini menunjukkan bahwa alur kerja berjalan berhasil menyebarkan sumber daya aplikasi Anda.

   1. Pilih tab **Target Deployment**, dan verifikasi apakah resource aplikasi Anda muncul.

# Mengaitkan VPC dengan lingkungan
<a name="deploy-environments-associate-vpc"></a>

Ketika suatu tindakan dikonfigurasi dengan lingkungan yang memiliki koneksi VPC, tindakan akan berjalan terhubung ke VPC, mengikuti aturan jaringan dan mengakses sumber daya yang ditentukan oleh VPC terkait. Koneksi VPC yang sama dapat digunakan oleh satu atau lebih lingkungan.

Gunakan petunjuk berikut untuk mengaitkan koneksi VPC dengan lingkungan.

**Untuk mengaitkan koneksi VPC dengan lingkungan**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD**, lalu pilih Lingkungan.**

1. Pilih lingkungan Anda (misalnya,`Production`).

1. Pilih tab **Properti Lingkungan**.

1. **Pilih **Kelola koneksi VPC, pilih koneksi** VPC yang Anda inginkan, dan pilih Konfirmasi.** Ini mengaitkan koneksi VPC pilihan Anda dengan lingkungan ini.
**catatan**  
Jika koneksi VPC yang ingin Anda gunakan tidak terdaftar, mungkin karena koneksi VPC menyertakan Akun AWS koneksi yang tidak diizinkan dalam proyek Anda. *Untuk informasi selengkapnya, lihat [Mengonfigurasi koneksi akun yang dibatasi proyek di Panduan Administrator](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) Amazon. CodeCatalyst*

Untuk informasi selengkapnya, lihat [Mengelola Awan Pribadi Virtual Amazon](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.html) di *Panduan CodeCatalyst Administrator*.

# Mengaitkan Akun AWS dengan lingkungan
<a name="deploy-environments-associate-account"></a>

Gunakan instruksi berikut untuk mengaitkan Akun AWS dengan lingkungan. Ketika Anda mengaitkan Akun AWS dengan lingkungan, tindakan alur kerja yang ditetapkan lingkungan akan dapat terhubung ke Akun AWS.

Untuk informasi selengkapnya tentang koneksi akun, lihat[Memungkinkan akses ke AWS sumber daya yang terhubung Akun AWS](ipa-connect-account.md).

**Sebelum Anda mulai**

Anda membutuhkan yang berikut ini:
+ Sambungan AWS akun yang menyertakan peran IAM yang perlu diakses oleh tindakan alur kerja Anda. AWS Untuk informasi tentang membuat koneksi akun, lihat[Memungkinkan akses ke AWS sumber daya yang terhubung Akun AWS](ipa-connect-account.md). Anda dapat menggunakan maksimal satu koneksi akun per lingkungan.
+ Salah satu CodeCatalyst peran berikut: **Administrator ruang** atau **administrator Proyek**. Untuk informasi selengkapnya, lihat [Memberikan izin proyek kepada pengguna](projects-members.md).

**Untuk mengasosiasikan Akun AWS dengan lingkungan**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD**, lalu pilih Lingkungan.**

1. Pilih lingkungan Anda (misalnya,`Production`).

1. Pilih **Edit lingkungan**.

1. Di bawah **properti Lingkungan**, dalam **Akun AWS koneksi - daftar drop-down opsional**, pilih yang Anda inginkan Akun AWS.

   Jika Akun AWS koneksi yang ingin Anda gunakan tidak terdaftar, itu mungkin karena tidak diizinkan dalam proyek Anda. *Untuk informasi selengkapnya, lihat [Mengonfigurasi koneksi akun yang dibatasi proyek di Panduan Administrator](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) Amazon. CodeCatalyst *

1. Dalam peran **IAM default, pilih peran** IAM yang ingin Anda kaitkan dengan lingkungan ini. Tindakan alur kerja yang ditetapkan lingkungan ini akan mewarisi peran IAM ini, dan akan dapat menggunakannya untuk terhubung ke layanan dan sumber daya di Anda. Akun AWS

   Jika peran IAM yang ingin Anda gunakan sebagai default tidak terdaftar, mungkin karena Anda belum menambahkannya ke Akun AWS koneksi Anda. Untuk menambahkan peran IAM ke koneksi akun, lihat[Menambahkan peran IAM ke koneksi akun](ipa-connect-account-addroles.md).

# Mengubah peran IAM dari suatu tindakan
<a name="deploy-environments-switch-role"></a>

Secara default, saat Anda mengaitkan [lingkungan](deploy-environments.md) dengan [tindakan alur kerja, tindakan](workflows-actions.md) tersebut mewarisi peran IAM default yang ditentukan dalam lingkungan. Anda dapat mengubah perilaku ini sehingga tindakan menggunakan peran yang berbeda. Anda mungkin ingin tindakan menggunakan peran yang berbeda jika peran IAM default tidak memiliki izin yang diperlukan tindakan untuk beroperasi di AWS cloud.

Untuk menetapkan peran IAM yang berbeda ke tindakan, Anda dapat menggunakan opsi **Beralih peran** di editor visual atau `Connections:` properti di editor YAMAL. Peran baru mengganti peran IAM default yang ditentukan di lingkungan, memungkinkan Anda mempertahankan peran IAM default apa adanya. Anda mungkin ingin mempertahankan peran IAM default apa adanya jika ada tindakan lain yang menggunakannya.

Gunakan petunjuk berikut untuk mengonfigurasi tindakan agar menggunakan peran IAM yang berbeda dari peran yang ditentukan di lingkungannya.

------
#### [ Visual ]

**Untuk menetapkan peran IAM yang berbeda ke tindakan (editor visual)**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih kotak yang mewakili tindakan yang peran IAM yang ingin Anda perbarui.

1. Pilih tab **Konfigurasi**.

1. Dalam **Apa yang ada di*my-environment*?** kotak, pilih ikon elipsis vertikal ()![\[Ellipsis.\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/flows/elipsis.png).

1. Pilih **Beralih peran**.

1. Di kotak dialog **Beralih peran**, dalam daftar drop-down **peran IAM**, pilih peran IAM yang ingin digunakan tindakan. Peran ini akan mengganti peran IAM default di lingkungan. Jika peran yang ingin Anda gunakan tidak ada dalam daftar, pastikan Anda telah menambahkannya ke ruang Anda. Untuk informasi selengkapnya, lihat [Menambahkan peran IAM ke koneksi akun](ipa-connect-account-addroles.md).

   Peran yang dipilih sekarang muncul di **What's in*my-environment*?** kotak bersama dengan lencana **Didefined in workflow**. Peran juga muncul di file definisi alur kerja, di `Connections:` bagian.

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

------
#### [ YAML ]

**Untuk menetapkan peran IAM yang berbeda ke tindakan (editor YAMAL)**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Dalam tindakan alur kerja di mana Anda ingin menggunakan peran IAM yang berbeda, tambahkan `Connections:` bagian, mirip dengan berikut ini:

   ```
   action-name:
     Environment:
       Name: environment-name
       Connections: 
         - Name: account-connection-name
           Role: iam-role-name
   ```

   Pada kode sebelumnya, ganti *account-connection-name* dengan nama [koneksi akun](ipa-connect-account.md) yang berisi peran IAM, dan ganti *iam-role-name* dengan nama peran IAM yang ingin Anda gunakan. Peran ini akan mengganti peran IAM default di lingkungan. Pastikan Anda telah menambahkan peran ke ruang Anda. Untuk informasi selengkapnya, lihat [Menambahkan peran IAM ke koneksi akun](ipa-connect-account-addroles.md).

   Untuk informasi lebih lanjut, lihat [Jenis tindakan](workflows-actions.md#workflows-actions-types) topiknya. Topik ini memiliki tautan ke dalam dokumentasi untuk setiap tindakan, termasuk referensi YAML-nya.

------

# Menampilkan URL aplikasi dalam diagram alur kerja
<a name="deploy-app-url"></a>

Jika alur kerja Anda menyebarkan aplikasi, Anda dapat mengonfigurasi Amazon CodeCatalyst untuk menampilkan URL aplikasi sebagai tautan yang dapat diklik. Tautan ini muncul di CodeCatalyst konsol, di dalam tindakan yang menerapkannya. Diagram alur kerja berikut menunjukkan URL **Lihat Aplikasi** yang muncul di bagian bawah tindakan.

![\[Lihat URL aplikasi\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/deploy/view-app-url.png)


Dengan membuat URL ini dapat diklik di CodeCatalyst konsol, Anda dapat dengan cepat memverifikasi penerapan aplikasi Anda.

**catatan**  
URL aplikasi tidak didukung dengan tindakan **Deploy to Amazon ECS.**

Untuk mengaktifkan fitur ini, tambahkan variabel output ke tindakan Anda dengan nama yang berisi`appurl`, atau`endpointurl`. Anda dapat menggunakan nama dengan atau tanpa tanda hubung yang bergabung (`-`), garis bawah (`_`), atau spasi (` `). String tidak peka huruf besar/kecil. Tetapkan nilai variabel ke `http` atau `https` URL aplikasi yang Anda gunakan.

**catatan**  
Jika Anda memperbarui variabel keluaran yang ada untuk menyertakan`app url`, atau `endpoint url` string, perbarui semua referensi ke variabel ini untuk menggunakan nama variabel baru.

Untuk langkah-langkah rinci, lihat salah satu prosedur berikut:
+ [Untuk menampilkan URL aplikasi dalam tindakan "AWS CDK deploy”](#deploy-app-url-cdk)
+ [Untuk menampilkan URL aplikasi dalam tindakan “Deploy CloudFormation stack”](#deploy-app-url-cfn)
+ [Untuk menampilkan URL aplikasi di semua tindakan lainnya](#deploy-app-url-other)

Setelah selesai mengonfigurasi URL, verifikasi bahwa URL tersebut muncul seperti yang diharapkan dengan mengikuti petunjuk berikut:
+ [Untuk memverifikasi bahwa URL aplikasi telah ditambahkan](#deploy-app-url-verify)<a name="deploy-app-url-cdk"></a>

**Untuk menampilkan URL aplikasi dalam tindakan "AWS CDK deploy”**

1. Jika Anda menggunakan tindakan **AWS CDK penerapan**, tambahkan `CfnOutput` konstruksi (yang merupakan pasangan nilai kunci) dalam kode aplikasi Anda: AWS CDK 
   + Nama kunci harus berisi`appurl`, atau`endpointurl`, dengan atau tanpa tanda hubung yang bergabung (`-`), garis bawah (`_`), atau spasi (` `). String tidak peka huruf besar/kecil.
   + Nilai harus berupa `http` atau `https` URL aplikasi yang Anda gunakan.

   Misalnya, AWS CDK kode Anda mungkin terlihat seperti ini:

   ```
   import { Duration, Stack, StackProps, CfnOutput, RemovalPolicy} from 'aws-cdk-lib';
   import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
   import * as s3 from 'aws-cdk-lib/aws-s3';
   import { Construct } from 'constructs';
   import * as cdk from 'aws-cdk-lib';
   export class HelloCdkStack extends Stack {
     constructor(scope: Construct, id: string, props?: StackProps) {
       super(scope, id, props);
       const bucket = new s3.Bucket(this, 'amzn-s3-demo-bucket', {
         removalPolicy: RemovalPolicy.DESTROY,
       });
       new CfnOutput(this, 'APP-URL', {
         value: https://mycompany.myapp.com,
         description: 'The URL of the deployed application',
         exportName: 'myApp',
       });
       ...
     }
   }
   ```

   Untuk informasi selengkapnya tentang `CfnOutput` konstruksi, lihat [antarmuka CfnOutputProps](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnOutputProps.html) di *Referensi AWS Cloud Development Kit (AWS CDK) API*.

1. Simpan dan komit kode Anda.

1. Lanjut ke [Untuk memverifikasi bahwa URL aplikasi telah ditambahkan](#deploy-app-url-verify).<a name="deploy-app-url-cfn"></a>

**Untuk menampilkan URL aplikasi dalam tindakan “Deploy CloudFormation stack”**

1. Jika Anda menggunakan aksi ** CloudFormation tumpukan Deploy**, tambahkan output ke `Outputs` bagian di CloudFormation template atau AWS SAM template Anda dengan karakteristik berikut:
   + Kunci (juga disebut ID logis) harus berisi`appurl`, atau`endpointurl`, dengan atau tanpa tanda hubung yang bergabung (`-`), garis bawah (`_`), atau spasi (` `). String tidak peka huruf besar/kecil.
   + Nilai harus berupa `http` atau `https` URL aplikasi yang Anda gunakan.

   Misalnya, CloudFormation template Anda mungkin terlihat seperti ini:

   ```
   "Outputs" : {
     "APP-URL" : {
       "Description" : "The URL of the deployed app",
       "Value" : "https://mycompany.myapp.com",
       "Export" : {
         "Name" : "My App"
       }
     }
   }
   ```

   Untuk informasi selengkapnya tentang CloudFormation output, lihat [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html) di *AWS CloudFormation Panduan Pengguna*.

1. Simpan dan komit kode Anda.

1. Lanjut ke [Untuk memverifikasi bahwa URL aplikasi telah ditambahkan](#deploy-app-url-verify).<a name="deploy-app-url-other"></a>

**Untuk menampilkan URL aplikasi di semua tindakan lainnya**

Jika Anda menggunakan tindakan lain untuk menerapkan aplikasi Anda, seperti tindakan build atau **GitHub Tindakan**, lakukan hal berikut agar URL aplikasi ditampilkan.

1. Tentukan variabel lingkungan di `Steps` bagian `Inputs` atau tindakan dalam file definisi alur kerja. Variabel harus memiliki karakteristik ini:
   + `name`Harus berisi`appurl`, atau`endpointurl`, dengan atau tanpa tanda hubung (`-`), garis bawah (`_`), atau spasi (` `). String tidak peka huruf besar/kecil.
   + Nilai harus berupa `http` atau `https` URL aplikasi yang Anda gunakan.

   Misalnya, tindakan build mungkin terlihat seperti ini:

   ```
   Build-action:
     Identifier: aws/build@v1
     Inputs:
       Variables:
         - Name: APP-URL
           Value: https://mycompany.myapp.com
   ```

   ... atau ini:

   ```
   Actions:
     Build:
       Identifier: aws/build@v1
       Configuration:    
         Steps:
           - Run: APP-URL=https://mycompany.myapp.com
   ```

   Untuk informasi selengkapnya tentang mendefinisikan variabel lingkungan, lihat[Mendefinisikan variabel](workflows-working-with-variables-define-input.md).

1. Ekspor variabel.

   Misalnya, tindakan build Anda mungkin terlihat seperti ini:

   ```
   Build-action:
     ...
     Outputs:
       Variables:
         - APP-URL
   ```

   Untuk informasi tentang mengekspor variabel, lihat[Mengekspor variabel sehingga tindakan lain dapat menggunakannya](workflows-working-with-variables-export-input.md).

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

1. Lanjut ke [Untuk memverifikasi bahwa URL aplikasi telah ditambahkan](#deploy-app-url-verify).<a name="deploy-app-url-verify"></a>

**Untuk memverifikasi bahwa URL aplikasi telah ditambahkan**
+ Mulai menjalankan alur kerja, jika belum dimulai secara otomatis. Proses baru harus menampilkan URL aplikasi sebagai tautan yang dapat diklik dalam diagram alur kerjanya. Untuk informasi selengkapnya tentang memulai proses, lihat[Memulai proses alur kerja secara manual](workflows-manually-start.md). 

# Menghapus target penerapan
<a name="deploy-remove-target"></a>

Anda dapat menghapus target penerapan seperti klaster Amazon ECS atau CloudFormation tumpukan dari halaman **target Deployment** di konsol. CodeCatalyst 

**penting**  
Saat Anda menghapus target penerapan, target tersebut dihapus dari CodeCatalyst konsol, tetapi tetap tersedia di AWS layanan yang menghostingnya (jika masih ada).

Pertimbangkan untuk menghapus target penerapan jika target menjadi basi. CodeCatalyst Target mungkin menjadi basi jika:
+ Anda menghapus alur kerja yang diterapkan ke target.
+ Anda mengubah tumpukan atau cluster yang Anda gunakan. 
+ Anda menghapus tumpukan atau cluster dari CloudFormation atau layanan Amazon ECS di AWS konsol.

**Untuk menghapus target penerapan**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD**, lalu pilih Lingkungan.**

1. Pilih nama lingkungan yang berisi target penyebaran yang ingin Anda hapus. Untuk informasi tentang lingkungan, lihat[Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md).

1. Pilih tab **Target Deployment**.

1. Pilih tombol radio di sebelah target penyebaran yang ingin Anda hapus.

1. Pilih **Hapus**.

   Target dihapus dari halaman.

# Melacak status penerapan dengan komit
<a name="track-changes"></a>

Kapan saja dalam siklus hidup pengembangan, penting untuk mengetahui status penerapan komit tertentu, seperti perbaikan bug, fitur baru, atau perubahan berdampak lainnya. Pertimbangkan skenario berikut di mana kemampuan pelacakan status penerapan sangat membantu tim pengembangan:
+ Sebagai pengembang, Anda telah membuat perbaikan untuk mengatasi bug dan Anda ingin melaporkan status penerapannya di seluruh lingkungan penerapan tim Anda.
+ Sebagai pengelola rilis, Anda ingin melihat daftar komit yang diterapkan untuk melacak dan melaporkan status penerapannya.

CodeCatalyst menyediakan tampilan yang dapat Anda gunakan untuk menentukan sekilas di mana setiap komit atau perubahan telah diterapkan, dan ke lingkungan mana. Tampilan ini meliputi: 
+ Daftar komit.
+ Status penerapan yang mencakup komit.
+ Lingkungan di mana komit berhasil digunakan.
+ Status pengujian apa pun dijalankan terhadap komit dalam CI/CD alur kerja Anda.

Prosedur berikut merinci cara menavigasi ke dan menggunakan tampilan ini untuk melacak perubahan dalam proyek Anda.

**catatan**  
Melacak status penerapan dengan komit hanya didukung dengan [CodeCatalyst repositori](source.md). Anda tidak dapat menggunakan fitur ini dengan repositori, [GitHub repositori Bitbucket, atau repositori proyek](extensions.md). GitLab 

**Untuk melacak status penerapan dengan komit**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD**, lalu pilih Ubah pelacakan.**

1. Dalam dua daftar tarik-turun di bagian atas panel utama, pilih repositori sumber dan cabang yang berisi komit yang status rilisnya ingin Anda lihat.

1. Pilih **Lihat perubahan**.

   Daftar komit muncul.

   Untuk setiap komit, Anda dapat melihat yang berikut:
   + Komit informasi seperti ID, penulis, pesan, dan kapan itu dilakukan. Untuk informasi selengkapnya, lihat [Simpan dan berkolaborasi pada kode dengan repositori sumber di CodeCatalystSimpan dan berkolaborasi pada kode dengan repositori sumber](source.md).
   + Status penerapan ke setiap lingkungan. Untuk informasi selengkapnya, lihat [Menyebarkan ke dalam Akun AWS dan VPCs](deploy-environments.md).
   + Hasil uji dan cakupan kode. Untuk informasi selengkapnya, lihat [Pengujian dengan alur kerjaPengujian dengan alur kerja](test-workflow-actions.md).
**catatan**  
Hasil Analisis Komposisi Perangkat Lunak (SCA) tidak ditampilkan.

1. (Opsional) Untuk melihat informasi selengkapnya tentang perubahan yang terkait dengan komit tertentu, termasuk penerapan terbaru dan cakupan kode terperinci serta informasi pengujian unit, pilih **Lihat detail** untuk komit tersebut.

# Melihat log penerapan
<a name="deploy-deployment-logs"></a>

Anda dapat melihat log yang terkait dengan tindakan penerapan tertentu untuk memecahkan masalah di Amazon. CodeCatalyst

Anda dapat melihat log mulai dari [alur kerja](workflow.md), atau [lingkungan](deploy-environments.md).

**Untuk melihat log tindakan penerapan yang dimulai dari alur kerja**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Pilih **Runs**.

1. Pilih alur kerja yang menjalankan aplikasi Anda.

1. Dalam diagram alur kerja, pilih tindakan yang lognya ingin Anda lihat.

1. Pilih tab **Log** dan perluas bagian untuk mengungkapkan pesan log.

1. Untuk melihat lebih banyak log, pilih tab **Ringkasan**, lalu pilih **Lihat di CloudFormation** (jika tersedia) untuk melihat lebih banyak log di sana. Anda mungkin perlu masuk ke AWS.

**Untuk melihat log tindakan penerapan yang dimulai dari lingkungan**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD**, lalu pilih Lingkungan.**

1. Pilih lingkungan tempat aplikasi Anda digunakan.

1. Dalam **aktivitas Deployment**, temukan kolom **Workflow Run ID**, dan pilih alur kerja yang menerapkan tumpukan Anda.

1. Dalam diagram alur kerja, pilih tindakan yang lognya ingin Anda lihat.

1. Pilih tab **Log** dan perluas bagian untuk mengungkapkan pesan log.

1. Untuk melihat lebih banyak log, pilih tab **Ringkasan**, lalu pilih **Lihat di CloudFormation** (jika tersedia) untuk melihat lebih banyak log di sana. Anda mungkin perlu masuk ke AWS.

# Melihat informasi penyebaran
<a name="deploy-view-deployment-info"></a>

Anda dapat melihat informasi berikut tentang penerapan di Amazon CodeCatalyst:
+ Aktivitas penerapan, termasuk status penerapan, waktu mulai, waktu akhir, riwayat, dan durasi acara.
+ Nama tumpukan, Wilayah AWS, waktu pembaruan terakhir, dan alur kerja terkait.
+ Komit dan tarik permintaan.
+ Informasi khusus tindakan, misalnya, CloudFormation peristiwa dan output.

[Anda dapat melihat informasi penerapan mulai dari [alur kerja](workflow.md), [lingkungan](deploy-environments.md), atau tindakan alur kerja.](workflows-concepts.md#workflows-concepts-actions)

**Untuk melihat informasi penerapan mulai dari alur kerja**
+ Buka alur kerja yang menerapkan aplikasi Anda. Untuk petunjuk, lihat [Melihat status dan detail alur kerja](workflows-view-run.md). 

**Untuk melihat informasi penyebaran mulai dari lingkungan**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD**, lalu pilih Lingkungan.**

1. Pilih lingkungan tempat tumpukan Anda digunakan, misalnya,`Production`.

1. Pilih **aktivitas Deployment** untuk melihat riwayat penerapan tumpukan Anda, status penerapan (misalnya, **BERHASIL** atau **GAGAL**), dan informasi terkait penerapan lainnya.

1. Pilih **target Deployment** untuk melihat informasi tentang tumpukan, cluster, atau target lain yang diterapkan ke lingkungan. Anda dapat melihat informasi seperti nama tumpukan, Wilayah, penyedia, dan pengenal.

**Untuk melihat informasi penyebaran mulai dari tindakan**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

1. Dalam diagram alur kerja, pilih tindakan alur kerja yang menerapkan aplikasi Anda. Misalnya, Anda mungkin memilih **DeployCloudFormationStack**.

1. Tinjau konten di panel kanan untuk informasi penyebaran khusus tindakan. 