

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.

# Bangun, uji, dan terapkan dengan alur kerja
<a name="workflow"></a>

Setelah menulis kode aplikasi Anda di [Lingkungan CodeCatalyst Dev](devenvironment.md) dan mendorongnya ke [repositori CodeCatalyst sumber](source.md) Anda, Anda siap untuk menerapkannya. Cara untuk melakukan ini secara otomatis adalah melalui alur kerja.

*Alur kerja* adalah prosedur otomatis yang menjelaskan cara membangun, menguji, dan menyebarkan kode Anda sebagai bagian dari sistem integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD). Alur kerja mendefinisikan serangkaian langkah, atau *tindakan*, yang harus diambil selama menjalankan alur kerja. Alur kerja juga mendefinisikan peristiwa, atau *pemicu*, yang menyebabkan alur kerja dimulai. Untuk menyiapkan alur kerja, Anda membuat *file definisi alur kerja menggunakan editor* [visual atau YAMAL CodeCatalyst ](https://docs.aws.amazon.com//codecatalyst/latest/userguide/flows.html#workflow.editors) konsol.

**Tip**  
Untuk melihat sekilas bagaimana Anda dapat menggunakan alur kerja dalam sebuah proyek, [buat proyek dengan cetak biru](https://docs.aws.amazon.com//codecatalyst/latest/userguide/projects-create.html#projects-create-console-template). Setiap cetak biru menerapkan alur kerja yang berfungsi yang dapat Anda tinjau, jalankan, dan bereksperimen.

## Tentang file definisi alur kerja
<a name="workflow.example"></a>

*File definisi alur kerja adalah file* YAMAL yang menjelaskan alur kerja Anda. Secara default, file disimpan dalam `~/.codecatalyst/workflows/` folder di root [repositori sumber](source-repositories.md) Anda. File dapat memiliki ekstensi.yml.yaml, dan ekstensi harus huruf kecil.

Berikut ini adalah contoh file definisi alur kerja sederhana. Kami menjelaskan setiap baris contoh ini dalam tabel berikut.

```
Name: MyWorkflow
SchemaVersion: 1.0
RunMode: QUEUED
Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:     
      Steps:
        - Run: docker build -t MyApp:latest .
```


| Baris | Deskripsi | 
| --- | --- | 
|  <pre>Name: MyWorkflow</pre>  |  Menentukan nama alur kerja. Untuk informasi lebih lanjut tentang `Name` properti, lihat[Properti tingkat atas](workflow-reference.md#workflow.top.level).  | 
|  <pre>SchemaVersion: 1.0</pre>  |  Menentukan versi skema alur kerja. Untuk informasi lebih lanjut tentang `SchemaVersion` properti, lihat[Properti tingkat atas](workflow-reference.md#workflow.top.level).  | 
|  <pre>RunMode: QUEUED</pre>  |  Menunjukkan bagaimana CodeCatalyst menangani beberapa proses. Untuk informasi selengkapnya tentang mode lari, lihat[Mengonfigurasi perilaku antrian run](workflows-configure-runs.md).  | 
|  <pre>Triggers:</pre>  |  Menentukan logika yang akan menyebabkan alur kerja berjalan untuk memulai. Untuk informasi lebih lanjut tentang menggunakan pemicu, lihat [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md).   | 
|  <pre>- Type: PUSH<br />  Branches:<br />    - main</pre>  |  Menunjukkan bahwa alur kerja harus dimulai setiap kali Anda mendorong kode ke `main` cabang repositori sumber default. Untuk informasi selengkapnya tentang sumber alur kerja, lihat[Menghubungkan repositori sumber ke alur kerja](workflows-sources.md).  | 
|  <pre>Actions:</pre>  |  Mendefinisikan tugas yang akan dilakukan selama menjalankan alur kerja. Dalam contoh ini, `Actions` bagian mendefinisikan satu tindakan yang disebut`Build`. Untuk informasi selengkapnya tentang tindakan, lihat[Mengkonfigurasi tindakan alur kerja](workflows-actions.md).  | 
|  <pre>Build:</pre>  |  Mendefinisikan properti untuk `Build` tindakan. Untuk informasi selengkapnya tentang tindakan build, lihat[Membangun dengan alur kerja](build-workflow-actions.md).  | 
|  <pre>Identifier: aws/build@v1</pre>  |  Menentukan identifier hard-coded yang unik untuk tindakan build.  | 
|  <pre>Inputs:<br />  Sources:<br />    - WorkflowSource</pre>  |  Menunjukkan bahwa tindakan build harus terlihat di repositori `WorkflowSource` sumber untuk menemukan file yang dibutuhkan untuk menyelesaikan pemrosesannya. Untuk informasi selengkapnya, lihat [Menghubungkan repositori sumber ke alur kerja](workflows-sources.md).  | 
|  <pre>Configuration:</pre>  |  Berisi properti konfigurasi yang khusus untuk tindakan build.  | 
|  <pre>Steps:<br />  - Run: docker build -t MyApp:latest .</pre>  |  Memberitahu tindakan build untuk membangun image Docker yang disebut `MyApp` dan menandainya`latest`.  | 

Untuk daftar lengkap semua properti yang tersedia dalam file definisi alur kerja, lihat. [Alur kerja definisi YAMAL](workflow-reference.md)

## Menggunakan editor visual dan YAMAL CodeCatalyst konsol
<a name="workflow.editors"></a>

Untuk membuat dan mengedit file definisi alur kerja, Anda dapat menggunakan editor pilihan Anda, tetapi sebaiknya gunakan editor visual CodeCatalyst konsol atau editor YAMAL. Editor ini menawarkan validasi file yang bermanfaat untuk membantu memastikan nama properti YAMAL, nilai, penyarangan, spasi, kapitalisasi, dan sebagainya, benar.

Gambar berikut menunjukkan alur kerja di editor visual. Editor visual menawarkan antarmuka pengguna lengkap untuk membuat dan mengkonfigurasi file definisi alur kerja Anda. Editor visual menyertakan diagram alur kerja (1) yang menunjukkan komponen utama alur kerja, dan area konfigurasi (2).

![\[Editor visual alur kerja\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/flows/workflow-visual-editor.png)


Atau, Anda dapat menggunakan editor YAMAL, yang ditunjukkan pada gambar berikutnya. Gunakan editor YAMAL untuk menempelkan blok kode besar (dari tutorial, misalnya), atau untuk menambahkan properti lanjutan yang tidak ditawarkan melalui editor visual.

![\[Alur kerja editor YAMAL\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/flows/workflow-yaml-editor.png)


Anda dapat beralih dari editor visual ke editor YAMAL untuk melihat efek konfigurasi Anda pada kode YAMAL yang mendasarinya.

## Menemukan alur kerja
<a name="workflow.discovering"></a>

Anda dapat melihat alur kerja Anda di halaman ringkasan **Alur kerja**, bersama dengan alur kerja lain yang telah Anda atur dalam proyek yang sama.

Gambar berikut menunjukkan halaman ringkasan **Alur kerja**. Itu diisi dengan dua alur kerja: **BuildToProd**dan. **UnitTests** Anda dapat melihat bahwa keduanya telah dijalankan beberapa kali. Anda dapat memilih **Runs terbaru** untuk melihat riwayat run dengan cepat, atau memilih nama alur kerja untuk melihat kode YAMAL alur kerja dan informasi terperinci lainnya.

![\[Log alur kerja\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/flows/workflow-list.png)


## Melihat detail alur kerja
<a name="workflow.runs"></a>

Anda dapat melihat detail alur kerja yang dijalankan dengan memilih run di halaman ringkasan **Alur kerja**.

Gambar berikut menunjukkan rincian alur kerja yang disebut **Run-CC11d** yang dimulai secara otomatis pada komit ke sumber. Diagram alur kerja menunjukkan bahwa suatu tindakan telah gagal (1). Anda dapat menavigasi ke log (2) untuk melihat pesan log terperinci dan memecahkan masalah. Untuk informasi selengkapnya tentang alur kerja berjalan, lihat[Menjalankan alur kerja](workflows-working-runs.md).

![\[Log alur kerja\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/flows/workflow-visual-logs.png)


## Langkah selanjutnya
<a name="workflow.next"></a>

Untuk mempelajari lebih lanjut tentang konsep alur kerja, lihat[Konsep alur kerja](workflows-concepts.md).

Untuk membuat alur kerja pertama Anda, lihat[Memulai dengan alur kerja](workflows-getting-started.md).

# Konsep alur kerja
<a name="workflows-concepts"></a>

Berikut adalah beberapa konsep dan istilah yang perlu diketahui saat membangun, menguji, atau menerapkan kode Anda dengan alur kerja. CodeCatalyst

## Alur kerja
<a name="workflows-concepts-workflows"></a>

*Alur kerja* adalah prosedur otomatis yang menjelaskan cara membangun, menguji, dan menyebarkan kode Anda sebagai bagian dari sistem integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD). Alur kerja mendefinisikan serangkaian langkah, atau *tindakan*, yang harus diambil selama menjalankan alur kerja. Alur kerja juga mendefinisikan peristiwa, atau *pemicu*, yang menyebabkan alur kerja dimulai. Untuk menyiapkan alur kerja, Anda membuat *file definisi alur kerja menggunakan editor* [visual atau YAMAL CodeCatalyst ](https://docs.aws.amazon.com//codecatalyst/latest/userguide/flows.html#workflow.editors) konsol.

**Tip**  
Untuk melihat sekilas bagaimana Anda dapat menggunakan alur kerja dalam sebuah proyek, [buat proyek dengan cetak biru](https://docs.aws.amazon.com//codecatalyst/latest/userguide/projects-create.html#projects-create-console-template). Setiap cetak biru menerapkan alur kerja yang berfungsi yang dapat Anda tinjau, jalankan, dan bereksperimen.

## File definisi alur kerja
<a name="workflows-concepts-workflows-def"></a>

*File definisi alur kerja adalah file* YAMAL yang menjelaskan alur kerja Anda. Secara default, file disimpan dalam `~/.codecatalyst/workflows/` folder di root [repositori sumber](source-repositories.md) Anda. File dapat memiliki ekstensi.yml.yaml, dan ekstensi harus huruf kecil.

Untuk informasi selengkapnya tentang file definisi alur kerja, lihat[Alur kerja definisi YAMAL](workflow-reference.md).

## Tindakan
<a name="workflows-concepts-actions"></a>

*Tindakan* adalah blok bangunan utama alur kerja, dan mendefinisikan unit logis kerja, atau tugas, untuk dilakukan selama alur kerja dijalankan. Biasanya, alur kerja mencakup beberapa tindakan yang berjalan secara berurutan atau paralel tergantung pada cara Anda mengonfigurasinya.

Untuk informasi selengkapnya tentang tindakan, lihat[Mengkonfigurasi tindakan alur kerja](workflows-actions.md).

## Kelompok aksi
<a name="workflows-concepts-action-groups"></a>

*Grup aksi* berisi satu atau lebih tindakan. Mengelompokkan tindakan ke dalam grup tindakan membantu Anda menjaga alur kerja tetap teratur, dan juga memungkinkan Anda mengonfigurasi dependensi di antara grup yang berbeda.

Untuk informasi selengkapnya tentang grup aksi, lihat[Mengelompokkan tindakan ke dalam kelompok aksi](workflows-group-actions.md).

## Artifacts
<a name="workflows-concepts-artifacts"></a>

*Artefak* adalah output dari tindakan alur kerja, dan biasanya terdiri dari folder atau arsip file. Artefak penting karena memungkinkan Anda berbagi file dan informasi antar tindakan.

Untuk informasi lebih lanjut tentang artifact, lihat [Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).

## Hitung
<a name="workflows-concepts-compute"></a>

*Compute* mengacu pada mesin komputasi (CPU, memori, dan sistem operasi) yang dikelola dan dikelola oleh CodeCatalyst untuk menjalankan tindakan alur kerja.

Untuk informasi selengkapnya tentang komputasi, lihat[Mengkonfigurasi gambar komputasi dan runtime](workflows-working-compute.md).

## Lingkungan
<a name="workflows-concepts-environments"></a>

 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.

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

## Gerbang
<a name="workflows-concepts-gates"></a>

*Gate* adalah komponen alur kerja yang dapat Anda gunakan untuk mencegah alur kerja berjalan kecuali kondisi tertentu terpenuhi. Contoh gerbang adalah gerbang **Persetujuan** tempat pengguna harus mengirimkan persetujuan di CodeCatalyst konsol sebelum proses alur kerja diizinkan untuk dilanjutkan.

Anda dapat menambahkan gerbang di antara urutan tindakan dalam alur kerja, atau sebelum tindakan pertama (yang berjalan segera setelah **Sumber** diunduh). Anda juga dapat menambahkan gerbang setelah tindakan terakhir, jika Anda memiliki kebutuhan untuk melakukannya.

Untuk informasi lebih lanjut tentang gerbang, lihat[Gating alur kerja berjalan](workflows-gates.md).

## Laporan
<a name="workflows-concepts-test-reports"></a>

*Laporan* berisi rincian tentang pengujian yang terjadi selama menjalankan alur kerja. Anda dapat membuat laporan seperti laporan pengujian, laporan cakupan kode, laporan analisis komposisi perangkat lunak, dan laporan analisis statis. Anda dapat menggunakan laporan untuk membantu memecahkan masalah selama alur kerja. Jika memiliki banyak laporan dari beberapa alur kerja, Anda dapat menggunakan laporan untuk melihat tren dan tingkat kegagalan untuk membantu mengoptimalkan aplikasi dan konfigurasi penerapan.

Untuk informasi selengkapnya tentang laporan, lihat[Jenis laporan kualitas](test-workflow-actions.md#test-reporting).

## Berjalan
<a name="workflows-concepts-runs"></a>

*Operasi* adalah satu iterasi dari sebuah alur kerja. Selama menjalankan, CodeCatalyst melakukan tindakan yang ditentukan dalam file konfigurasi alur kerja dan mengeluarkan log, artefak, dan variabel terkait.

Untuk informasi selengkapnya tentang lari, lihat[Menjalankan alur kerja](workflows-working-runs.md).

## Sumber
<a name="workflows-concepts-sources"></a>

*Sumber*, juga disebut *sumber input*, adalah repositori sumber yang menghubungkan [tindakan alur kerja](workflows-actions.md) untuk mendapatkan file yang dibutuhkan untuk menjalankan operasinya. Misalnya, tindakan alur kerja mungkin terhubung ke repositori sumber untuk mendapatkan file sumber aplikasi untuk membangun aplikasi.

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

## Variabel
<a name="workflows-concepts-variables"></a>

 *Variabel* adalah pasangan kunci-nilai yang berisi informasi yang dapat Anda referensikan dalam alur kerja Amazon CodeCatalyst Anda. Bagian nilai variabel diganti dengan nilai aktual ketika alur kerja berjalan.

Untuk informasi lebih lanjut tentang variabel, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

## Pemicu alur kerja
<a name="workflows-concepts-triggers"></a>

*Pemicu alur kerja*, atau hanya *pemicu*, memungkinkan Anda memulai alur kerja yang berjalan secara otomatis ketika peristiwa tertentu terjadi, seperti push kode. Anda mungkin ingin mengonfigurasi pemicu untuk membebaskan pengembang perangkat lunak Anda dari keharusan memulai alur kerja yang berjalan secara manual melalui konsol. CodeCatalyst 

Anda dapat menggunakan tiga jenis pemicu:
+ **Push** - Pemicu push kode menyebabkan alur kerja dijalankan setiap kali komit didorong.
+ **Permintaan tarik** - Pemicu permintaan tarik menyebabkan alur kerja dijalankan setiap kali permintaan tarik dibuat, direvisi, atau ditutup.
+ **Jadwal** - Pemicu jadwal menyebabkan alur kerja berjalan dimulai pada jadwal yang Anda tentukan. Pertimbangkan untuk menggunakan pemicu jadwal untuk menjalankan build malam perangkat lunak Anda sehingga build terbaru siap untuk pengembang perangkat lunak Anda untuk bekerja keesokan paginya.

Anda dapat menggunakan push, pull request, dan schedule trigger sendiri atau dalam kombinasi dalam alur kerja yang sama.

Pemicu bersifat opsional—jika Anda tidak mengonfigurasinya, Anda hanya dapat memulai alur kerja secara manual.

Untuk informasi lebih lanjut tentang menggunakan pemicu, lihat [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md).

# Memulai dengan alur kerja
<a name="workflows-getting-started"></a>

Dalam tutorial ini, Anda akan belajar cara membuat dan mengkonfigurasi alur kerja pertama Anda.

**Tip**  
Lebih suka memulai dengan alur kerja yang telah dikonfigurasi sebelumnya? Lihat[Membuat proyek dengan cetak biru](projects-create.md#projects-create-console-template), yang mencakup instruksi untuk menyiapkan proyek dengan alur kerja yang berfungsi, contoh aplikasi, dan sumber daya lainnya.

**Topics**
+ [Prasyarat](#get-started-create-workflow-prerequisites)
+ [Langkah 1: Buat dan konfigurasikan alur kerja Anda](#get-started-create-workflow-create)
+ [Langkah 2: Simpan alur kerja Anda dengan komit](#get-started-create-workflow-commit)
+ [Langkah 3: Lihat hasil run](#get-started-create-workflow-results)
+ [(Opsional) Langkah 4: Bersihkan](#get-started-create-workflow-cleanup)

## Prasyarat
<a name="get-started-create-workflow-prerequisites"></a>

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

  ```
  codecatalyst-project
  ```

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

  ```
  codecatalyst-source-repository
  ```

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

**catatan**  
Jika Anda memiliki proyek dan repositori sumber yang ada, Anda dapat menggunakannya; Namun, membuat yang baru membuat pembersihan lebih mudah di akhir tutorial ini.

## Langkah 1: Buat dan konfigurasikan alur kerja Anda
<a name="get-started-create-workflow-create"></a>

Pada langkah ini, Anda membuat dan mengonfigurasi alur kerja yang secara otomatis membangun dan menguji kode sumber Anda saat perubahan dilakukan.

**Untuk membuat alur kerja Anda**

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

1. Pilih **Buat alur kerja**.

   File definisi alur kerja muncul di editor YAMAL CodeCatalyst konsol.

**Untuk mengonfigurasi alur kerja Anda**

Anda dapat mengonfigurasi alur kerja Anda di editor **Visual**, atau editor **YAMAL.** Mari kita mulai dengan editor YAMAL dan kemudian beralih ke editor visual.

1. Pilih **\$1 Tindakan** untuk melihat daftar tindakan alur kerja yang dapat Anda tambahkan ke alur kerja Anda.

1. Dalam tindakan **Build**, pilih **\$1** untuk menambahkan YAMAL tindakan ke file definisi alur kerja Anda. Alur kerja Anda sekarang terlihat mirip dengan yang berikut ini.

   ```
   Name: Workflow_fe47
   SchemaVersion: "1.0"
   
   # Optional - Set automatic triggers.
   Triggers:
     - Type: Push
       Branches:
         - main
   
   # Required - Define action configurations.
   Actions:
     Build_f0:
       Identifier: aws/build@v1
   
       Inputs:
         Sources:
           - WorkflowSource # This specifies that the action requires this workflow as a source
   
       Outputs:
         AutoDiscoverReports:
           Enabled: true
           # Use as prefix for the report files
           ReportNamePrefix: rpt
   
       Configuration:
         Steps:
           - Run: echo "Hello, World!"
           - Run: echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" >> report.xml
           - Run: echo "<testsuite tests=\"1\" name=\"TestAgentJunit\" >" >> report.xml
           - Run: echo "<testcase classname=\"TestAgentJunit\" name=\"Dummy
               Test\"/></testsuite>" >> report.xml
   ```

   **Alur kerja menyalin file dalam repositori `WorkflowSource` sumber ke mesin komputasi yang menjalankan `Build_f0` tindakan, mencetak `Hello, World!` ke log, menemukan laporan pengujian di mesin komputasi, dan mengeluarkannya ke halaman Laporan konsol. CodeCatalyst **

1. Pilih **Visual** untuk melihat file definisi alur kerja di editor visual. Bidang di editor visual memungkinkan Anda mengonfigurasi properti YAMAL yang ditampilkan di editor YAMAL.

## Langkah 2: Simpan alur kerja Anda dengan komit
<a name="get-started-create-workflow-commit"></a>

Pada langkah ini, Anda menyimpan perubahan Anda. Karena alur kerja disimpan sebagai `.yaml` file di repositori, Anda menyimpan perubahan dengan komit.

**Untuk melakukan perubahan alur kerja Anda**

1. (Opsional) Pilih **Validasi** untuk memastikan kode YAMAL alur kerja valid.

1. Pilih **Terapkan**.

1. Dalam **nama file Workflow**, masukkan nama untuk file konfigurasi alur kerja Anda, seperti. **my-first-workflow**

1. Dalam **pesan Komit**, masukkan pesan untuk mengidentifikasi komit Anda, seperti**create my-first-workflow.yaml**.

1. Di **Repositori**, pilih repositori yang ingin Anda simpan alur kerja di (). `codecatalyst-repository`

1. Di **Nama cabang**, pilih cabang yang ingin Anda simpan alur kerja di (`main`).

1. Pilih **Terapkan**.

Alur kerja baru Anda muncul dalam daftar alur kerja. Mungkin perlu beberapa saat untuk muncul.

Karena alur kerja disimpan dengan komit, dan karena alur kerja memiliki pemicu push kode yang dikonfigurasi, menyimpan alur kerja memulai alur kerja berjalan secara otomatis.

## Langkah 3: Lihat hasil run
<a name="get-started-create-workflow-results"></a>

Pada langkah ini, Anda menavigasi ke proses yang dimulai dari komit Anda dan melihat hasilnya.

**Untuk melihat hasil yang dijalankan**

1. Pilih nama alur kerja Anda, misalnya,`Workflow_fe47`.

   **Diagram alur kerja yang menunjukkan label repositori sumber Anda (**WorkflowSource**) dan tindakan build (misalnya, build\$1F0).**

1. Dalam diagram alur kerja, pilih tindakan build (misalnya, **Build\$1f0**).

1. Tinjau isi tab **Log**, **Laporan**, **Konfigurasi**, dan **Variabel**. Tab ini menunjukkan hasil tindakan build Anda.

   Untuk informasi selengkapnya, lihat [Melihat hasil tindakan build](build-view-results.md).

## (Opsional) Langkah 4: Bersihkan
<a name="get-started-create-workflow-cleanup"></a>

Pada langkah ini, Anda membersihkan sumber daya yang Anda buat dalam tutorial ini.

**Untuk menghapus sumber daya**
+ Jika Anda membuat proyek baru untuk tutorial ini, hapuslah. Untuk petunjuk, lihat [Menghapus proyek](projects-delete.md). Menghapus proyek juga menghapus repositori sumber dan alur kerja. 

# Membangun dengan alur kerja
<a name="build-workflow-actions"></a>

Menggunakan [CodeCatalyst alur kerja](workflow.md), Anda dapat membangun aplikasi dan sumber daya lainnya. 

**Topics**
+ [Bagaimana cara membangun aplikasi?](#build-how-to)
+ [Manfaat dari tindakan membangun](#build-benefits)
+ [Alternatif untuk aksi build](#build-alternatives)
+ [Menambahkan aksi build](build-add-action.md)
+ [Melihat hasil tindakan build](build-view-results.md)
+ [Tutorial: Unggah artefak ke Amazon S3](build-deploy.md)
+ [Membangun dan menguji tindakan YAMB](build-action-ref.md)

## Bagaimana cara membangun aplikasi?
<a name="build-how-to"></a>

Untuk membuat aplikasi atau sumber daya CodeCatalyst, pertama-tama Anda membuat alur kerja, lalu menentukan tindakan build di dalamnya.

*Tindakan build* adalah blok pembangun alur kerja yang mengkompilasi kode sumber Anda, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.

Anda menambahkan tindakan build ke alur kerja menggunakan editor visual CodeCatalyst konsol atau editor YAMAL.

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

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

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

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

1. (Opsional) Dalam alur kerja, Anda **menambahkan pemicu** yang menunjukkan peristiwa yang akan menyebabkan alur kerja dimulai secara otomatis. Untuk informasi selengkapnya, lihat [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md)

1. Dalam alur kerja, Anda menambahkan **tindakan build** yang mengkompilasi dan mengemas kode sumber aplikasi atau sumber daya Anda. Secara opsional, Anda juga dapat meminta tindakan build menjalankan pengujian unit, menghasilkan laporan, dan menerapkan aplikasi jika Anda tidak ingin menggunakan tindakan pengujian atau penerapan untuk tujuan ini. Untuk informasi lebih lanjut tentang tindakan pengujian dan penerapan, lihat[Menambahkan aksi build](build-add-action.md).

1. (Opsional) Dalam alur kerja, Anda **menambahkan tindakan pengujian dan tindakan** penerapan untuk menguji dan **menerapkan** aplikasi atau sumber daya Anda. Anda dapat memilih dari beberapa tindakan yang telah dikonfigurasi sebelumnya untuk menerapkan aplikasi Anda ke target yang berbeda, seperti Amazon ECS. Untuk informasi selengkapnya, lihat [Pengujian dengan alur kerjaPengujian dengan alur kerja](test-workflow-actions.md), dan [Menerapkan dengan alur kerjaMenerapkan dengan alur kerja](deploy.md).

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

## Manfaat dari tindakan membangun
<a name="build-benefits"></a>

Menggunakan tindakan build dalam alur kerja memiliki manfaat sebagai berikut:
+ **Dikelola sepenuhnya** — Tindakan build menghilangkan kebutuhan untuk menyiapkan, menambal, memperbarui, dan mengelola server build Anda sendiri. 
+ **Sesuai permintaan** — Tindakan build menskalakan sesuai permintaan untuk memenuhi kebutuhan build Anda. Anda hanya membayar untuk jumlah menit build yang Anda konsumsi. Untuk informasi selengkapnya, lihat [Mengkonfigurasi gambar komputasi dan runtime](workflows-working-compute.md).
+ **Di luar kotak** — CodeCatalyst termasuk gambar Docker lingkungan runtime yang dikemas sebelumnya yang digunakan untuk menjalankan semua tindakan alur kerja Anda, termasuk tindakan build. Gambar-gambar ini telah dikonfigurasi sebelumnya dengan alat yang berguna untuk membangun aplikasi seperti AWS CLI dan Node.js. Anda dapat mengonfigurasi CodeCatalyst untuk menggunakan image build yang Anda berikan dari registri publik atau pribadi. Untuk informasi selengkapnya, lihat [Menentukan gambar lingkungan runtime](build-images.md).

## Alternatif untuk aksi build
<a name="build-alternatives"></a>

Jika Anda menggunakan tindakan build untuk menerapkan aplikasi Anda, pertimbangkan untuk menggunakan *tindakan CodeCatalyst penerapan* sebagai gantinya. Tindakan penerapan melakukan behind-the-scenes konfigurasi yang seharusnya Anda tulis secara manual jika Anda menggunakan tindakan build. Untuk informasi selengkapnya tentang tindakan penerapan yang tersedia, lihat[Daftar tindakan penerapan](deploy.md#deploy-concepts-action-supported).

Anda juga dapat menggunakan AWS CodeBuild untuk membangun aplikasi Anda. Lihat informasi yang lebih lengkap di [Apakah CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html).

# Menambahkan aksi build
<a name="build-add-action"></a>

Gunakan prosedur berikut untuk menambahkan tindakan build ke CodeCatalyst alur kerja Anda. 

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

**Untuk menambahkan tindakan build menggunakan editor visual**

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

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**.

1. Di **Actions**, pilih **Build**. 

1. Pada tab **Input** dan **Konfigurasi**, lengkapi bidang sesuai dengan kebutuhan Anda. Untuk deskripsi setiap bidang, lihat[Membangun dan menguji tindakan YAMB](build-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, dan pilih **Komit** lagi.

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

**Untuk menambahkan tindakan build menggunakan editor YAMAL**

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

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. Pilih **Tindakan**.

1. Di **Actions**, pilih **Build**.

1. Ubah properti dalam kode YAMAL sesuai dengan kebutuhan Anda. Penjelasan tentang setiap properti yang tersedia disediakan di[Membangun dan menguji tindakan YAMB](build-action-ref.md).

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

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

------

## Membangun definisi tindakan
<a name="build-add-action-definition"></a>

Tindakan build didefinisikan sebagai sekumpulan properti YAMAL di dalam file definisi alur kerja Anda. Untuk informasi tentang properti ini, lihat [Membangun dan menguji tindakan YAMB](build-action-ref.md) di[Alur kerja definisi YAMAL](workflow-reference.md).

# Melihat hasil tindakan build
<a name="build-view-results"></a>

Gunakan petunjuk berikut untuk melihat hasil tindakan build, termasuk log, laporan, dan variabel yang dihasilkan.

**Untuk melihat hasil tindakan build**

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 nama tindakan build Anda, misalnya, **Build**.

1. Untuk melihat log untuk build run, pilih **Log**. Log untuk berbagai fase build ditampilkan. Anda dapat memperluas atau menciutkan log sesuai kebutuhan.

1. Untuk melihat laporan pengujian yang dihasilkan oleh tindakan build, pilih **Laporan**, atau di panel navigasi, pilih **Laporan**. Untuk informasi selengkapnya, lihat [Jenis laporan kualitas](test-workflow-actions.md#test-reporting).

1. Untuk melihat konfigurasi yang digunakan untuk tindakan build, pilih **Configuration**. Untuk informasi selengkapnya, lihat [Menambahkan aksi build](build-add-action.md).

1. Untuk melihat variabel yang digunakan oleh aksi build, pilih **Variables**. Lihat informasi yang lebih lengkap di [Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

# Tutorial: Unggah artefak ke Amazon S3
<a name="build-deploy"></a>

[Dalam tutorial ini, Anda mempelajari cara mengunggah artefak ke bucket Amazon S3 menggunakan alur kerja CodeCatalyst [Amazon](workflows-concepts.md#workflows-concepts-workflows) yang menyertakan beberapa tindakan build.](workflows-concepts.md#workflows-concepts-actions) Tindakan ini berjalan secara seri saat alur kerja dimulai. Tindakan build pertama menghasilkan dua file, `Hello.txt` dan`Goodbye.txt`, dan menggabungkannya menjadi artefak build. Tindakan build kedua mengunggah artefak ke Amazon S3. Anda akan mengonfigurasi alur kerja untuk dijalankan setiap kali Anda mendorong komit ke repositori sumber Anda.

**Topics**
+ [Prasyarat](#build-deploy-tut-prereqs)
+ [Langkah 1: Buat AWS peran](#build-deploy-tut-role)
+ [Langkah 2: Buat ember Amazon S3](#build-deploy-tut-artifact)
+ [Langkah 3: Buat repositori sumber](#deploy-tut-lambda-cfn-source)
+ [Langkah 4: Buat alur kerja](#build-deploy-tut-workflow.title)
+ [Langkah 5: Verifikasi hasilnya](#build-deploy.s3.verify)
+ [Bersihkan](#deploy-tut-lambda-cfn-clean-up)

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

Sebelum memulai, Anda perlu melakukan hal berikut:
+ 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-artifact-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-artifact-environment
  ```

  Konfigurasikan lingkungan ini sebagai berikut:
  + Pilih jenis apa saja, seperti **Pengembangan**.
  + 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 AWS peran
<a name="build-deploy-tut-role"></a>

Pada langkah ini, Anda membuat peran AWS IAM yang nantinya akan Anda tetapkan ke tindakan build dalam alur kerja Anda. Peran ini memberikan izin tindakan CodeCatalyst build untuk mengakses AWS akun Anda dan menulis ke Amazon S3 tempat artefak Anda akan disimpan. Peran tersebut disebut **peran Build**.

**catatan**  
Jika Anda sudah memiliki peran build yang Anda buat untuk tutorial lain, Anda dapat menggunakannya untuk tutorial ini juga. Pastikan itu memiliki izin dan kebijakan kepercayaan yang ditunjukkan dalam prosedur berikut.

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

**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": [
              {
                  "Sid": "VisualEditor0",
                  "Effect": "Allow",
                  "Action": [
                      "s3:PutObject",
                      "s3:ListBucket"
                  ],
                  "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-s3-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-s3-build-policy` dan pilih kotak centang.

   1. Pilih **Berikutnya**.

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

      ```
      codecatalyst-s3-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.

## Langkah 2: Buat ember Amazon S3
<a name="build-deploy-tut-artifact"></a>

Pada langkah ini, Anda membuat ember Amazon S3 tempat `Goodbye.txt` artefak `Hello.txt` dan artefak akan diunggah.

**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-artifact-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**.

1. Salin nama bucket yang baru saja Anda buat, misalnya:

   ```
   codecatalyst-artifact-bucket
   ```

Anda sekarang telah membuat ember yang disebut **codecatalyst-artifact-bucket** di Wilayah AS Barat (Oregon) us-west-2.

## Langkah 3: 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 definisi alur kerja tutorial. 

Untuk informasi lebih lanjut 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-artifact-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-artifact-source-repository
   ```

1. Pilih **Buat**.

Anda sekarang telah membuat repositori yang disebut. `codecatalyst-artifact-source-repository`

## Langkah 4: Buat alur kerja
<a name="build-deploy-tut-workflow.title"></a>

Pada langkah ini, Anda membuat alur kerja yang 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 pemicu, lihat[Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md).
+ Tindakan build yang disebut `GenerateFiles` — Pada pemicu, `GenerateFiles` aksi membuat dua file, `Hello.txt` dan`Goodbye.txt`, dan mengemasnya ke dalam artefak keluaran yang disebut`codecatalystArtifact`.
+ Tindakan build lain yang disebut `Upload` — Setelah menyelesaikan `GenerateFiles` tindakan, `Upload` tindakan menjalankan AWS CLI perintah `aws s3 sync` untuk mengunggah file di `codecatalystArtifact` dan di repositori sumber Anda ke bucket Amazon S3 Anda. Ini sudah AWS CLI diinstal sebelumnya dan dikonfigurasi sebelumnya pada platform CodeCatalyst komputasi, jadi Anda tidak perlu menginstal atau mengkonfigurasinya.

  Untuk informasi selengkapnya tentang perangkat lunak pra-paket pada platform CodeCatalyst komputasi, lihat. [Menentukan gambar lingkungan runtime](build-images.md) Untuk informasi selengkapnya tentang `aws s3 sync` perintah, lihat [sinkronisasi](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) di *Referensi AWS CLI Perintah*. AWS CLI

Untuk informasi selengkapnya tentang tindakan build, lihat[Membangun dengan alur kerja](build-workflow-actions.md).

**Untuk membuat alur kerja**

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

1. Pilih **Buat alur kerja**.

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 yang dijelaskan di dalamnya. [Langkah 1: Buat AWS peran](#build-deploy-tut-role) Untuk informasi selengkapnya tentang menyiapkan lingkungan dengan peran IAM default, lihat[Pembuatan lingkungan](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-artifact-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: Push
       Branches:
         - main   
   Actions:
     GenerateFiles:
       Identifier: aws/build@v1
       Configuration: 
         Steps:
           # Create the output files.
           - Run: echo "Hello, World!" > "Hello.txt"
           - Run: echo "Goodbye!" > "Goodbye.txt"
       Outputs:
         Artifacts:
           - Name: codecatalystArtifact
             Files:
               - "**/*"
     Upload:
       Identifier: aws/build@v1
       DependsOn: 
         - GenerateFiles
       Environment:
         Name: codecatalyst-artifact-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-s3-build-role
       Inputs:
         Artifacts:
           - codecatalystArtifact
       Configuration: 
         Steps:
           # Upload the output artifact to the S3 bucket.
           - Run: aws s3 sync . s3://codecatalyst-artifact-bucket
   ```

   Pada kode di atas, ganti:
   + *codecatalyst-artifact-environment*dengan nama lingkungan yang Anda buat[Prasyarat](#build-deploy-tut-prereqs).
   + *codecatalyst-account-connection*dengan nama koneksi akun yang Anda buat[Prasyarat](#build-deploy-tut-prereqs).
   + *codecatalyst-s3-build-role*dengan nama peran build yang Anda buat[Langkah 1: Buat AWS peran](#build-deploy-tut-role).
   + *codecatalyst-artifact-bucket*dengan nama Amazon S3 yang Anda buat. [Langkah 2: Buat ember Amazon S3](#build-deploy-tut-artifact)

   Untuk informasi tentang properti dalam file ini, lihat[Membangun dan menguji tindakan YAMB](build-action-ref.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**, biarkan default,`codecatalyst-artifact-workflow`.

   1. Untuk **pesan Commit**, masukkan:

      ```
      add initial workflow file
      ```

   1. Untuk **Repositori, pilih**. **codecatalyst-artifact-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-artifact-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-artifact-workflow`.

1. Pilih **GenerateFiles**untuk melihat progres tindakan build pertama.

1. Pilih **Unggah** untuk melihat progres tindakan build kedua.

1. Setelah tindakan **Upload** selesai, lakukan hal berikut:
   + Jika alur kerja berjalan berhasil, pergi ke prosedur berikutnya.
   + Jika alur kerja gagal, pilih **Log** untuk memecahkan masalah.

## Langkah 5: Verifikasi hasilnya
<a name="build-deploy.s3.verify"></a>

Setelah alur kerja berjalan, buka layanan Amazon S3 dan lihat di *codecatalyst-artifact-bucket* bucket Anda. Sekarang harus menyertakan file dan folder berikut:

```
.
|— .aws/
|— .git/
|Goodbye.txt
|Hello.txt
|REAME.md
```

`Hello.txt`File `Goodbye.txt` dan diunggah karena mereka adalah bagian dari `codecatalystArtifact` artefak. `README.md`File`.aws/`,`.git/`, dan diunggah karena berada di repositori sumber Anda.

## Bersihkan
<a name="deploy-tut-lambda-cfn-clean-up"></a>

Bersihkan CodeCatalyst dan AWS untuk menghindari biaya untuk layanan ini.

**Untuk membersihkan CodeCatalyst**

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

1. Hapus repositori `codecatalyst-artifact-source-repository` sumber.

1. Hapus `codecatalyst-artifact-workflow` alur kerja.

**Untuk membersihkan AWS**

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. Hapus file di `codecatalyst-artifact-bucket` ember.

   1. Hapus `codecatalyst-artifact-bucket` ember.

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-s3-build-policy`.

   1. Hapus`codecatalyst-s3-build-role`.

# Membangun dan menguji tindakan YAMB
<a name="build-action-ref"></a><a name="test-action-ref"></a>

Berikut ini adalah definisi YAMAL dari tindakan build dan test. Ada satu referensi untuk dua tindakan karena properti YAML mereka sangat mirip.

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).

Pilih properti YAMB dalam kode berikut untuk melihat deskripsi jika itu.

**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.
  action-name:
    Identifier: aws/build@v1 | aws/managed-test@v1
    DependsOn:
      - dependent-action-name-1
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Caching:  
      FileCaching:
        key-name-1:
          Path: file1.txt
          RestoreKeys:
            - restore-key-1
    Inputs:
      Sources:
        - source-name-1
        - source-name-2
      Artifacts:
        - artifact-name
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2   
    Outputs:
      Artifacts:
        - Name: output-artifact-1
          Files: 
            - build-output/artifact-1.jar
            - "build-output/build*"
        - Name: output-artifact-2
          Files:
            - build-output/artifact-2.1.jar
            - build-output/artifact-2.2.jar
      Variables:
        - variable-name-1
        - variable-name-2
      AutoDiscoverReports:
        Enabled: true | false
        ReportNamePrefix: AutoDiscovered
        IncludePaths:
          - "**/*"
        ExcludePaths:
          - node_modules/cdk/junit.xml
        SuccessCriteria:
          PassRate: percent
          LineCoverage: percent
          BranchCoverage: percent
          Vulnerabilities:
            Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
            Number: whole-number
          StaticAnalysisBug:
            Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
            Number: whole-number
          StaticAnalysisSecurity:
            Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
            Number: whole-number
          StaticAnalysisQuality:
            Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
            Number: whole-number
          StaticAnalysisFinding:
            Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
            Number: whole-number
      Reports:
        report-name-1:
          Format: format
          IncludePaths:
            - "*.xml"
          ExcludePaths:
            - report2.xml
            - report3.xml
          SuccessCriteria:
            PassRate: percent
            LineCoverage: percent
            BranchCoverage: percent
            Vulnerabilities:
              Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
              Number: whole-number
            StaticAnalysisBug:
                Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
                Number: whole-number
            StaticAnalysisSecurity:
                Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
                Number: whole-number
            StaticAnalysisQuality:
                Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
                Number: whole-number
            StaticAnalysisFinding:
                Severity: CRITICAL | HIGH | MEDIUM | LOW | INFORMATIONAL
                Number: whole-number
    Configuration:
      Container:
        Registry: registry
        Image: image
      Steps:
        - Run: "step 1"
        - Run: "step 2"
      Packages:
        NpmConfiguration:
          PackageRegistries:
            - PackagesRepository: package-repository
              Scopes:
                - "@scope"
        ExportAuthorizationToken: true | false
```

## nama-tindakan
<a name="build.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.

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

## Identifier
<a name="build.identifier"></a>

(*action-name*/**Identifier**)

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).

Gunakan `aws/build@v1` untuk membangun tindakan.

Gunakan `aws/managed-test@v1` untuk tindakan pengujian.

UI yang sesuai: Diagram *aws/build@v1\$1aws/managed-test@v1* alur kerja/nama-tindakan/label

## DependsOn
<a name="build.depends-on"></a>

(*action-name*/**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="build.computename"></a>

(*action-name*/**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="build.computetype"></a>

(*action-name*/Compute/**Tipe**)

(Diperlukan [Compute](#build.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 YAMB)

  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="build.computefleet"></a>

(*action-name*/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="build.timeout"></a>

(*action-name*/**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="build.environment"></a>

(*action-name*/**Environment**)

(Opsional)

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="build.environment.name"></a>

(*action-name*/Environment/**Name**)

(Opsional)

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

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

## Connections
<a name="build.environment.connections"></a>

(*action-name*/Environment/**Connections**)

(Opsional)

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: tab/Environment/What Konfigurasi masuk*my-environment*? **/menu tiga titik/Beralih peran**

## Name
<a name="build.environment.connections.name"></a>

(*action-name*/Environment/Connections/**Name**)

(Diperlukan [Connections](#build.environment.connections) jika disertakan)

Tentukan nama koneksi akun.

UI yang sesuai: tab/Environment/What Konfigurasi masuk*my-environment*? **/menu tiga titik/Beralih peran**

## Role
<a name="build.environment.connections.role"></a>

(*action-name*/Environment/Connections/**Role**)

(Diperlukan [Connections](#build.environment.connections) jika disertakan)

Tentukan nama peran IAM yang digunakan tindakan ini untuk mengakses dan beroperasi di AWS layanan seperti Amazon S3 dan Amazon ECR. Pastikan peran ini ditambahkan ke Akun AWS koneksi Anda di ruang Anda. Untuk menambahkan peran IAM ke koneksi akun, lihat[Menambahkan peran IAM ke koneksi akun](ipa-connect-account-addroles.md).

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.

**catatan**  
Anda dapat menggunakan `CodeCatalystWorkflowDevelopmentRole-spaceName` peran dengan tindakan ini. 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. 

**Awas**  
Batasi izin ke yang diperlukan oleh tindakan build dan test. Menggunakan peran dengan izin yang lebih luas dapat menimbulkan risiko keamanan.

UI yang sesuai: tab/Environment/What Konfigurasi masuk*my-environment*? **/menu tiga titik/Beralih peran**

## Caching
<a name="build.caching"></a>

(*action-name*/**Caching**)

(Opsional)

Bagian di mana Anda dapat menentukan cache untuk menyimpan file pada disk dan mengembalikannya dari cache itu dalam alur kerja berikutnya.

Untuk informasi selengkapnya tentang cache file, lihat[Caching file antara alur kerja berjalan](workflows-caching.md).

UI yang sesuai: Tab **konfigurasi/File caching** - opsional

## FileCaching
<a name="build.caching.filecaching"></a>

(*action-name*/Caching/**FileCaching**)

(Opsional)

Bagian yang menentukan konfigurasi untuk urutan cache.

**UI yang sesuai: tab/File Caching konfigurasi - opsional/Tambahkan cache**

## nama-kunci-1
<a name="build.caching.filecaching.key-name-1"></a>

(*action-name*/Caching/FileCaching/***key-name-1***)

(Opsional)

Tentukan nama nama properti cache utama Anda. Nama properti cache harus unik dalam alur kerja Anda. Setiap tindakan dapat memiliki hingga lima entri. `FileCaching`

**UI yang sesuai: tab/File Caching konfigurasi - Opsional/tambahkan cache/Kunci**

## Path
<a name="build.caching.filecaching.key-name-1.path"></a>

(*action-name*/Caching/FileCaching/*key-name-1*/**Path**)

(Opsional)

Tentukan jalur terkait untuk cache Anda. 

**UI yang sesuai: tab/File Caching konfigurasi - Opsional/tambahkan cache/Path**

## RestoreKeys
<a name="build.caching.filecaching.key-name-1.restorekeys"></a>

(*action-name*/Caching/FileCaching/*key-name-1*/**RestoreKeys**)

(Opsional)

Tentukan kunci pemulihan yang akan digunakan sebagai fallback ketika properti cache utama tidak dapat ditemukan. Kembalikan nama kunci harus unik dalam alur kerja Anda. Setiap cache dapat memiliki hingga lima entri. `RestoreKeys`

**UI yang sesuai: tab/File Caching konfigurasi - Opsional/tambahkan cache/Restore keys - opsional**

## Inputs
<a name="build.inputs"></a>

(*action-name*/**Inputs**)

(Opsional)

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

**catatan**  
Maksimal empat input (satu sumber dan tiga artefak) diizinkan per tindakan build atau tindakan pengujian. 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="build.inputs.sources"></a>

(*action-name*/Inputs/**Sources**)

(Opsional)

Tentukan label yang mewakili repositori sumber yang akan dibutuhkan oleh tindakan. Saat ini, satu-satunya label yang didukung adalah`WorkflowSource`, yang mewakili repositori sumber tempat file definisi alur kerja Anda disimpan.

Jika Anda menghilangkan sumber, maka Anda harus menentukan setidaknya satu artefak input di bawah. `action-name/Inputs/Artifacts`

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

UI yang sesuai: *tidak ada*

## Artifacts - input
<a name="build.inputs.artifacts"></a>

(*action-name*/Inputs/**Artifacts**)

(Opsional)

Tentukan artefak dari tindakan sebelumnya yang ingin Anda berikan sebagai masukan untuk tindakan ini. Artefak ini harus sudah didefinisikan sebagai artefak keluaran dalam tindakan sebelumnya.

Jika Anda tidak menentukan artefak input apa pun, maka Anda harus menentukan setidaknya satu repositori sumber di bawah. `action-name/Inputs/Sources`

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

**catatan**  
Jika **Artefacts - daftar drop-down opsional** tidak tersedia (editor visual), atau jika Anda mendapatkan kesalahan saat memvalidasi YAMG (editor YAMG), itu mungkin karena tindakan hanya mendukung satu input. Dalam hal ini, coba hapus input sumber.

UI yang sesuai: Input **tab/Artefak** - opsional

## Variables - input
<a name="build.inputs.variables"></a>

(*action-name*/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

## Outputs
<a name="build.outputs"></a>

(*action-name*/**Outputs**)

(Opsional)

Mendefinisikan data yang dihasilkan oleh tindakan selama menjalankan alur kerja.

UI yang sesuai: **Tab keluaran**

## Artifacts - output
<a name="build.outputs.artifacts"></a>

(*action-name*/Outputs/**Artifacts**)

(Opsional)

Tentukan nama artefak yang dihasilkan oleh tindakan. Nama artifak harus unik dalam alur kerja, dan terbatas pada karakter alfanumerik (a-z, A-Z, 0-9) dan garis bawah (\$1). Spasi, tanda hubung (-), dan karakter khusus lainnya tidak diperbolehkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan spasi, tanda hubung, dan karakter khusus lainnya dalam nama artefak keluaran.

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="build.outputs.artifacts.name"></a>

(*action-name*/Outputs/Artifacts/**Name**)

(Diperlukan [Artifacts - output](#build.outputs.artifacts) jika disertakan)

Tentukan nama artefak yang dihasilkan oleh tindakan. Nama artifak harus unik dalam alur kerja, dan terbatas pada karakter alfanumerik (a-z, A-Z, 0-9) dan garis bawah (\$1). Spasi, tanda hubung (-), dan karakter khusus lainnya tidak diperbolehkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan spasi, tanda hubung, dan karakter khusus lainnya dalam nama artefak keluaran.

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

**UI yang sesuai: Keluaran tab/Artifacts/New keluaran/Bangun nama artefak**

## Files
<a name="build.outputs.artifacts.files"></a>

(*action-name*/Outputs/Artifacts/**Files**)

(Diperlukan [Artifacts - output](#build.outputs.artifacts) jika disertakan)

Tentukan file yang CodeCatalyst termasuk dalam artefak yang dihasilkan oleh tindakan. File-file ini dihasilkan oleh tindakan alur kerja saat dijalankan, dan juga tersedia di repositori sumber Anda. Jalur file dapat berada di repositori sumber atau artefak dari tindakan sebelumnya, dan relatif terhadap repositori sumber atau root artefak. Anda dapat menggunakan pola glob untuk menentukan jalur. Contoh:
+ Untuk menentukan satu file yang ada di root lokasi build atau lokasi repositori sumber, gunakan. `my-file.jar`
+ Untuk menentukan satu file dalam subdirektori, gunakan `directory/my-file.jar` atau`directory/subdirectory/my-file.jar`.
+ Untuk menentukan semua file, gunakan`"**/*"`. Pola `**` glob menunjukkan untuk mencocokkan sejumlah subdirektori.
+ Untuk menentukan semua file dan direktori dalam direktori bernama`directory`, gunakan`"directory/**/*"`. Pola `**` glob menunjukkan untuk mencocokkan sejumlah subdirektori.
+ Untuk menentukan semua file dalam direktori bernama`directory`, tetapi tidak salah satu subdirektorinya, gunakan. `"directory/*"` 

**catatan**  
Jika jalur file Anda menyertakan satu atau beberapa tanda bintang (`*`) atau karakter khusus lainnya, lampirkan jalur dengan tanda kutip ganda (). `""` Untuk informasi lebih lanjut tentang karakter khusus, lihat[Pedoman dan konvensi sintaks](workflow-reference.md#workflow.terms.syntax.conv).

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

**catatan**  
Anda mungkin perlu menambahkan awalan ke 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: Output tab/Artifacts/New **output/File** yang dihasilkan oleh build

## Variables - output
<a name="build.outputs.variables"></a>

(*action-name*/Outputs/**Variables**)

(Opsional)

Tentukan variabel yang ingin Anda ekspor tindakan sehingga tersedia untuk digunakan oleh tindakan selanjutnya.

Untuk informasi selengkapnya tentang variabel, termasuk contoh, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

**UI yang sesuai: Tab keluaran/Variabel/Tambahkan variabel**

## variabel-nama-1
<a name="build.outputs.variables.name"></a>

(*action-name*/Outputs/Variables/*variable-name-1*)

(Opsional)

Tentukan nama variabel yang ingin Anda ekspor tindakan. Variabel ini harus sudah didefinisikan dalam `Inputs` atau `Steps` bagian dari tindakan yang sama.

Untuk informasi selengkapnya tentang variabel, termasuk contoh, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

**UI yang sesuai: Output tab/Variables/Add variabel/Nama**

## AutoDiscoverReports
<a name="build.outputs.autodiscover"></a>

(*action-name*/Outputs/**AutoDiscoverReports**)

(Opsional)

Mendefinisikan konfigurasi untuk fitur auto-discovery.

Saat Anda mengaktifkan penemuan otomatis, semua CodeCatalyst pencarian `Inputs` diteruskan ke tindakan serta semua file yang dihasilkan oleh tindakan itu sendiri, mencari laporan pengujian, cakupan kode, dan analisis komposisi perangkat lunak (SCA). Untuk setiap laporan yang ditemukan, CodeCatalyst mengubahnya menjadi CodeCatalyst laporan. *CodeCatalyst Laporan* adalah laporan yang sepenuhnya terintegrasi ke dalam CodeCatalyst layanan dan dapat dilihat dan dimanipulasi melalui CodeCatalyst konsol.

**catatan**  
Secara default, fitur auto-discover memeriksa semua file. Anda dapat membatasi file mana yang diperiksa menggunakan [ExcludePaths](#build.reports.excludepaths) properti [IncludePaths](#build.reports.includepaths) atau. 

**UI yang sesuai: Tab Keluaran/Laporan/Laporan temukan otomatis**

## Enabled
<a name="build.outputs.autodiscover.enabled"></a>

(*action-name*/Outputs/AutoDiscoverReports/**Enabled**)

(Opsional)

Aktifkan atau nonaktifkan fitur penemuan otomatis.

Nilai-nilai yang valid adalah `true` atau `false`.

Jika `Enabled` dihilangkan, defaultnya adalah. `true`

**UI yang sesuai: Tab Keluaran/Laporan/Laporan temukan otomatis**

## ReportNamePrefix
<a name="build.outputs.autodiscover.reportnameprefix"></a>

(*action-name*/Outputs/AutoDiscoverReports/**ReportNamePrefix**)

(Diperlukan [AutoDiscoverReports](#build.outputs.autodiscover) jika disertakan dan diaktifkan)

Tentukan CodeCatalyst awalan yang ditambahkan ke semua laporan yang ditemukannya untuk memberi nama laporan terkait. CodeCatalyst Misalnya, jika Anda menentukan awalan`AutoDiscovered`, dan CodeCatalyst otomatis menemukan dua laporan pengujian, `TestSuiteOne.xml` dan`TestSuiteTwo.xml`, maka CodeCatalyst laporan terkait akan diberi nama dan. `AutoDiscoveredTestSuiteOne` `AutoDiscoveredTestSuiteTwo`

**UI yang sesuai: Tab Keluaran/Laporan/Nama awalan**

## IncludePaths
<a name="build.reports.includepaths"></a>

(*action-name*/Outputs/AutoDiscoverReports/**IncludePaths**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/**IncludePaths**)

(Diperlukan jika [AutoDiscoverReports](#build.outputs.autodiscover) disertakan dan diaktifkan, atau [Reports](#test.configuration.reports) jika disertakan)

Tentukan file dan jalur file yang CodeCatalyst disertakan saat mencari laporan mentah. Misalnya, jika Anda menentukan`"/test/report/*"`, akan CodeCatalyst mencari seluruh [image build](build-images.md) yang digunakan oleh tindakan mencari `/test/report/*` direktori. Ketika menemukan direktori itu, CodeCatalyst maka cari laporan di direktori itu.

**catatan**  
Jika jalur file Anda menyertakan satu atau beberapa tanda bintang (`*`) atau karakter khusus lainnya, lampirkan jalur dengan tanda kutip ganda (). `""` Untuk informasi lebih lanjut tentang karakter khusus, lihat[Pedoman dan konvensi sintaks](workflow-reference.md#workflow.terms.syntax.conv).

Jika properti ini dihilangkan, defaultnya adalah`"**/*"`, artinya pencarian mencakup semua file di semua jalur.

**catatan**  
Untuk laporan yang dikonfigurasi secara manual, `IncludePaths` harus berupa pola glob yang cocok dengan satu file.

UI yang sesuai:
+ tab/Reports/Auto-discover reports/Include/exclude**Jalur keluaran/Sertakan jalur**
+ **Output tab/Reports/Manually mengkonfigurasi laporan//termasuk/mengecualikan jalur/ Sertakan jalur *report-name-1***

## ExcludePaths
<a name="build.reports.excludepaths"></a>

(*action-name*/Outputs/AutoDiscoverReports/**ExcludePaths**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/**ExcludePaths**)

(Opsional)

Tentukan file dan jalur file yang CodeCatalyst dikecualikan saat mencari laporan mentah. Misalnya, jika Anda menentukan`"/test/my-reports/**/*"`, tidak CodeCatalyst akan mencari file di `/test/my-reports/` direktori. Untuk mengabaikan semua file dalam direktori, gunakan pola `**/*` glob.

**catatan**  
Jika jalur file Anda menyertakan satu atau beberapa tanda bintang (`*`) atau karakter khusus lainnya, lampirkan jalur dengan tanda kutip ganda (). `""` Untuk informasi lebih lanjut tentang karakter khusus, lihat[Pedoman dan konvensi sintaks](workflow-reference.md#workflow.terms.syntax.conv).

UI yang sesuai:
+ tab/Reports/Auto-discover reports/Include/exclude**Jalur keluaran/Kecualikan jalur**
+ **Output tab/Reports/Manually mengkonfigurasi laporan//termasuk/mengecualikan jalur/Kecualikan jalur *report-name-1***

## SuccessCriteria
<a name="build.reports.successcriteria"></a>

(*action-name*/Outputs/AutoDiscoverReports/**SuccessCriteria**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/**SuccessCriteria**)

(Opsional)

Tentukan kriteria keberhasilan untuk pengujian, cakupan kode, analisis komposisi perangkat lunak (SCA), dan laporan analisis statis (SA).

Untuk informasi selengkapnya, lihat [Mengkonfigurasi kriteria keberhasilan untuk laporan](test-config-action.md#test.success-criteria).

**UI yang sesuai: Tab keluaran/Laporan/Kriteria keberhasilan**

## PassRate
<a name="build.reports.successcriteria.passrate"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**PassRate**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**PassRate**)

(Opsional)

Tentukan persentase pengujian dalam laporan pengujian yang harus lulus agar CodeCatalyst laporan terkait ditandai sebagai lulus. Nilai yang valid termasuk angka desimal. Misalnya: `50`, `60.5`. Kriteria tingkat kelulusan hanya diterapkan pada laporan pengujian. Untuk informasi selengkapnya tentang laporan pengujian, lihat[Laporan pengujian](test-workflow-actions.md#test-reports).

**UI yang sesuai: tab/Reports/Success Kriteria keluaran/Tingkat kelulusan**

## LineCoverage
<a name="build.reports.successcriteria.linecoverage"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**LineCoverage**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**LineCoverage**)

(Opsional)

Tentukan persentase baris dalam laporan cakupan kode yang harus dicakup agar CodeCatalyst laporan terkait ditandai sebagai lulus. Nilai yang valid termasuk angka desimal. Misalnya: `50`, `60.5`. Kriteria cakupan baris hanya diterapkan pada laporan cakupan kode. Untuk informasi selengkapnya tentang laporan cakupan kode, lihat[Laporan cakupan kode](test-workflow-actions.md#test-code-coverage-reports).

**UI yang sesuai: tab/Reports/Success Kriteria keluaran/Cakupan garis**

## BranchCoverage
<a name="build.reports.successcriteria.branchcoverage"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**BranchCoverage**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**BranchCoverage**)

(Opsional)

Tentukan persentase cabang dalam laporan cakupan kode yang harus dicakup agar CodeCatalyst laporan terkait ditandai sebagai lulus. Nilai yang valid termasuk angka desimal. Misalnya: `50`, `60.5`. Kriteria cakupan cabang hanya diterapkan pada laporan cakupan kode. Untuk informasi selengkapnya tentang laporan cakupan kode, lihat[Laporan cakupan kode](test-workflow-actions.md#test-code-coverage-reports).

**UI yang sesuai: tab/Reports/Success Kriteria keluaran/Cakupan cabang**

## Vulnerabilities
<a name="build.reports.successcriteria.vulnerabilities"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**Vulnerabilities**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**Vulnerabilities**)

(Opsional)

Tentukan jumlah maksimum dan tingkat keparahan kerentanan yang diizinkan dalam laporan SCA agar CodeCatalyst laporan terkait ditandai sebagai lulus. Untuk menentukan kerentanan, Anda harus menentukan:
+ Tingkat keparahan minimum kerentanan yang ingin Anda sertakan dalam hitungan. Nilai yang valid, dari yang paling parah hingga yang paling parah, adalah: `CRITICAL``HIGH`,`MEDIUM`,,`LOW`,`INFORMATIONAL`.

  Misalnya, jika Anda memilih`HIGH`, maka `HIGH` dan `CRITICAL` kerentanan akan dihitung.
+ Jumlah maksimum kerentanan dari tingkat keparahan yang ditentukan yang Anda inginkan memungkinkan. Melebihi angka ini menyebabkan CodeCatalyst laporan ditandai sebagai gagal. Nilai yang valid adalah bilangan bulat.

Kriteria kerentanan hanya diterapkan pada laporan SCA. Untuk informasi lebih lanjut tentang laporan SCA, lihat[Laporan analisis komposisi perangkat lunak](test-workflow-actions.md#test-sca-reports).

Untuk menentukan tingkat keparahan minimum, gunakan `Severity` properti. Untuk menentukan jumlah kerentanan maksimum, gunakan `Number` properti.

**UI yang sesuai: tab/Reports/Success Kriteria keluaran/Kerentanan**

## StaticAnalysisBug
<a name="build.reports.successcriteria.bugs"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**StaticAnalysisBug**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**StaticAnalysisBug**)

(Opsional)

Tentukan jumlah maksimum dan tingkat keparahan bug yang diizinkan dalam laporan SA agar CodeCatalyst laporan terkait ditandai sebagai lulus. Untuk menentukan bug, Anda harus menentukan:
+ Tingkat keparahan minimum bug yang ingin Anda sertakan dalam hitungan. Nilai yang valid, dari yang paling parah hingga yang paling parah, adalah: `CRITICAL``HIGH`,`MEDIUM`,,`LOW`,`INFORMATIONAL`.

  Misalnya, jika Anda memilih`HIGH`, maka `HIGH` dan `CRITICAL` bug akan dihitung.
+ Jumlah maksimum bug dari tingkat keparahan yang ditentukan yang Anda inginkan izin. Melebihi angka ini menyebabkan CodeCatalyst laporan ditandai sebagai gagal. Nilai yang valid adalah bilangan bulat.

Kriteria bug hanya diterapkan pada PyLint dan laporan ESLint SA. Untuk informasi lebih lanjut tentang laporan SA, lihat[Laporan analisis statis](test-workflow-actions.md#test-static-analysis-reports).

Untuk menentukan tingkat keparahan minimum, gunakan `Severity` properti. Untuk menentukan jumlah kerentanan maksimum, gunakan `Number` properti.

**UI yang sesuai: tab/Reports/Success Kriteria keluaran/Bug**

## StaticAnalysisSecurity
<a name="build.reports.successcriteria.securityvulnerabilities"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**StaticAnalysisSecurity**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**StaticAnalysisSecurity**)

(Opsional)

Tentukan jumlah maksimum dan tingkat keparahan kerentanan keamanan yang diizinkan dalam laporan SA agar CodeCatalyst laporan terkait ditandai sebagai lulus. Untuk menentukan kerentanan keamanan, Anda harus menentukan:
+ Tingkat keparahan minimum kerentanan keamanan yang ingin Anda sertakan dalam hitungan. Nilai yang valid, dari yang paling parah hingga yang paling parah, adalah: `CRITICAL``HIGH`,`MEDIUM`,,`LOW`,`INFORMATIONAL`.

  Misalnya, jika Anda memilih`HIGH`, maka `HIGH` dan kerentanan `CRITICAL` keamanan akan dihitung.
+ Jumlah maksimum kerentanan keamanan dari tingkat keparahan tertentu yang Anda inginkan memungkinkan. Melebihi angka ini menyebabkan CodeCatalyst laporan ditandai sebagai gagal. Nilai yang valid adalah bilangan bulat.

Kriteria kerentanan keamanan hanya diterapkan pada PyLint dan laporan ESLint SA. Untuk informasi lebih lanjut tentang laporan SA, lihat[Laporan analisis statis](test-workflow-actions.md#test-static-analysis-reports).

Untuk menentukan tingkat keparahan minimum, gunakan `Severity` properti. Untuk menentukan jumlah kerentanan maksimum, gunakan `Number` properti.

**UI yang sesuai: tab/Reports/Success Kriteria keluaran/Kerentanan keamanan**

## StaticAnalysisQuality
<a name="build.reports.successcriteria.qualityissues"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**StaticAnalysisQuality**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**StaticAnalysisQuality**)

(Opsional)

Tentukan jumlah maksimum dan tingkat keparahan masalah kualitas yang diizinkan dalam laporan SA agar CodeCatalyst laporan terkait ditandai sebagai lulus. Untuk menentukan masalah kualitas, Anda harus menentukan:
+ Tingkat keparahan minimum dari masalah kualitas yang ingin Anda sertakan dalam hitungan. Nilai yang valid, dari yang paling parah hingga yang paling parah, adalah: `CRITICAL``HIGH`,`MEDIUM`,,`LOW`,`INFORMATIONAL`.

  Misalnya, jika Anda memilih`HIGH`, maka `HIGH` dan masalah `CRITICAL` kualitas akan dihitung.
+ Jumlah maksimum masalah kualitas dari tingkat keparahan yang ditentukan yang Anda inginkan memungkinkan. Melebihi angka ini menyebabkan CodeCatalyst laporan ditandai sebagai gagal. Nilai yang valid adalah bilangan bulat.

Kriteria masalah kualitas hanya diterapkan pada PyLint dan laporan ESLint SA. Untuk informasi lebih lanjut tentang laporan SA, lihat[Laporan analisis statis](test-workflow-actions.md#test-static-analysis-reports).

Untuk menentukan tingkat keparahan minimum, gunakan `Severity` properti. Untuk menentukan jumlah kerentanan maksimum, gunakan `Number` properti.

**UI yang sesuai: tab/Reports/Success Kriteria keluaran/Masalah kualitas**

## StaticAnalysisFinding
<a name="build.reports.successcriteria.findings"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**StaticAnalysisFinding**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**StaticAnalysisFinding**)

(Opsional)

Tentukan jumlah maksimum dan tingkat keparahan temuan yang diizinkan dalam laporan SA untuk CodeCatalyst laporan terkait yang akan ditandai sebagai lulus. Untuk menentukan temuan, Anda harus menentukan:
+ Tingkat keparahan minimum dari temuan yang ingin Anda sertakan dalam hitungan. Nilai yang valid, dari yang paling parah hingga yang paling parah, adalah: `CRITICAL``HIGH`,`MEDIUM`,,`LOW`,`INFORMATIONAL`.

  Misalnya, jika Anda memilih`HIGH`, maka `HIGH` dan `CRITICAL` temuan akan dihitung.
+ Jumlah maksimum temuan dari tingkat keparahan yang ditentukan yang Anda inginkan memungkinkan. Melebihi angka ini menyebabkan CodeCatalyst laporan ditandai sebagai gagal. Nilai yang valid adalah bilangan bulat.

Temuan hanya diterapkan pada laporan SARIF SA. Untuk informasi lebih lanjut tentang laporan SA, lihat[Laporan analisis statis](test-workflow-actions.md#test-static-analysis-reports).

Untuk menentukan tingkat keparahan minimum, gunakan `Severity` properti. Untuk menentukan jumlah kerentanan maksimum, gunakan `Number` properti.

**UI yang sesuai: tab/Reports/Success Kriteria keluaran/Temuan**

## Reports
<a name="test.configuration.reports"></a>

(*action-name*/Outputs/**Reports** )

(Opsional)

Bagian yang menentukan konfigurasi untuk laporan pengujian.

**UI yang sesuai: Tab keluaran/Laporan**

## laporan-nama-1
<a name="test.configuration.reports.report-name-1"></a>

(*action-name*/Outputs/Reports/**laporan-nama-1**)

(Diperlukan [Reports](#test.configuration.reports) jika disertakan)

Nama yang ingin Anda berikan ke CodeCatalyst laporan yang akan dihasilkan dari laporan mentah Anda.

**UI yang sesuai: Output tab/Reports/Manually mengkonfigurasi laporan/Nama laporan**

## Format
<a name="test.configuration.reports.name.testresults.format"></a>

(*action-name*/Outputs/Reports/*report-name-1*/**Format**)

(Diperlukan [Reports](#test.configuration.reports) jika disertakan)

Tentukan format file yang Anda gunakan untuk laporan Anda. Nilai yang mungkin adalah sebagai berikut.
+ Untuk laporan pengujian:
  + Untuk Cucumber JSON, tentukan **Cucumber** (editor visual) atau `CUCUMBERJSON` (editor YAMB).
  + Untuk JUnit XHTML, tentukan **JUnit**(editor visual) atau `JUNITXML` (editor YAMB).
  + Untuk NUnit XHTML, tentukan **NUnit**(editor visual) atau `NUNITXML` (editor YAMB).
  + Untuk NUnit 3 XHTML, tentukan **NUnit3**(editor visual) atau `NUNIT3XML` (editor YAMB).
  + Untuk Visual Studio TRX, tentukan **Visual Studio TRX** (editor visual) atau `VISUALSTUDIOTRX` (editor YAMG).
  + Untuk TestNG XML/TestNG, tentukan **TestNG** (editor visual) atau `TESTNGXML` (editor YAMB).
+ Untuk laporan cakupan kode:
  + Untuk XHTML Clover, tentukan **Clover** (editor visual) atau `CLOVERXML` (editor YAMG).
  + Untuk Cobertura XHTML, tentukan **Cobertura** (editor visual) atau `COBERTURAXML` (editor YAMB).
  + Untuk JaCoCo XHTML, tentukan **JaCoCo**(editor visual) atau `JACOCOXML` (editor YAMB).
  + Untuk SimpleCov JSON yang dihasilkan oleh [simplecov, bukan simplecov-json](https://github.com/simplecov-ruby/simplecov)[, tentukan Simplecov](https://github.com/vicentllongo/simplecov-json) (editor visual) atau (**editor YAMG**). `SIMPLECOV`
+ Untuk laporan analisis komposisi perangkat lunak (SCA):
  + Untuk SARIF, tentukan **SARIF** (editor visual) atau `SARIFSCA` (editor YAMB).

**UI yang sesuai: Mengeluarkan tab/Reports/Manually configure reports/Add/configure *report-name-1* laporan// Jenis laporan dan format **Laporan****

## Configuration
<a name="build.configuration"></a>

(*action-name*/**Configuration**)

(Wajib) Bagian di mana Anda dapat menentukan properti konfigurasi tindakan. 

UI yang sesuai: Tab **konfigurasi**

## Container
<a name="build.configuration.container"></a>

(*action-name*/Configuration/**Container**)

(Opsional)

Tentukan gambar Docker, atau *wadah*, yang digunakan tindakan untuk menyelesaikan pemrosesannya. Anda dapat menentukan salah satu [gambar aktif](build-images.md#build-curated-images) yang disertakan CodeCatalyst, atau Anda dapat menggunakan gambar Anda sendiri. Jika Anda memilih untuk menggunakan gambar Anda sendiri, itu dapat berada di Amazon ECR, Docker Hub, atau registri lain. Jika Anda tidak menentukan gambar Docker, tindakan menggunakan salah satu gambar aktif untuk pemrosesannya. Untuk informasi tentang gambar aktif yang digunakan secara default, lihat[Gambar aktif](build-images.md#build-curated-images).

Untuk informasi selengkapnya tentang menentukan image Docker Anda sendiri, lihat. [Menetapkan image Docker lingkungan runtime kustom ke suatu tindakan](build-images.md#build-images-specify)

UI yang sesuai: **Gambar Docker lingkungan runtime** - opsional

## Registry
<a name="build.configuration.container.registry"></a>

(*action-name*/Configuration/Container/**Registry**)

(Diperlukan `Container` jika disertakan)

Tentukan registri tempat gambar Anda disimpan. Nilai yang valid meliputi:
+ `CODECATALYST`(Editor YAMB)

  Gambar disimpan dalam CodeCatalyst registri.
+ **Docker Hub** (editor visual) atau `DockerHub` (editor YAMB)

  Gambar disimpan dalam registri gambar Docker Hub.
+ **Registri lain** (editor visual) atau `Other` (editor YAMB)

  Gambar disimpan dalam registri gambar khusus. Registri apa pun yang tersedia untuk umum dapat digunakan.
+ **Amazon Elastic Container Registry** (editor visual) atau `ECR` (editor YAMB)

  Gambar disimpan dalam repositori gambar Amazon Elastic Container Registry. Untuk menggunakan gambar di repositori Amazon ECR, tindakan ini memerlukan akses ke Amazon ECR. Untuk mengaktifkan akses ini, Anda harus membuat [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang mencakup izin berikut dan kebijakan kepercayaan khusus. (Anda dapat mengubah peran yang ada untuk menyertakan izin dan kebijakan, jika Anda mau.)

  Peran IAM harus menyertakan izin berikut dalam kebijakan perannya:
  + `ecr:BatchCheckLayerAvailability`
  + `ecr:BatchGetImage`
  + `ecr:GetAuthorizationToken`
  + `ecr:GetDownloadUrlForLayer`

  Peran IAM harus menyertakan kebijakan kepercayaan khusus berikut:

  Untuk informasi selengkapnya tentang membuat peran IAM, lihat [Membuat peran menggunakan kebijakan kepercayaan khusus (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) di *Panduan Pengguna IAM*.

  Setelah Anda membuat peran, Anda harus menetapkannya ke tindakan melalui lingkungan. Untuk informasi selengkapnya, lihat [Mengaitkan lingkungan dengan tindakan](deploy-environments-add-app-to-environment.md).

UI yang sesuai: **Amazon Elastic Container Registry**, **Docker Hub**, dan opsi **registri lainnya**

## Image
<a name="build.configuration.container.image"></a>

(*action-name*/Configuration/Container/**Image**)

(Diperlukan `Container` jika disertakan)

Tentukan satu dari yang berikut ini:
+ Jika Anda menggunakan `CODECATALYST` registri, atur gambar ke salah satu [gambar aktif](build-images.md#build-curated-images) berikut:
  + `CodeCatalystLinux_x86_64:2024_03`
  + `CodeCatalystLinux_x86_64:2022_11`
  + `CodeCatalystLinux_Arm64:2024_03`
  + `CodeCatalystLinux_Arm64:2022_11`
  + `CodeCatalystLinuxLambda_x86_64:2024_03`
  + `CodeCatalystLinuxLambda_x86_64:2022_11`
  + `CodeCatalystLinuxLambda_Arm64:2024_03`
  + `CodeCatalystLinuxLambda_Arm64:2022_11`
  + `CodeCatalystWindows_x86_64:2022_11`
+ Jika Anda menggunakan registri Docker Hub, atur gambar ke nama gambar Docker Hub dan tag opsional.

  Contoh: `postgres:latest`
+ Jika Anda menggunakan registri Amazon ECR, atur gambar ke URI registri Amazon ECR.

  Contoh: `111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo`
+ Jika Anda menggunakan registri kustom, atur gambar ke nilai yang diharapkan oleh registri kustom.

**UI yang sesuai: **Runtime environment docker** image (jika registri `CODECATALYST` adalah)**, image Docker Hub** (jika registri **adalah Docker** Hub)**, URL gambar ECR** (jika registri adalah **Amazon Elastic Container** Registry), **dan Image** URL (jika registri adalah Registri lain).**

## Steps
<a name="build.configuration.steps"></a>

(*action-name*/Configuration/**Steps**)

(Diperlukan) 

Tentukan perintah shell yang ingin Anda jalankan selama tindakan untuk menginstal, mengonfigurasi, dan menjalankan alat build Anda.

Berikut adalah contoh cara membangun proyek npm:

```
Steps:
  - Run: npm install
  - Run: npm run build
```

Berikut adalah contoh cara menentukan jalur file:

```
Steps:
  - Run: cd $ACTION_BUILD_SOURCE_PATH_WorkflowSource/app  && cat file2.txt
  - Run: cd $ACTION_BUILD_SOURCE_PATH_MyBuildArtifact/build-output/  && cat file.txt
```

Untuk informasi selengkapnya tentang menentukan jalur file, lihat [Merujuk file repositori sumber](workflows-sources-reference-files.md) dan[Mereferensikan file dalam artefak](workflows-working-artifacts-refer-files.md).

UI yang sesuai: Perintah tab **konfigurasi/Shell**

## Packages
<a name="build.configuration.packages"></a>

(*action-name*/Configuration/**Packages**)

(Opsional) 

Bagian di mana Anda dapat menentukan repositori paket yang digunakan tindakan untuk menyelesaikan dependensi. Paket memungkinkan Anda menyimpan dan berbagi paket perangkat lunak yang digunakan untuk pengembangan aplikasi dengan aman.

Untuk informasi selengkapnya tentang paket, lihat[Publikasikan dan bagikan paket perangkat lunak di CodeCatalyst](packages.md).

**UI yang sesuai: Tab/Paket Konfigurasi**

## NpmConfiguration
<a name="build.configuration.packages.npm"></a>

(*action-name*/Configuration/Packages/**NpmConfiguration**)

(Diperlukan [Packages](#build.configuration.packages) jika disertakan)

Bagian yang mendefinisikan konfigurasi untuk format paket npm. Konfigurasi ini digunakan oleh tindakan selama menjalankan alur kerja.

Untuk informasi selengkapnya tentang konfigurasi paket npm, lihat[Menggunakan npm](packages-npm.md).

**UI yang sesuai: Konfigurasi tab/Packages/Add konfigurasi/npm**

## PackageRegistries
<a name="build.configuration.packages.registry"></a>

(*action-name*/Configuration/Packages/NpmConfiguration/**PackageRegistries**)

(Diperlukan [Packages](#build.configuration.packages) jika disertakan)

Bagian di mana Anda dapat menentukan properti konfigurasi dari urutan repositori paket.

UI yang sesuai: tab/Packages/Add configuration/npm **Konfigurasi/Tambahkan repositori paket**

## PackagesRepository
<a name="build.configuration.packages.repository"></a>

(*action-name*/Configuration/Packages/NpmConfiguration/PackageRegistries/**PackagesRepository**)

(Diperlukan [Packages](#build.configuration.packages) jika disertakan)

Tentukan nama *repositori CodeCatalyst paket* Anda yang ingin digunakan tindakan.

Jika Anda menentukan beberapa repositori default, repositori terakhir akan diprioritaskan.

Untuk informasi selengkapnya tentang repositori paket, lihat. [Package repositori](packages-concepts.md#packages-concepts-repository)

**UI yang sesuai: Repositori tab/Packages/Add configuration/npm/Add paket konfigurasi/Package repository**

## Scopes
<a name="build.configuration.packages.scope"></a>

(*action-name*/Configuration/Packages/NpmConfiguration/PackageRegistries/**Scopes**)

(Opsional) 

Tentukan urutan *cakupan* yang ingin Anda tentukan dalam registri paket Anda. Saat mendefinisikan cakupan, repositori paket yang ditentukan dikonfigurasi sebagai registri untuk semua cakupan yang terdaftar. Jika paket dengan cakupan diminta melalui klien npm, itu akan menggunakan repositori itu alih-alih default. Setiap nama lingkup harus diawali dengan “@”.

Jika Anda menyertakan cakupan utama, repositori terakhir akan diprioritaskan.

Jika `Scopes` dihilangkan, maka repositori paket yang ditentukan dikonfigurasi sebagai registri default untuk semua paket yang digunakan oleh tindakan.

Untuk informasi selengkapnya tentang cakupan, lihat [Ruang nama Package](packages-concepts.md#packages-concepts-package-namespaces) dan paket [Scoped](https://docs.npmjs.com/cli/v10/using-npm/scope).

**UI yang sesuai: Repositori/Cakupan tab/Packages/Add configuration/npm/Add paket konfigurasi - opsional**

## ExportAuthorizationToken
<a name="build.configuration.packages.exportauthtoken"></a>

(*action-name*/Configuration/Packages/**ExportAuthorizationToken**)

(Opsional) 

Mengaktifkan atau menonaktifkan fitur token otorisasi ekspor. Jika diaktifkan, token otorisasi yang diekspor dapat digunakan untuk mengonfigurasi manajer paket secara manual untuk mengautentikasi dengan CodeCatalyst repositori paket. Anda dapat menggunakan token sebagai variabel lingkungan yang dapat direferensikan dalam tindakan Anda.

Nilai-nilai yang valid adalah `true` atau `false`.

Jika `ExportAuthorizationToken` dihilangkan, defaultnya adalah. `false`

Untuk informasi selengkapnya tentang token otorisasi ekspor, lihat[Menggunakan token otorisasi dalam tindakan alur kerja](workflows-package-export-token.md).

**UI yang sesuai: Tab konfigurasi/Paket/Token otorisasi ekspor**

# Pengujian dengan alur kerja
<a name="test-workflow-actions"></a>

Di CodeCatalyst, Anda dapat menjalankan pengujian sebagai bagian dari tindakan alur kerja yang berbeda, seperti build dan test. Tindakan alur kerja ini semuanya dapat menghasilkan laporan berkualitas. *Tindakan uji adalah tindakan* alur kerja yang menghasilkan pengujian, cakupan kode, analisis komposisi perangkat lunak, dan laporan analisis statis. Laporan ini ditampilkan di CodeCatalyst konsol.

**Topics**
+ [Jenis laporan kualitas](#test-reporting)
+ [Menambahkan tindakan pengujian](test-add-action.md)
+ [Melihat hasil tindakan uji](test-view-results.md)
+ [Melewatkan tes yang gagal dalam suatu tindakan](test.error-handling.md)
+ [Integrasi dengan universal-test-runner](test.universal-test-runner.md)
+ [Mengkonfigurasi laporan kualitas dalam suatu tindakan](test-config-action.md)
+ [Praktik terbaik untuk pengujian](test-best-practices.md)
+ [Properti SARIF yang didukung](test.sarif.md)

## Jenis laporan kualitas
<a name="test-reporting"></a>

Tindakan CodeCatalyst pengujian Amazon mendukung jenis laporan kualitas berikut. Untuk contoh tentang cara memformat laporan ini di YAMAL Anda, lihat[Contoh laporan kualitas YAMAL](test-config-action.md#test.success-criteria-example).

**Topics**
+ [Laporan pengujian](#test-reports)
+ [Laporan cakupan kode](#test-code-coverage-reports)
+ [Laporan analisis komposisi perangkat lunak](#test-sca-reports)
+ [Laporan analisis statis](#test-static-analysis-reports)

### Laporan pengujian
<a name="test-reports"></a>

Di CodeCatalyst, Anda dapat mengonfigurasi pengujian unit, pengujian integrasi, dan pengujian sistem yang berjalan selama build. Kemudian CodeCatalyst dapat membuat laporan yang berisi hasil tes Anda.

Anda dapat menggunakan laporan pengujian untuk membantu memecahkan masalah dengan pengujian Anda. Jika memiliki banyak laporan pengujian dari beberapa build, Anda dapat menggunakan laporan pengujian untuk melihat tingkat kegagalan guna membantu mengoptimalkan build.

Anda dapat menggunakan format file laporan pengujian berikut:
+ Mentimun JSON (.json)
+ JUnit XML (.xml)
+ NUnit XML (.xml)
+ NUnit3 XML (.xml)
+ TestNG XML (.xml)
+ Studio Visual TRX (.trx, .xml)

### Laporan cakupan kode
<a name="test-code-coverage-reports"></a>

Di CodeCatalyst, Anda dapat membuat laporan cakupan kode untuk pengujian Anda. CodeCatalyst menyediakan metrik cakupan kode berikut:

Cakupan baris  
Mengukur berapa banyak pernyataan yang dicakup tes Anda. Pernyataan adalah instruksi tunggal, tidak termasuk komentar.  
`line coverage = (total lines covered)/(total number of lines)`

Cakupan cabang  
Mengukur berapa banyak cabang yang dicakup pengujian Anda dari setiap cabang yang mungkin dari struktur kontrol seperti `case` pernyataan `if` atau pernyataan.  
`branch coverage = (total branches covered)/(total number of branches)`

Berikut format file laporan cakupan kode yang didukung:
+ JaCoCo XML (.xml)
+ SimpleCov JSON (dihasilkan oleh [simplecov, bukan [simplecov-json](https://github.com/vicentllongo/simplecov-json)](https://github.com/simplecov-ruby/simplecov), .json)
+ XHTML semanggi (versi 3, .xml.)
+ XML (.xml)
+ LCOV (.info)

### Laporan analisis komposisi perangkat lunak
<a name="test-sca-reports"></a>

Di CodeCatalyst, Anda dapat menggunakan alat analisis komposisi perangkat lunak (SCA) untuk menganalisis komponen aplikasi Anda dan memeriksa kerentanan keamanan yang diketahui. Anda dapat menemukan dan mengurai laporan SARIF yang merinci kerentanan dengan berbagai tingkat keparahan dan cara untuk memperbaikinya. Nilai keparahan yang valid, dari yang paling parah hingga yang paling parah, adalah:`CRITICAL`,`HIGH`,`MEDIUM`,,`LOW`,`INFORMATIONAL`.

Format file laporan SCA berikut didukung:
+ SARIF (.sarif, .json)

### Laporan analisis statis
<a name="test-static-analysis-reports"></a>

Anda dapat menggunakan laporan analisis statis (SA) untuk mengidentifikasi cacat kode tingkat sumber. Di CodeCatalyst, Anda dapat membuat laporan SA untuk membantu menyelesaikan masalah dalam kode Anda sebelum Anda menerapkannya. Masalah ini termasuk bug, kerentanan keamanan, masalah kualitas, dan kerentanan lainnya. Nilai keparahan yang valid, dari yang paling parah hingga yang paling parah, adalah: `CRITICAL``HIGH`,`MEDIUM`,`LOW`,, dan`INFORMATIONAL`.

CodeCatalyst menyediakan metrik SA berikut:

Bug  
Mengidentifikasi sejumlah kemungkinan bug yang ditemukan dalam kode sumber Anda. Bug ini dapat mencakup masalah terkait keamanan memori. Berikut ini adalah contoh bug.  

```
// The while loop will inadvertently index into array x out-of-bounds
int x[64];
while (int n = 0; n <= 64; n++) {
  x[n] = 0;
}
```

Kerentanan keamanan  
Mengidentifikasi sejumlah kemungkinan kerentanan keamanan yang ditemukan dalam kode sumber Anda. Kerentanan keamanan ini dapat mencakup masalah seperti menyimpan token rahasia Anda dalam teks biasa.

Masalah kualitas  
Mengidentifikasi sejumlah kemungkinan masalah kualitas yang ditemukan dalam kode sumber Anda. Masalah kualitas ini dapat mencakup masalah mengenai konvensi gaya. Berikut ini adalah contoh masalah kualitas.  

```
// The function name doesn't adhere to the style convention of camelCase
int SUBTRACT(int x, int y) {
  return x-y
}
```

Kerentanan lainnya  
Mengidentifikasi sejumlah kemungkinan kerentanan lain yang ditemukan dalam kode sumber Anda.

CodeCatalyst mendukung format file laporan SA berikut:
+ PyLint (.py)
+ ESLint (.js, .jsx, .ts, .tsx)
+ SARIF (.sarif, .json)

# Menambahkan tindakan pengujian
<a name="test-add-action"></a>

Gunakan prosedur berikut untuk menambahkan tindakan pengujian ke CodeCatalyst alur kerja Anda. 

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

**Untuk menambahkan tindakan pengujian menggunakan editor visual**

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

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**.

1. Dalam **Tindakan**, pilih **Uji**. 

1. Pada tab **Input** dan **Konfigurasi**, lengkapi bidang sesuai dengan kebutuhan Anda. Untuk deskripsi setiap bidang, lihat[Membangun dan menguji tindakan YAMB](build-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, dan pilih **Komit** lagi.

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

**Untuk menambahkan tindakan build menggunakan editor YAMAL**

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

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. Pilih **Tindakan**.

1. Dalam **Tindakan**, pilih **Uji**.

1. Ubah properti dalam kode YAMAL sesuai dengan kebutuhan Anda. Penjelasan tentang setiap properti yang tersedia disediakan di[Membangun dan menguji tindakan YAMB](build-action-ref.md).

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

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

------

## Definisi tindakan uji
<a name="test-add-action-definition"></a>

Tindakan pengujian didefinisikan sebagai sekumpulan properti YAMAL di dalam file definisi alur kerja Anda. Untuk informasi tentang properti ini, lihat [Membangun dan menguji tindakan YAMB](build-action-ref.md) di[Alur kerja definisi YAMAL](workflow-reference.md).

# Melihat hasil tindakan uji
<a name="test-view-results"></a>

Gunakan petunjuk berikut untuk melihat hasil tindakan pengujian, termasuk log, laporan, dan variabel yang dihasilkan.

**Untuk melihat hasil tindakan uji**

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 nama tindakan pengujian Anda, misalnya, **Uji**.

1. Untuk melihat log yang dihasilkan oleh tindakan, pilih **Log**. Log untuk berbagai fase tindakan ditampilkan. Anda dapat memperluas atau menciutkan log sesuai kebutuhan.

1. Untuk melihat laporan pengujian yang dihasilkan oleh tindakan pengujian, pilih **Laporan**, atau di panel navigasi, pilih **Laporan**. Untuk informasi selengkapnya, lihat [Jenis laporan kualitas](test-workflow-actions.md#test-reporting).

1. Untuk melihat konfigurasi yang digunakan untuk tindakan pengujian, pilih **Konfigurasi**. Untuk informasi selengkapnya, lihat [Menambahkan tindakan pengujian](test-add-action.md).

1. Untuk melihat variabel yang digunakan oleh tindakan pengujian, pilih **Variabel**. Lihat informasi yang lebih lengkap di [Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

# Melewatkan tes yang gagal dalam suatu tindakan
<a name="test.error-handling"></a>

Jika tindakan Anda memiliki lebih dari satu perintah pengujian, Anda mungkin ingin mengizinkan perintah pengujian berikutnya dalam tindakan untuk dijalankan meskipun perintah sebelumnya gagal. Misalnya, dalam perintah berikut, Anda mungkin `test2` ingin menjalankan selalu, bahkan jika `test1` gagal.

```
Steps:
- Run: npm install
- Run: npm run test1
- Run: npm run test2
```

Biasanya, ketika sebuah langkah mengembalikan kesalahan, Amazon CodeCatalyst menghentikan tindakan alur kerja dan menandainya sebagai gagal. Anda dapat mengizinkan langkah-langkah tindakan untuk terus berjalan dengan mengarahkan output kesalahan ke. `null` Anda dapat melakukan ini dengan `2>/dev/null` menambahkan perintah. Dengan modifikasi ini, contoh sebelumnya akan terlihat seperti berikut.

```
Steps:
- Run: npm install
- Run: npm run test1 2>/dev/null
- Run: npm run test2
```

Dalam cuplikan kode kedua, status `npm install` perintah akan dihormati, tetapi kesalahan apa pun yang dikembalikan oleh `npm run test1` perintah akan diabaikan. Akibatnya `npm run test2` perintah dijalankan. Dengan melakukan ini, Anda dapat melihat kedua laporan sekaligus terlepas dari apakah terjadi kesalahan.

# Integrasi dengan universal-test-runner
<a name="test.universal-test-runner"></a>

Tindakan uji terintegrasi dengan alat `universal-test-runner` baris perintah sumber terbuka. `universal-test-runner`menggunakan [Protokol Eksekusi Uji](https://github.com/aws/universal-test-runner/blob/main/protocol/README.md) untuk menjalankan pengujian Anda untuk bahasa apa pun dalam kerangka kerja tertentu. `universal-test-runner`mendukung kerangka kerja berikut:
+ [Gradle](https://gradle.org/)
+ [Lelucon](https://jestjs.io/)
+ [Maven](https://maven.apache.org/)
+ [pytest](https://pytest.org)
+ [.NET](https://learn.microsoft.com/en-us/dotnet/core/tools/)

`universal-test-runner` diinstal hanya pada image yang dikurasi untuk tindakan pengujian. Jika Anda mengonfigurasi tindakan pengujian untuk menggunakan Docker Hub kustom atau Amazon ECR, Anda harus menginstal `universal-test-runner` secara manual untuk mengaktifkan fitur pengujian lanjutan. Untuk melakukannya, instal Node.js (14 atau lebih tinggi) pada image, lalu instal `universal-test-runner` melalui `npm` menggunakan perintah shell `- Run: npm install -g @aws/universal-test-runner`. Untuk informasi selengkapnya tentang menginstal Node.js di container Anda melalui perintah shell, lihat [Menginstal dan Memperbarui Node Version Manager](https://github.com/nvm-sh/nvm#install--update-script).

Untuk informasi selengkapnya tentang `universal-test-runner`, lihat [Apa itu universal-test-runner?](https://github.com/aws/universal-test-runner#-what-is-universal-test-runner)

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

**Untuk digunakan universal-test-runner dalam editor visual**

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

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

1. Pilih nama alur kerja Anda.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Pilih **Tindakan**.

1. Dalam **Tindakan**, pilih **Uji**. 

1. Pada tab **Konfigurasi**, lengkapi bidang **perintah Shell** dengan memperbarui kode sampel dengan kerangka kerja yang didukung pilihan Anda. Misalnya, untuk menggunakan kerangka kerja yang didukung, Anda akan menggunakan `Run` perintah yang mirip dengan berikut ini.

   ```
   - Run: run-tests <framework>
   ```

   Jika kerangka kerja yang Anda inginkan tidak didukung, pertimbangkan untuk mengontribusikan runner atau adaptor kustom. Untuk deskripsi bidang **perintah Shell**, lihat[Steps](build-action-ref.md#build.configuration.steps).

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

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

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

**Untuk digunakan universal-test-runner di editor YAMM**

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

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

1. Pilih nama alur kerja Anda.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Pilih **Tindakan**.

1. Dalam **Tindakan**, pilih **Uji**.

1. Ubah kode YAMM sesuai dengan kebutuhan Anda. Misalnya, untuk menggunakan kerangka kerja yang didukung, Anda akan menggunakan `Run` perintah yang mirip dengan berikut ini.

   ```
   Configuration:
     Steps:
       - Run: run-tests <framework>
   ```

   Jika kerangka kerja yang Anda inginkan tidak didukung, pertimbangkan untuk mengontribusikan runner atau adaptor kustom. Untuk deskripsi properti **Steps**, lihat[Steps](build-action-ref.md#build.configuration.steps).

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

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

------

# Mengkonfigurasi laporan kualitas dalam suatu tindakan
<a name="test-config-action"></a>

Bagian ini menjelaskan cara mengonfigurasi laporan kualitas dalam suatu tindakan.

**Topics**
+ [Penemuan otomatis dan laporan manual](#test.auto-discovery)
+ [Mengkonfigurasi kriteria keberhasilan untuk laporan](#test.success-criteria)
+ [Contoh laporan kualitas YAMAL](#test.success-criteria-example)

## Penemuan otomatis dan laporan manual
<a name="test.auto-discovery"></a>

Ketika penemuan otomatis diaktifkan, CodeCatalyst mencari semua input yang diteruskan ke tindakan, dan semua file yang dihasilkan oleh tindakan itu sendiri, mencari pengujian, cakupan kode, analisis komposisi perangkat lunak (SCA), dan laporan analisis statis (SA). Anda dapat melihat dan memanipulasi masing-masing laporan ini di CodeCatalyst.

Anda juga dapat mengonfigurasi laporan mana yang dihasilkan secara manual. Anda dapat menentukan jenis laporan yang ingin Anda hasilkan serta format file. Untuk informasi selengkapnya, lihat [Jenis laporan kualitas](test-workflow-actions.md#test-reporting).

## Mengkonfigurasi kriteria keberhasilan untuk laporan
<a name="test.success-criteria"></a>

Anda dapat mengatur nilai yang menentukan kriteria keberhasilan untuk pengujian, cakupan kode, analisis komposisi perangkat lunak (SCA), atau laporan analisis statis (SA).

Kriteria keberhasilan adalah ambang batas yang menentukan apakah laporan lolos atau gagal. CodeCatalyst pertama menghasilkan laporan Anda, yang dapat berupa pengujian, cakupan kode, SCA, atau laporan SA, dan kemudian menerapkan kriteria keberhasilan pada laporan yang dihasilkan. Ini kemudian menunjukkan apakah kriteria keberhasilan terpenuhi, dan sejauh mana. Jika ada laporan yang tidak memenuhi kriteria keberhasilan yang ditentukan, CodeCatalyst tindakan yang menentukan kriteria keberhasilan gagal.

Misalnya, ketika Anda menetapkan kriteria keberhasilan untuk laporan SCA Anda, nilai kerentanan yang valid mulai dari yang paling parah hingga yang paling tidak parah adalah:`CRITICAL`,,, `HIGH``MEDIUM`,`LOW`. `INFORMATIONAL` Jika Anda menetapkan kriteria untuk memindai satu kerentanan pada `HIGH` tingkat keparahan, laporan akan gagal jika ada setidaknya satu kerentanan pada `HIGH` tingkat keparahan atau tidak ada kerentanan pada tingkat `HIGH` keparahan, tetapi setidaknya satu kerentanan pada tingkat keparahan yang lebih tinggi, seperti satu kerentanan pada tingkat keparahan. `CRITICAL`

Jika Anda tidak menentukan kriteria keberhasilan, maka:
+  CodeCatalyst Laporan yang dihasilkan berdasarkan laporan mentah Anda tidak akan menampilkan kriteria keberhasilan.
+ Kriteria keberhasilan tidak akan digunakan untuk menentukan apakah tindakan alur kerja terkait lolos atau gagal.

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

**Untuk mengkonfigurasi kriteria keberhasilan**

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

1. Pilih alur kerja yang berisi tindakan yang menghasilkan laporan. Ini adalah laporan yang ingin Anda terapkan kriteria keberhasilannya. 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 telah Anda konfigurasikan untuk menghasilkan CodeCatalyst laporan.

1. Pilih tab **Output**.

1. Di bawah **Auto-temukan laporan** atau di bawah **Konfigurasi laporan secara manual**, pilih **Kriteria sukses**.

   Kriteria keberhasilan muncul. Bergantung pada pilihan Anda sebelumnya, Anda mungkin melihat salah satu atau semua opsi ini:

   **Tingkat kelulusan**

   Tentukan persentase pengujian dalam laporan pengujian yang harus lulus agar CodeCatalyst laporan terkait ditandai sebagai lulus. Nilai yang valid termasuk angka desimal. Misalnya: `50`, `60.5`. Kriteria tingkat kelulusan hanya diterapkan pada laporan pengujian. Untuk informasi selengkapnya tentang laporan pengujian, lihat[Laporan pengujian](test-workflow-actions.md#test-reports).

   **Cakupan garis**

   Tentukan persentase baris dalam laporan cakupan kode yang harus dicakup agar CodeCatalyst laporan terkait ditandai sebagai lulus. Nilai yang valid termasuk angka desimal. Misalnya: `50`, `60.5`. Kriteria cakupan baris hanya diterapkan pada laporan cakupan kode. Untuk informasi selengkapnya tentang laporan cakupan kode, lihat[Laporan cakupan kode](test-workflow-actions.md#test-code-coverage-reports).

   **Cakupan cabang**

   Tentukan persentase cabang dalam laporan cakupan kode yang harus dicakup agar CodeCatalyst laporan terkait ditandai sebagai lulus. Nilai yang valid termasuk angka desimal. Misalnya: `50`, `60.5`. Kriteria cakupan cabang hanya diterapkan pada laporan cakupan kode. Untuk informasi selengkapnya tentang laporan cakupan kode, lihat[Laporan cakupan kode](test-workflow-actions.md#test-code-coverage-reports).

   **Kerentanan (SCA)**

   Tentukan jumlah maksimum dan tingkat keparahan kerentanan yang diizinkan dalam laporan SCA agar CodeCatalyst laporan terkait ditandai sebagai lulus. Untuk menentukan kerentanan, Anda harus menentukan:
   + Tingkat keparahan minimum kerentanan yang ingin Anda sertakan dalam hitungan. Nilai yang valid, dari yang paling parah hingga yang paling parah, adalah: `CRITICAL``HIGH`,`MEDIUM`,,`LOW`,`INFORMATIONAL`.

     Misalnya, jika Anda memilih`HIGH`, maka `HIGH` dan `CRITICAL` kerentanan akan dihitung.
   + Jumlah maksimum kerentanan dari tingkat keparahan yang ditentukan yang Anda inginkan memungkinkan. Melebihi angka ini menyebabkan CodeCatalyst laporan ditandai sebagai gagal. Nilai yang valid adalah bilangan bulat.

   Kriteria kerentanan hanya diterapkan pada laporan SCA. Untuk informasi lebih lanjut tentang laporan SCA, lihat[Laporan analisis komposisi perangkat lunak](test-workflow-actions.md#test-sca-reports).

   **Bug**

   Tentukan jumlah maksimum dan tingkat keparahan bug yang diizinkan dalam laporan SA agar CodeCatalyst laporan terkait ditandai sebagai lulus. Untuk menentukan bug, Anda harus menentukan:
   + Tingkat keparahan minimum bug yang ingin Anda sertakan dalam hitungan. Nilai yang valid, dari yang paling parah hingga yang paling parah, adalah: `CRITICAL``HIGH`,`MEDIUM`,,`LOW`,`INFORMATIONAL`.

     Misalnya, jika Anda memilih`HIGH`, maka `HIGH` dan `CRITICAL` bug akan dihitung.
   + Jumlah maksimum bug dari tingkat keparahan yang ditentukan yang Anda inginkan izin. Melebihi angka ini menyebabkan CodeCatalyst laporan ditandai sebagai gagal. Nilai yang valid adalah bilangan bulat.

   Kriteria bug hanya diterapkan pada PyLint dan laporan ESLint SA. Untuk informasi lebih lanjut tentang laporan SA, lihat[Laporan analisis statis](test-workflow-actions.md#test-static-analysis-reports).

   **Kerentanan keamanan**

   Tentukan jumlah maksimum dan tingkat keparahan kerentanan keamanan yang diizinkan dalam laporan SA agar CodeCatalyst laporan terkait ditandai sebagai lulus. Untuk menentukan kerentanan keamanan, Anda harus menentukan:
   + Tingkat keparahan minimum kerentanan keamanan yang ingin Anda sertakan dalam hitungan. Nilai yang valid, dari yang paling parah hingga yang paling parah, adalah: `CRITICAL``HIGH`,`MEDIUM`,,`LOW`,`INFORMATIONAL`.

     Misalnya, jika Anda memilih`HIGH`, maka `HIGH` dan kerentanan `CRITICAL` keamanan akan dihitung.
   + Jumlah maksimum kerentanan keamanan dari tingkat keparahan tertentu yang Anda inginkan memungkinkan. Melebihi angka ini menyebabkan CodeCatalyst laporan ditandai sebagai gagal. Nilai yang valid adalah bilangan bulat.

   Kriteria kerentanan keamanan hanya diterapkan pada PyLint dan laporan ESLint SA. Untuk informasi lebih lanjut tentang laporan SA, lihat[Laporan analisis statis](test-workflow-actions.md#test-static-analysis-reports).

   **Masalah kualitas**

   Tentukan jumlah maksimum dan tingkat keparahan masalah kualitas yang diizinkan dalam laporan SA agar CodeCatalyst laporan terkait ditandai sebagai lulus. Untuk menentukan masalah kualitas, Anda harus menentukan:
   + Tingkat keparahan minimum dari masalah kualitas yang ingin Anda sertakan dalam hitungan. Nilai yang valid, dari yang paling parah hingga yang paling parah, adalah: `CRITICAL``HIGH`,`MEDIUM`,,`LOW`,`INFORMATIONAL`.

     Misalnya, jika Anda memilih`HIGH`, maka `HIGH` dan masalah `CRITICAL` kualitas akan dihitung.
   + Jumlah maksimum masalah kualitas dari tingkat keparahan tertentu yang Anda inginkan izin. Melebihi angka ini menyebabkan CodeCatalyst laporan ditandai sebagai gagal. Nilai yang valid adalah bilangan bulat.

   Kriteria masalah kualitas hanya diterapkan pada PyLint dan laporan ESLint SA. Untuk informasi lebih lanjut tentang laporan SA, lihat[Laporan analisis statis](test-workflow-actions.md#test-static-analysis-reports).

1. Pilih **Terapkan**.

1. Jalankan alur kerja Anda agar CodeCatalyst menerapkan kriteria keberhasilan pada laporan mentah Anda, dan buat ulang CodeCatalyst laporan terkait dengan informasi kriteria keberhasilan yang disertakan. Untuk informasi selengkapnya, lihat [Memulai proses alur kerja secara manual](workflows-manually-start.md).

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

**Untuk mengkonfigurasi kriteria keberhasilan**

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

1. Pilih alur kerja yang berisi tindakan yang menghasilkan laporan. Ini adalah laporan yang ingin Anda terapkan kriteria keberhasilannya. 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 diagram alur kerja, pilih tindakan yang telah Anda konfigurasikan untuk menghasilkan CodeCatalyst laporan.

1. Di panel detail, pilih tab **Output**.

1. Dalam tindakan, di `AutoDiscoverReports` bagian, atau di `Reports` bagian, tambahkan **SuccessCriteria**properti, bersama dengan`PassRate`,,`LineCoverage`,`BranchCoverage`, `Vulnerabilities``StaticAnalysisBug`,`StaticAnalysisSecurity`, dan `StaticAnalysisQuality` properti.

   Untuk penjelasan masing-masing properti ini, konsultasikan dengan[Membangun dan menguji tindakan YAMB](build-action-ref.md).

1. Pilih **Terapkan**.

1. Jalankan alur kerja Anda agar CodeCatalyst menerapkan kriteria keberhasilan pada laporan mentah Anda, dan buat ulang CodeCatalyst laporan terkait dengan informasi kriteria keberhasilan yang disertakan. Untuk informasi selengkapnya tentang memulai alur kerja, lihat[Memulai proses alur kerja secara manual](workflows-manually-start.md).

------

## Contoh laporan kualitas YAMAL
<a name="test.success-criteria-example"></a>

 Contoh berikut menunjukkan cara mengonfigurasi empat laporan secara manual: laporan pengujian, laporan cakupan kode, laporan analisis komposisi perangkat lunak, dan laporan analisis statis.

```
Reports:
  MyTestReport:
    Format: JUNITXML
    IncludePaths:
      - "*.xml"
    ExcludePaths:
      - report1.xml
      SuccessCriteria:
        PassRate: 90
  MyCoverageReport:
    Format: CLOVERXML
    IncludePaths:
      - output/coverage/jest/clover.xml
      SuccessCriteria:
        LineCoverage: 75
        BranchCoverage: 75
  MySCAReport:
    Format: SARIFSCA
    IncludePaths:
      - output/sca/reports.xml
      SuccessCriteria:
        Vulnerabilities:
          Number: 5
          Severity: HIGH
  MySAReport:
    Format: ESLINTJSON
    IncludePaths:
      - output/static/eslint.xml
      SuccessCriteria:
        StaticAnalysisBug:
          Number: 10
          Severity: MEDIUM
        StaticAnalysisSecurity:
          Number: 5
          Severity: CRITICAL
        StaticAnalysisQuality:
          Number: 0
          Severity: INFORMATIONAL
```

# Praktik terbaik untuk pengujian
<a name="test-best-practices"></a>

Saat menggunakan fitur pengujian yang disediakan oleh CodeCatalyst, kami sarankan Anda mengikuti praktik terbaik ini.

**Topics**
+ [Penemuan otomatis](#test.best-auto-discovery)
+ [Kriteria keberhasilan](#test.best-success-criteria)
+ [Sertakan/kecualikan jalur](#test.best-include-exclude)

## Penemuan otomatis
<a name="test.best-auto-discovery"></a>

Saat mengonfigurasi tindakan CodeCatalyst, penemuan otomatis memungkinkan Anda menemukan keluaran berbagai alat secara otomatis, seperti laporan JUnit pengujian, dan menghasilkan laporan yang relevan darinya CodeCatalyst. Penemuan otomatis membantu memastikan bahwa laporan terus dibuat meskipun nama atau jalur ke output yang ditemukan berubah. Ketika file baru ditambahkan, CodeCatalyst secara otomatis menemukan mereka dan menghasilkan laporan yang relevan. Namun, jika Anda menggunakan penemuan otomatis, penting untuk memperhitungkan beberapa aspek berikut dari fitur ini:
+ Saat Anda mengaktifkan penemuan otomatis dalam tindakan Anda, semua laporan yang ditemukan secara otomatis dari jenis yang sama akan berbagi kriteria keberhasilan yang sama. Misalnya, kriteria bersama seperti tingkat kelulusan minimum akan berlaku untuk semua laporan pengujian yang ditemukan secara otomatis. Jika Anda memerlukan kriteria yang berbeda untuk laporan dari jenis yang sama, Anda harus secara eksplisit mengonfigurasi setiap laporan ini.
+ Penemuan otomatis juga dapat menemukan laporan yang dihasilkan oleh dependensi Anda dan, jika kriteria keberhasilan dikonfigurasi, mungkin gagal dalam tindakan pada laporan ini. Masalah ini dapat diatasi dengan memperbarui konfigurasi jalur pengecualian.
+ Penemuan otomatis tidak dijamin menghasilkan daftar laporan yang sama setiap saat, karena memindai tindakan saat runtime. Jika Anda ingin laporan tertentu selalu diproduksi, Anda harus mengonfigurasi laporan secara eksplisit. Misalnya, jika pengujian berhenti berjalan sebagai bagian dari build Anda, kerangka pengujian tidak akan menghasilkan output apa pun dan, sebagai hasilnya, tidak ada laporan pengujian yang akan dihasilkan dan tindakan mungkin berhasil. Jika Anda ingin keberhasilan tindakan Anda bergantung pada pengujian tertentu, maka Anda harus mengonfigurasi laporan itu secara eksplisit.

**Tip**  
Saat memulai proyek baru atau yang sudah ada, gunakan penemuan otomatis untuk seluruh direktori proyek (termasuk`**/*`). Ini memanggil pembuatan laporan di semua file dalam proyek Anda, termasuk yang ada di dalam subdirektori.

Untuk informasi selengkapnya, lihat [Mengkonfigurasi laporan kualitas dalam suatu tindakan](test-config-action.md).

## Kriteria keberhasilan
<a name="test.best-success-criteria"></a>

Anda dapat menerapkan ambang kualitas pada laporan Anda dengan mengonfigurasi kriteria keberhasilan. Misalnya, jika dua laporan cakupan kode ditemukan secara otomatis, satu dengan cakupan baris 80% dan yang lainnya dengan cakupan garis 60%, Anda memiliki opsi berikut:
+ Tetapkan kriteria keberhasilan penemuan otomatis untuk cakupan lini sebesar 80%. Ini akan menyebabkan laporan pertama lulus dan laporan kedua gagal, yang akan mengakibatkan tindakan keseluruhan gagal. Untuk membuka blokir alur kerja, tambahkan pengujian baru ke proyek Anda hingga cakupan baris untuk laporan kedua melebihi 80%.
+ Tetapkan kriteria keberhasilan penemuan otomatis untuk cakupan lini sebesar 60%. Ini akan menyebabkan kedua laporan lolos, yang akan menghasilkan tindakan berhasil. Anda kemudian dapat bekerja untuk meningkatkan cakupan kode di laporan kedua. Namun, dengan pendekatan ini, Anda tidak dapat menjamin bahwa cakupan dalam laporan pertama tidak turun di bawah 80%.
+ Konfigurasikan satu atau kedua laporan secara eksplisit dengan menggunakan editor visual atau menambahkan bagian dan jalur YAMB eksplisit untuk setiap laporan. Ini akan memungkinkan Anda untuk mengonfigurasi kriteria keberhasilan terpisah dan nama khusus untuk setiap laporan. Namun, dengan pendekatan ini, tindakan bisa gagal jika jalur laporan berubah.

Untuk informasi selengkapnya, lihat [Mengkonfigurasi kriteria keberhasilan untuk laporan](test-config-action.md#test.success-criteria).

## Sertakan/kecualikan jalur
<a name="test.best-include-exclude"></a>

Saat meninjau hasil tindakan, Anda dapat menyesuaikan daftar laporan yang dihasilkan CodeCatalyst dengan mengonfigurasi dan. `IncludePaths` `ExcludePaths`
+ Gunakan `IncludePaths` untuk menentukan file dan jalur file yang CodeCatalyst ingin Anda sertakan saat mencari laporan. Misalnya, jika Anda menentukan`"/test/report/*"`, akan CodeCatalyst mencari seluruh image build yang digunakan oleh tindakan mencari `/test/report/` direktori. Ketika menemukan direktori itu, CodeCatalyst maka cari laporan di direktori itu.
**catatan**  
Untuk laporan yang dikonfigurasi secara manual, `IncludePaths` harus berupa pola glob yang cocok dengan satu file.
+ Gunakan `ExcludePaths` untuk menentukan file dan jalur file yang CodeCatalyst ingin Anda kecualikan saat mencari laporan. Misalnya, jika Anda menentukan`"/test/reports/**/*"`, tidak CodeCatalyst akan mencari file di `/test/reports/` direktori. Untuk mengabaikan semua file dalam direktori, gunakan pola `**/*` glob.

Berikut ini adalah contoh pola glob yang mungkin.


| Pola | Deskripsi | 
| --- | --- | 
|  `*.*`  |  Cocokkan semua nama objek di direktori saat ini yang berisi titik  | 
|  `*.xml`  |  Cocokkan semua nama objek di direktori saat ini yang diakhiri dengan `.xml`  | 
|  `*.{xml,txt}`  |  Cocokkan semua nama objek di direktori saat ini yang diakhiri dengan `.xml` atau `.txt`  | 
|  `**/*.xml`  |  Mencocokkan nama objek di semua direktori yang diakhiri dengan `.xml`  | 
|  `testFolder`  |  Cocokkan objek yang disebut`testFolder`, memperlakukannya sebagai file  | 
|  `testFolder/*`  |  Mencocokkan objek dalam satu tingkat subfolder dari`testFolder`, seperti `testFolder/file.xml`  | 
|  `testFolder/*/*`  |  Mencocokkan objek dalam dua tingkat subfolder dari`testFolder`, seperti `testFolder/reportsFolder/file.xml`  | 
|  `testFolder/**`  |  Cocok dengan subfolder `testFolder` serta file di bawah `testFolder`, seperti `testFolder/file.xml` dan `testFolder/otherFolder/file.xml`  | 

CodeCatalyst menafsirkan pola glob sebagai berikut:
+ Karakter slash (`/`) memisahkan direktori di jalur file.
+ Karakter tanda bintang (`*`) cocok dengan karakter nol atau karakter lain dari komponen nama tanpa melintasi batas folder.
+ Tanda bintang ganda (`**`) cocok dengan nol atau lebih karakter dari komponen nama di semua direktori.

**catatan**  
`ExcludePaths`lebih diutamakan. `IncludePaths` Jika keduanya `IncludePaths` dan `ExcludePaths` menyertakan folder yang sama, folder itu tidak dipindai untuk laporan.

# Properti SARIF yang didukung
<a name="test.sarif"></a>

Static Analysis Results Interchange Format (SARIF) adalah format file output yang tersedia dalam analisis komposisi perangkat lunak (SCA) dan laporan analisis statis di Amazon. CodeCatalyst Contoh berikut menunjukkan cara mengkonfigurasi SARIF secara manual dalam laporan analisis statis:

```
Reports:
MySAReport:
Format: SARIFSA
IncludePaths:
    - output/sa_report.json
SuccessCriteria:
    StaticAnalysisFinding:
    Number: 25
    Severity: HIGH
```

CodeCatalyst mendukung properti SARIF berikut yang dapat digunakan untuk mengoptimalkan bagaimana hasil analisis akan muncul dalam laporan Anda.

**Topics**
+ [Objek `sarifLog`](#test.sarif.sarifLog)
+ [Objek `run`](#test.sarif.run)
+ [Objek `toolComponent`](#test.sarif.toolComponent)
+ [Objek `reportingDescriptor`](#test.sarif.reportingDescriptor)
+ [Objek `result`](#test.sarif.result)
+ [Objek `location`](#test.sarif.location)
+ [Objek `physicalLocation`](#test.sarif.physicalLocation)
+ [Objek `logicalLocation`](#test.sarif.logicalLocation)
+ [Objek `fix`](#test.sarif.fix)

## Objek `sarifLog`
<a name="test.sarif.sarifLog"></a>


| Nama | Diperlukan | Deskripsi | 
| --- | --- | --- | 
|  `$schema`  |  Ya  |  [URI dari skema SARIF JSON untuk versi 2.1.0.](https://json.schemastore.org/sarif-2.1.0.json)  | 
|  `version`  |  Ya  |  CodeCatalyst hanya mendukung SARIF versi 2.1.0.  | 
|  `runs[]`  |  Ya  |  File SARIF berisi array dari satu atau lebih run, yang masing-masing mewakili satu run alat analisis.  | 

## Objek `run`
<a name="test.sarif.run"></a>


| Nama | Diperlukan | Deskripsi | 
| --- | --- | --- | 
|  `tool.driver`  |  Ya  |  `toolComponent`Objek yang menggambarkan alat analisis.  | 
|  `tool.name`  |  Tidak  |  Properti yang menunjukkan nama alat yang digunakan untuk melakukan analisis.  | 
|  `results[]`  |  Ya  |  Hasil alat analisis yang ditampilkan pada CodeCatalyst.  | 

## Objek `toolComponent`
<a name="test.sarif.toolComponent"></a>


| Nama | Diperlukan | Deskripsi | 
| --- | --- | --- | 
|  `name`  |  Ya  |  Nama alat analisis.  | 
|  `properties.artifactScanned`  |  Tidak  |  Sejumlah artefak dianalisis oleh alat.  | 
|  `rules[]`  |  Ya  |  Sebuah array `reportingDescriptor` objek yang mewakili aturan. Berdasarkan aturan ini, alat analisis menemukan masalah dalam kode yang dianalisis.  | 

## Objek `reportingDescriptor`
<a name="test.sarif.reportingDescriptor"></a>


| Nama | Diperlukan | Deskripsi | 
| --- | --- | --- | 
|  `id`  |  Ya  |  Pengidentifikasi unik untuk aturan yang digunakan untuk referensi temuan. Panjang maksimal: 1.024 karakter  | 
|  `name`  |  Tidak  |  Nama tampilan aturan. Panjang maksimal: 1.024 karakter  | 
|  `shortDescription.text`  |  Tidak  |  Deskripsi singkat tentang aturan tersebut. Panjang maksimum: 3.000 karakter  | 
|  `fullDescription.text`  |  Tidak  |  Deskripsi lengkap tentang aturan tersebut. Panjang maksimum: 3.000 karakter  | 
|  `helpUri`  |  Tidak  |  String yang dapat dilokalkan untuk berisi URI absolut dari dokumentasi utama untuk aturan. Panjang maksimum: 3.000 karakter  | 
|  `properties.unscore`  |  Tidak  |  Bendera yang menunjukkan apakah temuan pemindaian telah dinilai.  | 
|  `properties.score.severity`  |  Tidak  |  Satu set string tetap yang menentukan tingkat keparahan temuan. Panjang maksimal: 1.024 karakter  | 
|  `properties.cvssv3_baseSeverity`  |  Tidak  |  Peringkat keparahan kualitatif dari [Common Vulnerability Scoring](https://www.first.org/cvss/v3.1/specification-document) System v3.1.  | 
|  `properties.cvssv3_baseScore`  |  Tidak  |  Skor Dasar CVSS v3 mulai dari [0,0](https://nvd.nist.gov/vuln-metrics/cvss) - 10,0.  | 
|  `properties.cvssv2_severity`  |  Tidak  |  Jika nilai CVSS v3 tidak tersedia, CodeCatalyst cari nilai CVSS v2.  | 
|  `properties.cvssv2_score`  |  Tidak  |  Skor Dasar CVSS v2 mulai dari [0,0 - 10,0](https://nvd.nist.gov/vuln-metrics/cvss).  | 
|  `properties.severity`  |  Tidak  |  Satu set string tetap yang menentukan tingkat keparahan temuan. Panjang maksimal: 1.024 karakter  | 
|  `defaultConfiguration.level`  |  Tidak  |  Tingkat keparahan default dari suatu aturan.  | 

## Objek `result`
<a name="test.sarif.result"></a>


| Nama | Diperlukan | Deskripsi | 
| --- | --- | --- | 
|  `ruleId`  |  Ya  |  Pengidentifikasi unik untuk aturan yang digunakan untuk referensi temuan. Panjang maksimal: 1.024 karakter  | 
|  `ruleIndex`  |  Ya  |  Indeks aturan terkait dalam komponen alat`rules[]`.  | 
|  `message.text`  |  Ya  |  Pesan yang menjelaskan hasil dan menampilkan pesan untuk setiap temuan. Panjang maksimum: 3.000 karakter  | 
|  `rank`  |  Tidak  |  Nilai antara 0,0 hingga 100,0 inklusif yang mewakili prioritas atau pentingnya hasil. Nilai skala ini 0,0 menjadi prioritas terendah dan 100,0 menjadi prioritas tertinggi.  | 
|  `level`  |  Tidak  |  Tingkat keparahan hasilnya. Panjang maksimal: 1.024 karakter  | 
|  `properties.unscore`  |  Tidak  |  Bendera yang menunjukkan apakah temuan pemindaian telah dinilai.  | 
|  `properties.score.severity`  |  Tidak  |  Satu set string tetap yang menentukan tingkat keparahan temuan. Panjang maksimal: 1.024 karakter  | 
|  `properties.cvssv3_baseSeverity`  |  Tidak  |  Peringkat keparahan kualitatif dari [Common Vulnerability Scoring](https://www.first.org/cvss/v3.1/specification-document) System v3.1.  | 
|  `properties.cvssv3_baseScore`  |  Tidak  |  Skor Dasar CVSS v3 mulai dari [0,0](https://nvd.nist.gov/vuln-metrics/cvss) - 10,0.  | 
|  `properties.cvssv2_severity`  |  Tidak  |  Jika nilai CVSS v3 tidak tersedia, CodeCatalyst cari nilai CVSS v2.  | 
|  `properties.cvssv2_score`  |  Tidak  |  Skor Dasar CVSS v2 mulai dari [0,0 - 10,0](https://nvd.nist.gov/vuln-metrics/cvss).  | 
|  `properties.severity`  |  Tidak  |  Satu set string tetap yang menentukan tingkat keparahan temuan. Panjang maksimal: 1.024 karakter  | 
|  `locations[]`  |  Ya  |  Kumpulan lokasi di mana hasilnya terdeteksi. Hanya satu lokasi yang harus disertakan kecuali masalahnya hanya dapat diperbaiki dengan membuat perubahan di setiap lokasi yang ditentukan. CodeCatalyst menggunakan nilai pertama dalam array lokasi untuk membubuhi keterangan hasilnya. Jumlah maksimum `location` objek: 10  | 
|  `relatedLocations[]`  |  Tidak  |  Daftar referensi lokasi tambahan dalam temuan. Jumlah maksimum `location` objek: 50  | 
|  `fixes[]`  |  Tidak  |  Array `fix` objek yang mewakili rekomendasi yang disediakan oleh alat pemindaian. CodeCatalyst menggunakan rekomendasi pertama dalam `fixes` array.  | 

## Objek `location`
<a name="test.sarif.location"></a>


| Nama | Diperlukan | Deskripsi | 
| --- | --- | --- | 
|  `physicalLocation`  |  Ya  |  Mengidentifikasi artefak dan wilayah.  | 
|  `logicalLocations[]`  |  Tidak  |  Kumpulan lokasi dijelaskan dengan nama tanpa mengacu pada artefak.  | 

## Objek `physicalLocation`
<a name="test.sarif.physicalLocation"></a>


| Nama | Diperlukan | Deskripsi | 
| --- | --- | --- | 
|  `artifactLocation.uri`  |  Ya  |  URI yang menunjukkan lokasi artefak, biasanya file baik di repositori atau dihasilkan selama pembuatan.  | 
|  `fileLocation.uri`  |  Tidak  |  URI jatuh kembali yang menunjukkan lokasi file. Ini digunakan jika `artifactLocation.uri` kembali kosong.  | 
|  `region.startLine`  |  Ya  |  Nomor baris karakter pertama di wilayah tersebut.  | 
|  `region.startColumn`  |  Ya  |  Nomor kolom karakter pertama di wilayah tersebut.  | 
|  `region.endLine`  |  Ya  |  Nomor baris karakter terakhir di wilayah tersebut.  | 
|  `region.endColumn`  |  Ya  |  Nomor kolom karakter terakhir di wilayah tersebut.  | 

## Objek `logicalLocation`
<a name="test.sarif.logicalLocation"></a>


| Nama | Diperlukan | Deskripsi | 
| --- | --- | --- | 
|  `fullyQualifiedName`  |  Tidak  |  Informasi tambahan yang menggambarkan lokasi hasil. Panjang maksimal: 1.024 karakter  | 

## Objek `fix`
<a name="test.sarif.fix"></a>


| Nama | Diperlukan | Deskripsi | 
| --- | --- | --- | 
|  `description.text`  |  Tidak  |  Pesan yang menampilkan rekomendasi untuk setiap temuan. Panjang maksimum: 3.000 karakter  | 
|  `artifactChanges.[0].artifactLocation.uri`  |  Tidak  |  URI menunjukkan lokasi artefak yang perlu diperbarui.  | 

# 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. 

# Membuat alur kerja
<a name="workflows-create-workflow"></a>

*Alur kerja* adalah prosedur otomatis yang menjelaskan cara membangun, menguji, dan menyebarkan kode Anda sebagai bagian dari sistem integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD). Alur kerja mendefinisikan serangkaian langkah, atau *tindakan*, yang harus diambil selama menjalankan alur kerja. Alur kerja juga mendefinisikan peristiwa, atau *pemicu*, yang menyebabkan alur kerja dimulai. Untuk menyiapkan alur kerja, Anda membuat *file definisi alur kerja menggunakan editor* [visual atau YAMAL CodeCatalyst ](https://docs.aws.amazon.com//codecatalyst/latest/userguide/flows.html#workflow.editors) konsol.

**Tip**  
Untuk melihat sekilas bagaimana Anda dapat menggunakan alur kerja dalam sebuah proyek, [buat proyek dengan cetak biru](https://docs.aws.amazon.com//codecatalyst/latest/userguide/projects-create.html#projects-create-console-template). Setiap cetak biru menerapkan alur kerja yang berfungsi yang dapat Anda tinjau, jalankan, dan bereksperimen.

Gunakan prosedur berikut untuk membuat alur kerja di CodeCatalyst. Alur kerja akan disimpan sebagai file YAMAL dalam `~/.codecatalyst/workflows/` folder di repositori sumber yang dipilih. Secara opsional, Anda dapat menyimpan alur kerja dalam subfolder `~/.codecatalyst/workflows/` dengan mengawali nama file alur kerja dengan nama folder saat Anda mengkomitmennya. Untuk informasi lebih lanjut, lihat petunjuk berikut.

Untuk informasi lebih lanjut tentang alur kerja, lihat [Bangun, uji, dan terapkan dengan alur kerjaBangun, uji, dan terapkan dengan alur kerja](workflow.md).

------
#### [ Visual ]<a name="workflows-create"></a>

**Untuk membuat 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 **Buat alur kerja**.

   Kotak dialog **Buat alur kerja** muncul.

1. Di bidang **repositori Sumber**, pilih repositori sumber tempat file definisi alur kerja akan berada. Jika tidak ada repositori sumber, [buat](source-repositories-create.md) satu.

1. Di bidang **Cabang**, pilih cabang tempat file definisi alur kerja akan berada.

1. Pilih **Buat**.

   Amazon CodeCatalyst menyimpan informasi repositori dan cabang dalam memori, tetapi alur kerja belum dilakukan.

1. Pilih **Visual**.

1. Bangun alur kerja:

   1. (Opsional) Dalam diagram alur kerja, pilih kotak **Sumber** dan **Pemicu.** Panel **Pemicu** muncul. Pilih **Tambah pemicu** untuk menambahkan pemicu. Untuk informasi selengkapnya, lihat [Menambahkan pemicu ke alur kerja](workflows-add-trigger-add.md).

   1. Pilih **\$1 Tindakan** (kiri atas). Katalog **Tindakan** muncul.

   1. Pilih tanda plus (**\$1**) di dalam tindakan untuk menambahkannya ke alur kerja. Gunakan panel di sebelah kanan untuk mengonfigurasi tindakan. Untuk informasi selengkapnya, lihat [Menambahkan tindakan ke alur kerja](workflows-add-action.md).

   1. (Opsional) Pilih **properti Alur Kerja** (kanan atas). Sebuah panel **properti alur kerja** muncul. Konfigurasikan mode jalankan nama alur kerja, dan hitung. Untuk informasi selengkapnya, lihat [Mengonfigurasi perilaku antrian run](workflows-configure-runs.md) dan [Mengkonfigurasi gambar komputasi dan runtime](workflows-working-compute.md).

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

1. Pilih **Commit**, dan pada kotak dialog **Commit workflow**, lakukan hal berikut:

   1. Untuk **nama file Workflow**, tinggalkan nama default atau masukkan nama Anda sendiri. File akan disimpan dalam `~/.codecatalyst/workflows/` folder di repositori sumber dan cabang yang dipilih. Anda dapat mengawali nama file dengan folder atau subfolder. Contoh:
      + Menentukan `my-workflow` (tidak ada folder) menyimpan file sebagai `~/.codecatalyst/workflows/my-workflow.yaml`
      + Menentukan `folder/subfolder/my-workflow` menyimpan file sebagai `~/.codecatalyst/workflows/folder/subfolder/my-workflow.yaml`

   1. Untuk **pesan Commit**, tinggalkan pesan default atau masukkan pesan Anda sendiri.

   1. Untuk **Repositori** dan **Cabang**, pilih repositori sumber dan cabang untuk file definisi alur kerja. Bidang ini harus diatur ke repositori dan cabang yang Anda tentukan sebelumnya di kotak dialog **Buat alur kerja**. Anda dapat mengubah repositori dan cabang sekarang, jika Anda mau.
**catatan**  
Setelah melakukan file definisi alur kerja Anda, itu tidak dapat dikaitkan dengan repositori atau cabang lain, jadi pastikan untuk memilihnya dengan hati-hati.

   1. Pilih **Komit** untuk melakukan berkas definisi alur kerja.

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

**Untuk membuat 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 **Buat alur kerja**.

   Kotak dialog **Buat alur kerja** muncul.

1. Di bidang **repositori Sumber**, pilih repositori sumber tempat file definisi alur kerja akan berada. Jika tidak ada repositori sumber, [buat](source-repositories-create.md) satu.

1. Di bidang **Cabang**, pilih cabang tempat file definisi alur kerja akan berada.

1. Pilih **Buat**.

   Amazon CodeCatalyst menyimpan informasi repositori dan cabang dalam memori, tetapi alur kerja belum dilakukan.

1. Pilih **YAMAL.**

1. Bangun alur kerja:

   1. (Opsional) Tambahkan pemicu ke kode YAMAL. Untuk informasi selengkapnya, lihat [Menambahkan pemicu ke alur kerja](workflows-add-trigger-add.md).

   1. Pilih **\$1 Tindakan** (kiri atas). Katalog **Tindakan** muncul.

   1. Pilih tanda plus (**\$1**) di dalam tindakan untuk menambahkannya ke alur kerja. Gunakan panel di sebelah kanan untuk mengonfigurasi tindakan. Untuk informasi selengkapnya, lihat [Menambahkan tindakan ke alur kerja](workflows-add-action.md).

   1. (Opsional) Pilih **properti Alur Kerja** (kanan atas). Sebuah panel **properti alur kerja** muncul. Konfigurasikan nama alur kerja, mode jalankan, dan komputasi. Untuk informasi selengkapnya, lihat [Mengonfigurasi perilaku antrian run](workflows-configure-runs.md) dan [Mengkonfigurasi gambar komputasi dan runtime](workflows-working-compute.md).

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

1. Pilih **Commit**, dan pada kotak dialog **Commit workflow**, lakukan hal berikut:

   1. Untuk **nama file Workflow**, tinggalkan nama default atau masukkan nama Anda sendiri. File akan disimpan dalam `~/.codecatalyst/workflows/` folder di repositori sumber dan cabang yang dipilih. Anda dapat mengawali nama file dengan folder atau subfolder. Contoh:
      + Menentukan `my-workflow` (tidak ada folder) menyimpan file sebagai `~/.codecatalyst/workflows/my-workflow.yaml`
      + Menentukan `folder/subfolder/my-workflow` menyimpan file sebagai `~/.codecatalyst/workflows/folder/subfolder/my-workflow.yaml`

   1. Untuk **pesan Commit**, tinggalkan pesan default atau masukkan pesan Anda sendiri.

   1. Untuk **Repositori** dan **Cabang**, pilih repositori sumber dan cabang untuk file definisi alur kerja. Bidang ini harus diatur ke repositori dan cabang yang Anda tentukan sebelumnya di kotak dialog **Buat alur kerja**. Anda dapat mengubah repositori dan cabang sekarang, jika Anda mau.
**catatan**  
Setelah melakukan file definisi alur kerja Anda, itu tidak dapat dikaitkan dengan repositori atau cabang lain, jadi pastikan untuk memilihnya dengan hati-hati.

   1. Pilih **Komit** untuk melakukan berkas definisi alur kerja.

------

# Menjalankan alur kerja
<a name="workflows-working-runs"></a>

*Operasi* adalah satu iterasi dari sebuah alur kerja. Selama menjalankan, CodeCatalyst melakukan tindakan yang ditentukan dalam file konfigurasi alur kerja dan mengeluarkan log, artefak, dan variabel terkait.

Anda dapat memulai proses secara manual, atau Anda dapat memulainya secara otomatis, melalui *pemicu alur kerja*. Contoh pemicu alur kerja mungkin adalah pengembang perangkat lunak yang mendorong komit ke cabang utama Anda.

Anda juga dapat menghentikan alur kerja secara manual di tengah pemrosesannya jika Anda memulainya secara tidak sengaja.

Jika beberapa alur kerja berjalan dimulai sekitar waktu yang sama, Anda dapat mengonfigurasi bagaimana Anda ingin proses ini diantrian. Anda dapat menggunakan perilaku antrian default, di mana proses diantrian satu demi satu dalam urutan di mana mereka dimulai, atau Anda dapat memiliki run yang lebih baru menggantikan (atau 'mengambil alih') dari yang sebelumnya untuk mempercepat proses Anda. Menyiapkan alur kerja Anda agar terjadi secara paralel, sehingga tidak ada proses menunggu yang lain, juga dimungkinkan.

Setelah memulai alur kerja, baik secara manual maupun otomatis, Anda dapat melihat status proses dan detail lainnya. Misalnya, Anda dapat melihat kapan dimulai, siapa yang dimulai, dan apakah masih berjalan.

**Topics**
+ [Memulai proses alur kerja secara manual](workflows-manually-start.md)
+ [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md)
+ [Mengkonfigurasi pemicu manual saja](workflows-manual-only.md)
+ [Menghentikan alur kerja](workflows-stop.md)
+ [Gating alur kerja berjalan](workflows-gates.md)
+ [Memerlukan persetujuan pada alur kerja berjalan](workflows-approval.md)
+ [Mengonfigurasi perilaku antrian run](workflows-configure-runs.md)
+ [Caching file antara alur kerja berjalan](workflows-caching.md)
+ [Melihat status dan detail alur kerja](workflows-view-run.md)

# Memulai proses alur kerja secara manual
<a name="workflows-manually-start"></a>

Di Amazon CodeCatalyst, Anda dapat memulai alur kerja yang dijalankan secara manual dari CodeCatalyst konsol.

Untuk informasi selengkapnya tentang alur kerja berjalan, lihat[Menjalankan alur kerja](workflows-working-runs.md).

**catatan**  
Anda juga dapat memulai alur kerja yang dijalankan secara otomatis dengan [mengonfigurasi pemicu](workflows-add-trigger.md).

**Untuk memulai alur kerja, jalankan secara manual**

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 **Jalankan**.

# Memulai alur kerja berjalan secara otomatis menggunakan pemicu
<a name="workflows-add-trigger"></a>

Anda dapat memulai CodeCatalyst alur kerja Amazon yang dijalankan secara otomatis dengan pemicu alur kerja.

*Pemicu alur kerja*, atau hanya *pemicu*, memungkinkan Anda memulai alur kerja yang berjalan secara otomatis ketika peristiwa tertentu terjadi, seperti push kode. Anda mungkin ingin mengonfigurasi pemicu untuk membebaskan pengembang perangkat lunak Anda dari keharusan memulai alur kerja yang berjalan secara manual melalui konsol. CodeCatalyst 

Anda dapat menggunakan tiga jenis pemicu:
+ **Push** - Pemicu push kode menyebabkan alur kerja dijalankan setiap kali komit didorong.
+ **Permintaan tarik** - Pemicu permintaan tarik menyebabkan alur kerja dijalankan setiap kali permintaan tarik dibuat, direvisi, atau ditutup.
+ **Jadwal** - Pemicu jadwal menyebabkan alur kerja berjalan dimulai pada jadwal yang Anda tentukan. Pertimbangkan untuk menggunakan pemicu jadwal untuk menjalankan build malam perangkat lunak Anda sehingga build terbaru siap untuk pengembang perangkat lunak Anda untuk bekerja keesokan paginya.

Anda dapat menggunakan push, pull request, dan schedule trigger sendiri atau dalam kombinasi dalam alur kerja yang sama.

Pemicu bersifat opsional—jika Anda tidak mengonfigurasinya, Anda hanya dapat memulai alur kerja secara manual.

**Tip**  
Untuk melihat pemicu beraksi, luncurkan proyek dengan cetak biru. Sebagian besar cetak biru berisi alur kerja dengan pemicu. Cari `Trigger` properti di file definisi alur kerja cetak biru. Untuk informasi selengkapnya tentang cetak biru, lihat [Membuat proyek dengan cetak biru](projects-create.md#projects-create-console-template).

**Topics**
+ [Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md)
+ [Pedoman penggunaan untuk pemicu dan cabang](workflows-add-trigger-considerations.md)
+ [Menambahkan pemicu ke alur kerja](workflows-add-trigger-add.md)

# Contoh: Pemicu dalam alur kerja
<a name="workflows-add-trigger-examples"></a>

Contoh berikut menunjukkan cara menambahkan berbagai jenis pemicu dalam file definisi CodeCatalyst alur kerja Amazon.

Untuk informasi lebih lanjut tentang menggunakan pemicu, lihat [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md).

**Topics**
+ [Contoh: Pemicu push kode sederhana](#workflows-add-trigger-examples-push-simple)
+ [Contoh: Pemicu 'push to main' sederhana](#workflows-add-trigger-examples-push-main)
+ [Contoh: Pemicu permintaan tarik sederhana](#workflows-add-trigger-examples-pull-simple)
+ [Contoh: Pemicu jadwal sederhana](#workflows-add-trigger-examples-schedule-simple)
+ [Contoh: Pemicu dengan jadwal dan cabang](#workflows-add-trigger-examples-schedule-branches)
+ [Contoh: Pemicu dengan jadwal, dorongan, dan cabang](#workflows-add-trigger-examples-schedule-push-branches)
+ [Contoh: Pemicu dengan tarikan dan cabang](#workflows-add-trigger-examples-pull-branches)
+ [Contoh: Pemicu dengan tarikan, cabang, dan acara 'CLOSED'](#workflows-add-trigger-examples-push-pull-close)
+ [Contoh: Pemicu dengan dorongan, cabang, dan file](#workflows-add-trigger-examples-push-multi)
+ [Contoh: Pemicu manual](#workflows-add-trigger-examples-manual)
+ [Contoh: Pemicu dalam pengaturan CI/CD multi-alur kerja](#workflows-add-trigger-usecases)

## Contoh: Pemicu push kode sederhana
<a name="workflows-add-trigger-examples-push-simple"></a>

Contoh berikut menunjukkan pemicu yang memulai alur kerja yang dijalankan setiap kali kode didorong ke cabang *mana pun* di repositori sumber Anda.

*Ketika pemicu ini diaktifkan, CodeCatalyst mulai menjalankan alur kerja menggunakan file di cabang yang Anda dorong (yaitu, cabang tujuan).* 

Misalnya, jika Anda mendorong komit ke`main`, CodeCatalyst mulai menjalankan alur kerja menggunakan file definisi workfow dan file sumber lainnya. `main`

Sebagai contoh lain, jika Anda mendorong komit ke`feature-branch-123`, CodeCatalyst mulai menjalankan alur kerja menggunakan file definisi workfow dan file sumber lainnya. `feature-branch-123`

```
Triggers:
  - Type: PUSH
```

**catatan**  
Jika Anda ingin alur kerja dijalankan hanya ketika Anda mendorong ke`main`, lihat[Contoh: Pemicu 'push to main' sederhana](#workflows-add-trigger-examples-push-main).

## Contoh: Pemicu 'push to main' sederhana
<a name="workflows-add-trigger-examples-push-main"></a>

Contoh berikut menunjukkan pemicu yang memulai alur kerja yang dijalankan setiap kali kode didorong ke `main` cabang—dan *hanya* cabang—di repositori sumber Anda. `main`

```
Triggers:
  - Type: PUSH
    Branches:
      - main
```

## Contoh: Pemicu permintaan tarik sederhana
<a name="workflows-add-trigger-examples-pull-simple"></a>

Contoh berikut menunjukkan pemicu yang memulai alur kerja yang dijalankan setiap kali permintaan tarik dibuat atau direvisi di repositori sumber Anda.

*Ketika pemicu ini diaktifkan, CodeCatalyst mulai menjalankan alur kerja menggunakan file definisi alur kerja dan file sumber lain di cabang yang Anda tarik (yaitu, cabang sumber).*

Misalnya, jika Anda membuat permintaan tarik dengan cabang sumber yang dipanggil `feature-123` dan cabang tujuan dipanggil`main`, CodeCatalyst mulai menjalankan alur kerja menggunakan file definisi workfow dan file sumber lainnya. `feature-123`

```
Triggers:
  - Type: PULLREQUEST
    Events:
      - OPEN
      - REVISION
```

## Contoh: Pemicu jadwal sederhana
<a name="workflows-add-trigger-examples-schedule-simple"></a>

Contoh berikut menunjukkan pemicu yang memulai alur kerja berjalan pada tengah malam (UTC\$10) setiap Senin sampai Jumat.

Ketika pemicu ini diaktifkan, CodeCatalyst mulai menjalankan alur kerja tunggal untuk setiap cabang di repositori sumber Anda yang berisi file definisi alur kerja dengan pemicu ini.

Misalnya, jika Anda memiliki tiga cabang di repositori sumber Anda,,`main`, `release-v1``feature-123`, dan masing-masing cabang ini berisi file definisi alur kerja dengan pemicu berikut, CodeCatalyst mulai tiga alur kerja berjalan: satu menggunakan file di, yang lain menggunakan file di `main``release-v1`, dan yang lain menggunakan file di. `feature-123`

```
Triggers:
  - Type: SCHEDULE
    Expression: "0 0 ? * MON-FRI *"
```

Untuk lebih banyak contoh ekspresi cron yang dapat Anda gunakan di `Expression` properti, lihat[Expression](workflow-reference.md#workflow.triggers.expression).

## Contoh: Pemicu dengan jadwal dan cabang
<a name="workflows-add-trigger-examples-schedule-branches"></a>

Contoh berikut menunjukkan pemicu yang memulai alur kerja berjalan pada pukul 18:15 (UTC\$10) setiap hari.

Ketika pemicu ini diaktifkan, CodeCatalyst mulai menjalankan alur kerja menggunakan file di `main` cabang, dan memulai proses tambahan untuk setiap cabang yang dimulai dengan`release-`.

Misalnya, jika Anda memiliki cabang bernama`main`,, `release-v1``bugfix-1`, dan `bugfix-2` di repositori sumber Anda, CodeCatalyst mulai dua alur kerja berjalan: satu menggunakan file di`main`, dan yang lain menggunakan file di. `release-v1` Itu *tidak* memulai alur kerja berjalan untuk `bugfix-1` cabang `bugfix-1` dan.

```
Triggers:
  - Type: SCHEDULE
    Expression: "15 18 * * ? *"
    Branches:
      - main
      - release\-.*
```

Untuk lebih banyak contoh ekspresi cron yang dapat Anda gunakan di `Expression` properti, lihat[Expression](workflow-reference.md#workflow.triggers.expression).

## Contoh: Pemicu dengan jadwal, dorongan, dan cabang
<a name="workflows-add-trigger-examples-schedule-push-branches"></a>

Contoh berikut menunjukkan pemicu yang memulai alur kerja berjalan pada tengah malam (UTC\$10) setiap hari, dan setiap kali kode didorong ke cabang. `main`

Dalam contoh ini:
+ Alur kerja dimulai pada tengah malam setiap hari. Proses alur kerja menggunakan file definisi alur kerja dan file sumber lainnya di cabang. `main`
+ Jalankan alur kerja juga dimulai setiap kali Anda mendorong komit ke `main` cabang. Proses alur kerja menggunakan file definisi alur kerja dan file sumber lainnya di cabang tujuan ()`main`.

```
Triggers:
  - Type: SCHEDULE
    Expression: "0 0 * * ? *"
    Branches:
      - main
  - Type: PUSH
    Branches: 
      - main
```

Untuk lebih banyak contoh ekspresi cron yang dapat Anda gunakan di `Expression` properti, lihat[Expression](workflow-reference.md#workflow.triggers.expression).

## Contoh: Pemicu dengan tarikan dan cabang
<a name="workflows-add-trigger-examples-pull-branches"></a>

Contoh berikut menunjukkan pemicu yang memulai alur kerja yang dijalankan setiap kali seseorang membuka atau memodifikasi permintaan tarik dengan cabang tujuan yang dipanggil. `main` *Meskipun cabang yang ditentukan dalam `Triggers` konfigurasi adalah`main`, alur kerja yang dijalankan akan menggunakan file definisi alur kerja dan file sumber lainnya di cabang *sumber* (yang merupakan cabang yang Anda tarik).*

```
Triggers:      
  - Type: PULLREQUEST
    Branches:
      - main
    Events:
      - OPEN
      - REVISION
```

## Contoh: Pemicu dengan tarikan, cabang, dan acara 'CLOSED'
<a name="workflows-add-trigger-examples-push-pull-close"></a>

Contoh berikut menunjukkan pemicu yang memulai alur kerja yang dijalankan setiap kali permintaan tarik ditutup pada cabang yang dimulai dengan`main`.

Dalam contoh ini:
+ Saat Anda menutup permintaan tarik dengan cabang tujuan yang dimulai`main`, alur kerja dimulai secara otomatis menggunakan file definisi alur kerja dan file sumber lainnya di cabang sumber (sekarang ditutup).
+ Jika Anda telah mengonfigurasi repositori sumber Anda untuk menghapus cabang secara otomatis setelah permintaan tarik digabungkan, cabang ini tidak akan pernah memiliki kesempatan untuk memasuki status. `CLOSED` Ini berarti bahwa cabang yang digabungkan tidak akan mengaktifkan `CLOSED` pemicu permintaan tarik. Satu-satunya cara untuk mengaktifkan `CLOSED` pemicu dalam skenario ini adalah dengan menutup permintaan tarik tanpa menggabungkannya.

```
Triggers:     
  - Type: PULLREQUEST
    Branches:
      - main.*               
    Events:
      - CLOSED
```

## Contoh: Pemicu dengan dorongan, cabang, dan file
<a name="workflows-add-trigger-examples-push-multi"></a>

Contoh berikut menunjukkan pemicu yang memulai alur kerja yang dijalankan setiap kali perubahan dilakukan pada `filename.txt` file, atau file apa pun di `src` direktori, di `main` cabang.

Ketika pemicu ini diaktifkan, CodeCatalyst mulai menjalankan alur kerja menggunakan file definisi alur kerja dan file sumber lainnya di `main` cabang.

```
Triggers:
  - Type: PUSH
    Branches:
      - main
    FilesChanged:
      - filename.txt
      - src\/.*
```

## Contoh: Pemicu manual
<a name="workflows-add-trigger-examples-manual"></a>

Untuk mengonfigurasi pemicu manual, hilangkan `Triggers` bagian dari file definisi alur kerja. Tanpa bagian ini, pengguna dipaksa untuk memulai alur kerja secara manual dengan memilih tombol **Run** di CodeCatalyst konsol. Untuk informasi selengkapnya, lihat [Memulai proses alur kerja secara manual](workflows-manually-start.md).

## Contoh: Pemicu dalam pengaturan CI/CD multi-alur kerja
<a name="workflows-add-trigger-usecases"></a>

Contoh ini menjelaskan cara mengatur pemicu saat Anda ingin menggunakan CodeCatalyst alur kerja Amazon terpisah untuk integrasi berkelanjutan (CI) dan penerapan berkelanjutan (CD).

Dalam skenario ini, Anda menyiapkan dua alur kerja:
+ **alur kerja CI — alur** kerja ini membangun dan menguji aplikasi Anda saat permintaan tarik dibuat atau direvisi.
+ **alur kerja CD — alur** kerja ini membangun dan menyebarkan aplikasi Anda saat permintaan tarik digabungkan.

File definisi **alur kerja CI** akan terlihat mirip dengan ini:

```
Triggers:      
  - Type: PULLREQUEST
    Branches:
      - main
    Events:
      - OPEN
      - REVISION
Actions:
  BuildAction:
    instructions-for-building-the-app
  TestAction:
    instructions-for-test-the-app
```

`Triggers`Kode menunjukkan untuk memulai alur kerja yang dijalankan secara otomatis setiap kali pengembang perangkat lunak membuat permintaan tarik (atau [memodifikasinya) yang](pull-requests-update.md) meminta untuk menggabungkan cabang fitur mereka ke cabang. `main` CodeCatalyst memulai alur kerja berjalan menggunakan kode sumber di cabang sumber (yang merupakan cabang fitur).

File definisi **alur kerja CD** akan terlihat mirip dengan ini:

```
Triggers:      
  - Type: PUSH
    Branches:
      - main
Actions:
  BuildAction:
    instructions-for-building-the-app
  DeployAction:
    instructions-for-deploying-the-app
```

`Triggers`Kode menunjukkan untuk memulai alur kerja secara otomatis ketika penggabungan terjadi. `main` CodeCatalyst memulai alur kerja berjalan menggunakan kode sumber di `main` cabang.

# Pedoman penggunaan untuk pemicu dan cabang
<a name="workflows-add-trigger-considerations"></a>

Bagian ini menjelaskan beberapa pedoman utama saat menyiapkan CodeCatalyst pemicu Amazon yang menyertakan cabang.

Untuk informasi lebih lanjut tentang menggunakan pemicu, lihat [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md).
+ **Pedoman 1:** Untuk pemicu permintaan push dan pull, jika Anda akan menentukan cabang, Anda harus menentukan cabang tujuan (atau 'to') dalam konfigurasi pemicu. Jangan pernah menentukan sumber (atau 'dari') cabang.

  Dalam contoh berikut, push dari cabang manapun untuk `main` mengaktifkan alur kerja.

  ```
  Triggers:
    - Type: PUSH
      Branches:
        - main
  ```

  Dalam contoh berikut, permintaan tarik dari cabang mana pun ke `main` mengaktifkan alur kerja.

  ```
  Triggers:
    - Type: PULLREQUEST
      Branches:
        - main
      Events:
        - OPEN
        - REVISION
  ```
+ **Pedoman 2:** *Untuk pemicu push, setelah alur kerja diaktifkan, alur kerja akan berjalan menggunakan file definisi alur kerja dan file sumber di cabang tujuan.*
+ **Pedoman 3:** *Untuk pemicu permintaan tarik, setelah alur kerja diaktifkan, alur kerja akan berjalan menggunakan file definisi alur kerja dan file sumber di cabang sumber (meskipun Anda menentukan cabang tujuan dalam konfigurasi pemicu).*
+ **Pedoman 4:** Pemicu yang sama persis di satu cabang mungkin tidak berjalan di cabang lain.

  Pertimbangkan pemicu dorong berikut:

  ```
  Triggers:
    - Type: PUSH
      Branches:
        - main
  ```

  Jika file definisi alur kerja yang berisi pemicu ini ada `main` dan dikloning`test`, alur kerja tidak akan pernah mulai secara otomatis menggunakan file di `test` (meskipun Anda dapat memulai alur kerja *secara manual* agar file tersebut digunakan). `test` Tinjau **Pedoman 2** untuk memahami mengapa alur kerja tidak akan pernah berjalan secara otomatis menggunakan file di. `test`

  Pertimbangkan juga pemicu permintaan tarik berikut:

  ```
  Triggers:
    - Type: PULLREQUEST
      Branches:
        - main
      Events:
        - OPEN
        - REVISION
  ```

  Jika file definisi alur kerja yang berisi pemicu ini ada di`main`, alur kerja tidak akan pernah berjalan menggunakan file di. `main` (Namun, jika Anda membuat `test` cabang dari`main`, alur kerja akan berjalan menggunakan file di`test`.) Tinjau **Pedoman 3** untuk memahami alasannya.

# Menambahkan pemicu ke alur kerja
<a name="workflows-add-trigger-add"></a>

Gunakan petunjuk berikut untuk menambahkan pemicu push, pull, atau schedule ke CodeCatalyst alur kerja Amazon Anda.

Untuk informasi lebih lanjut tentang menggunakan pemicu, lihat [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md).

------
#### [ Visual ]<a name="workflows-add-trigger-add-console"></a>

**Untuk menambahkan pemicu (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 kotak **Sumber** dan **Pemicu.**

1. Di panel konfigurasi, Pilih **Tambah pemicu**.

1. Dalam **Tambahkan pemicu** kotak dialog, berikan informasi di bidang, sebagai berikut.

    **Jenis pemicu** 

   Tentukan jenis pemicu. Anda dapat menggunakan salah satu nilai berikut:
   + **Dorong** (editor visual) atau `PUSH` (editor YAMAL)

     Pemicu push memulai alur kerja saat perubahan didorong ke repositori sumber Anda. *Workflow run akan menggunakan file di cabang yang Anda dorong (yaitu, cabang tujuan).*
   + **Permintaan tarik** (editor visual) atau `PULLREQUEST` (editor YAMG)

     Pemicu permintaan tarik memulai alur kerja saat permintaan tarik dibuka, diperbarui, atau ditutup di repositori sumber Anda. Workflow run akan menggunakan file di cabang yang Anda tarik *dari* (yaitu, cabang sumber).
   + **Jadwal** (editor visual) atau `SCHEDULE` (editor YAMG)

     Pemicu jadwal memulai alur kerja berjalan pada jadwal yang ditentukan oleh ekspresi cron yang Anda tentukan. Jalankan alur kerja terpisah akan dimulai untuk setiap cabang di repositori sumber Anda menggunakan file cabang. (Untuk membatasi cabang tempat pemicu diaktifkan, gunakan bidang **Cabang** (editor visual) atau `Branches` properti (editor YAMG).)

     Saat mengonfigurasi pemicu jadwal, ikuti panduan ini:
     + Hanya gunakan satu pemicu jadwal per alur kerja.
     + Jika Anda telah menentukan beberapa alur kerja di CodeCatalyst ruang Anda, sebaiknya Anda menjadwalkan tidak lebih dari 10 alur kerja untuk memulai secara bersamaan.
     + Pastikan Anda mengonfigurasi ekspresi cron pemicu dengan waktu yang cukup di antara proses. Untuk informasi selengkapnya, lihat [Expression](workflow-reference.md#workflow.triggers.expression).

   Sebagai contoh, silakan lihat [Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md).

    **Acara untuk permintaan tarik** 

   Bidang ini hanya muncul jika Anda memilih jenis pemicu **permintaan Tarik**.

   Tentukan jenis peristiwa permintaan tarik yang akan memulai alur kerja. Berikut ini adalah nilai yang valid:
   + **Permintaan tarik dibuat** (editor visual) atau `OPEN` (editor YAMG)

     Proses alur kerja dimulai saat permintaan tarik dibuat.
   + **Permintaan tarik ditutup** (editor visual) atau `CLOSED` (editor YAMG)

     Proses alur kerja dimulai saat permintaan tarik ditutup. Perilaku `CLOSED` acara itu rumit, dan paling baik dipahami melalui sebuah contoh. Untuk informasi selengkapnya, lihat [Contoh: Pemicu dengan tarikan, cabang, dan acara 'CLOSED'](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-pull-close).
   + **Revisi baru dibuat untuk menarik permintaan** (editor visual) atau `REVISION` (editor YAMG)

     Alur kerja dijalankan ketika revisi ke permintaan tarik dibuat. Revisi pertama dibuat saat permintaan tarik dibuat. Setelah itu, revisi baru dibuat setiap kali seseorang mendorong komit baru ke cabang sumber yang ditentukan dalam permintaan tarik. Jika Anda menyertakan `REVISION` peristiwa dalam pemicu permintaan tarik Anda, Anda dapat menghilangkan `OPEN` acara tersebut, karena `REVISION` merupakan superset dari. `OPEN`

   Anda dapat menentukan beberapa peristiwa dalam pemicu permintaan tarik yang sama.

   Sebagai contoh, lihat [Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md).

    **Jadwal** 

   Bidang ini hanya muncul jika Anda memilih jenis pemicu **Jadwal**.

   Tentukan ekspresi cron yang menjelaskan kapan Anda ingin alur kerja terjadwal Anda berjalan terjadi.

   Ekspresi cron CodeCatalyst menggunakan sintaks enam bidang berikut, di mana setiap bidang dipisahkan oleh spasi:

   *minutes* *hours* *days-of-month* *month* *days-of-week* *year*

   **Contoh ekspresi cron**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/workflows-add-trigger-add.html)

   Saat menentukan ekspresi cron di CodeCatalyst, pastikan Anda mengikuti panduan ini:
   + Tentukan ekspresi cron tunggal per `SCHEDULE` pemicu.
   + Lampirkan ekspresi cron dalam tanda kutip ganda (`"`) di editor YAMG.
   + Tentukan waktu di Coordinated Universal Time (UTC). Zona waktu lain tidak didukung.
   + Konfigurasikan setidaknya 30 menit di antara proses. Irama yang lebih cepat tidak didukung.
   + Tentukan *days-of-week* bidang *days-of-month* atau, tetapi tidak keduanya. Jika Anda menentukan nilai atau tanda bintang (`*`) di salah satu bidang, Anda harus menggunakan tanda tanya (`?`) di bidang lainnya. Tanda bintang berarti 'semua' dan tanda tanya berarti 'apa saja'.

    Untuk lebih banyak contoh ekspresi cron dan informasi tentang wildcard seperti`?`,`*`, dan`L`, lihat [referensi ekspresi Cron di Panduan](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html) Pengguna *Amazon EventBridge *. Ekspresi cron masuk EventBridge dan CodeCatalyst bekerja dengan cara yang persis sama.

   Untuk contoh pemicu jadwal, lihat[Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md).

    **Cabang** dan **pola Cabang** 

   (Opsional)

   Tentukan cabang di repositori sumber Anda yang dipantau pemicu untuk mengetahui kapan harus memulai alur kerja. Anda dapat menggunakan pola regex untuk menentukan nama cabang Anda. Misalnya, gunakan `main.*` untuk mencocokkan semua cabang yang dimulai dengan`main`.

   Cabang yang akan ditentukan berbeda tergantung pada jenis pemicu:
   + *Untuk pemicu push, tentukan cabang yang Anda dorong, yaitu cabang *tujuan*.* Satu alur kerja akan dimulai per cabang yang cocok, menggunakan file di cabang yang cocok.

     Contoh:`main.*`, `mainline`
   + *Untuk pemicu permintaan tarik, tentukan cabang yang Anda dorong, yaitu cabang *tujuan*.* Satu alur kerja akan dimulai per cabang yang cocok, menggunakan file definisi alur kerja dan file sumber di cabang **sumber** (*bukan* cabang yang cocok).

     Contoh:`main.*`,`mainline`, `v1\-.*` (cocok dengan cabang yang dimulai dengan`v1-`)
   + Untuk pemicu jadwal, tentukan cabang yang berisi file yang ingin Anda jalankan terjadwal untuk digunakan. Satu alur kerja akan dimulai per cabang yang cocok, menggunakan file definisi alur kerja dan file sumber di cabang yang cocok.

     Contoh:`main.*`, `version\-1\.0`
**catatan**  
Jika Anda *tidak* menentukan cabang, pemicu memantau semua cabang di repositori sumber Anda, dan akan memulai alur kerja menggunakan file definisi alur kerja dan file sumber di:  
Cabang yang Anda dorong (*untuk* pemicu push). Untuk informasi selengkapnya, lihat [Contoh: Pemicu push kode sederhana](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-simple).
*Cabang yang Anda tarik (untuk pemicu permintaan tarik).* Untuk informasi selengkapnya, lihat [Contoh: Pemicu permintaan tarik sederhana](workflows-add-trigger-examples.md#workflows-add-trigger-examples-pull-simple).
Semua cabang (untuk pemicu jadwal). Satu alur kerja akan dimulai per cabang di repositori sumber Anda. Untuk informasi selengkapnya, lihat [Contoh: Pemicu jadwal sederhana](workflows-add-trigger-examples.md#workflows-add-trigger-examples-schedule-simple).

   Untuk informasi lebih lanjut tentang cabang dan pemicu, lihat[Pedoman penggunaan untuk pemicu dan cabang](workflows-add-trigger-considerations.md).

   Untuk contoh lainnya, lihat [Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md).

    **File diubah** 

   Bidang ini hanya muncul jika Anda memilih jenis pemicu **permintaan **Push** atau Pull**.

   Tentukan file atau folder di repositori sumber Anda yang dipantau pemicu untuk mengetahui kapan harus memulai alur kerja. Anda dapat menggunakan ekspresi reguler untuk mencocokkan nama file atau jalur.

   Sebagai contoh, lihat [Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md).

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 pemicu (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. Tambahkan `Triggers` bagian dan properti yang mendasari menggunakan contoh berikut sebagai panduan. Untuk informasi lebih lanjut, lihat [Triggers](workflow-reference.md#triggers-reference) di[Alur kerja definisi YAMAL](workflow-reference.md).

   Pemicu push kode mungkin terlihat seperti ini:

   ```
   Triggers:
     - Type: PUSH
       Branches:
         - main
   ```

   Pemicu permintaan tarik mungkin terlihat seperti ini:

   ```
   Triggers:
     - Type: PULLREQUEST
       Branches:
         - main.*
       Events: 
         - OPEN
         - REVISION
         - CLOSED
   ```

   Pemicu jadwal mungkin terlihat seperti ini:

   ```
   Triggers:
     - Type: SCHEDULE
       Branches:
         - main.*
       # Run the workflow at 1:15 am (UTC+0) every Friday until the end of 2023
       Expression: "15 1 ? * FRI 2022-2023"
   ```

   Untuk lebih banyak contoh ekspresi cron yang dapat Anda gunakan di `Expression` properti, lihat[Expression](workflow-reference.md#workflow.triggers.expression).

   Untuk lebih banyak contoh push, pull request, dan schedule trigger, lihat[Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md).

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

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

------

# Mengkonfigurasi pemicu manual saja
<a name="workflows-manual-only"></a>

Anda dapat membatasi alur kerja sehingga hanya dapat dimulai secara manual oleh tim Anda menggunakan tombol **Run** di CodeCatalyst konsol. Untuk mengkonfigurasi fungsi ini, Anda harus menghapus `Triggers` bagian dalam file definisi alur kerja. `Triggers`Bagian ini disertakan secara default saat Anda membuat alur kerja, tetapi bagian ini opsional dan dapat dihapus.

Gunakan petunjuk berikut untuk menghapus `Triggers` bagian dalam file definisi alur kerja sehingga alur kerja hanya dapat dimulai secara manual.

Untuk informasi lebih lanjut tentang menggunakan pemicu, lihat [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md).

Untuk informasi selengkapnya tentang menjalankan alur kerja, lihat[Menjalankan alur kerja](workflows-working-runs.md).

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

**Untuk menghapus bagian 'Pemicu' (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. Pilih kotak **Sumber** dalam diagram alur kerja.

1. Di bawah **Pemicu**, pilih ikon tempat sampah untuk menghapus `Triggers` bagian dari alur kerja.

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

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

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

**Untuk menghapus bagian 'Pemicu' (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. Temukan `Triggers` bagian dan hapus.

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

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

------

# Menghentikan alur kerja
<a name="workflows-stop"></a>

Gunakan prosedur berikut untuk menghentikan alur kerja yang sedang berlangsung. Anda mungkin ingin berhenti berlari jika dimulai secara tidak sengaja.

Saat Anda menghentikan proses alur kerja, CodeCatalyst tunggu tindakan yang sedang berlangsung selesai sebelum menandai proses sebagai **Berhenti di konsol**. CodeCatalyst Setiap tindakan yang tidak memiliki kesempatan untuk memulai tidak akan dimulai, dan akan ditandai sebagai **Ditinggalkan**.

**catatan**  
Jika run antri (yaitu, tidak ada tindakan yang sedang berlangsung), maka run segera dihentikan.

Untuk informasi selengkapnya tentang alur kerja berjalan, lihat[Menjalankan alur kerja](workflows-working-runs.md).

**Untuk menghentikan 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. Di bawah **Alur kerja**, pilih **Runs** dan pilih run dalam proses dari daftar.

1. Pilih **Berhenti**.

# Gating alur kerja berjalan
<a name="workflows-gates"></a>

*Gate* adalah komponen alur kerja yang dapat Anda gunakan untuk mencegah alur kerja berjalan kecuali kondisi tertentu terpenuhi. Contoh gerbang adalah gerbang **Persetujuan** tempat pengguna harus mengirimkan persetujuan di CodeCatalyst konsol sebelum proses alur kerja diizinkan untuk dilanjutkan.

Anda dapat menambahkan gerbang di antara urutan tindakan dalam alur kerja, atau sebelum tindakan pertama (yang berjalan segera setelah **Sumber** diunduh). Anda juga dapat menambahkan gerbang setelah tindakan terakhir, jika Anda perlu melakukannya.

Untuk informasi selengkapnya tentang alur kerja berjalan, lihat[Menjalankan alur kerja](workflows-working-runs.md).

**Topics**
+ [Jenis gerbang](#workflows-gates-types)
+ [Bisakah saya mengatur gerbang untuk berjalan secara paralel dengan tindakan lain?](#workflows-approval-parallel)
+ [Bisakah saya menggunakan gerbang untuk mencegah alur kerja berjalan?](#workflows-gates-prevent)
+ [Keterbatasan gerbang](#workflows-gate-limitations)
+ [Menambahkan gerbang ke alur kerja](workflows-gates-add.md)
+ [Gerbang dan tindakan sekuensing](workflows-gates-depends-on.md)
+ [Menentukan versi gerbang](workflows-gates-version.md)

## Jenis gerbang
<a name="workflows-gates-types"></a>

Saat ini, Amazon CodeCatalyst mendukung satu jenis gerbang: gerbang **Persetujuan**. Untuk informasi selengkapnya, lihat [Memerlukan persetujuan pada alur kerja berjalan](workflows-approval.md).

## Bisakah saya mengatur gerbang untuk berjalan secara paralel dengan tindakan lain?
<a name="workflows-approval-parallel"></a>

Tidak. Gates hanya bisa berjalan sebelum atau sesudah tindakan. Untuk informasi selengkapnya, lihat [Gerbang dan tindakan sekuensing](workflows-gates-depends-on.md).

## Bisakah saya menggunakan gerbang untuk mencegah alur kerja berjalan?
<a name="workflows-gates-prevent"></a>

Ya, dengan kualifikasi.

Anda dapat mencegah alur kerja *menjalankan tugas*, yang sedikit berbeda dari mencegahnya *memulai*.

Untuk mencegah alur kerja melakukan tugas, tambahkan gerbang sebelum tindakan pertama dalam alur kerja. Dalam skenario ini, alur kerja *akan dimulai —artinya akan* mengunduh file repositori sumber Anda—tetapi akan dicegah melakukan tugas sampai gerbang dibuka kuncinya.

**catatan**  
Alur kerja yang dimulai dan kemudian diblokir oleh gerbang masih dihitung terhadap *jumlah maksimum alur kerja bersamaan berjalan per kuota ruang* dan kuota lainnya. Untuk memastikan bahwa Anda tidak melebihi kuota alur kerja, pertimbangkan untuk menggunakan pemicu alur kerja untuk memulai alur kerja secara kondisional alih-alih menggunakan gerbang. Pertimbangkan juga untuk menggunakan aturan persetujuan permintaan tarik alih-alih gerbang. Untuk informasi selengkapnya tentang kuota, pemicu, dan aturan persetujuan permintaan tarik, lihat [Kuota untuk alur kerja di CodeCatalyst](workflows-quotas.md)[Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md), dan. [Mengelola persyaratan untuk menggabungkan permintaan tarik dengan aturan persetujuan](source-pull-requests-approval-rules.md)

## Keterbatasan gerbang
<a name="workflows-gate-limitations"></a>

Gates memiliki batasan sebagai berikut:
+ Gates tidak dapat digunakan bersama dengan fitur berbagi komputasi. Untuk informasi selengkapnya tentang fitur ini, lihat [Berbagi komputasi di seluruh tindakan](compute-sharing.md).
+ Gates tidak dapat digunakan dalam kelompok aksi. Untuk informasi selengkapnya tentang grup aksi, lihat[Mengelompokkan tindakan ke dalam kelompok aksi](workflows-group-actions.md).

# Menambahkan gerbang ke alur kerja
<a name="workflows-gates-add"></a>

Di Amazon CodeCatalyst, Anda dapat menambahkan gerbang ke alur kerja untuk mencegahnya berjalan kecuali kondisi tertentu terpenuhi. Gunakan petunjuk berikut untuk menambahkan gerbang ke alur kerja.

Untuk informasi lebih lanjut tentang gerbang, lihat[Gating alur kerja berjalan](workflows-gates.md).

**Untuk menambah dan mengkonfigurasi gerbang**

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 sebelah kiri, pilih **Gates**.

1. Di katalog gerbang, cari gerbang, lalu pilih tanda plus (**\$1**) untuk menambahkan gerbang ke alur kerja Anda.

1. Konfigurasikan gerbang. Pilih **Visual** untuk menggunakan editor visual, atau **YAMAL untuk** menggunakan editor YAMAL. Untuk petunjuk terperinci, lihat:
   + [Menambahkan gerbang 'Persetujuan'](workflows-approval-add.md)

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

1. Pilih **Komit** untuk melakukan perubahan Anda.

# Gerbang dan tindakan sekuensing
<a name="workflows-gates-depends-on"></a>

Di Amazon CodeCatalyst, Anda dapat mengatur gerbang untuk dijalankan sebelum atau setelah tindakan alur kerja, grup tindakan, atau gerbang. Misalnya, Anda dapat mengatur `Approval` gerbang untuk dijalankan sebelum `Deploy` tindakan. Dalam hal ini, `Deploy` tindakan dikatakan *tergantung pada* `Approval` gerbang.

Untuk mengatur dependensi antara gerbang dan tindakan, konfigurasikan properti **Depend on** gate atau action. Untuk petunjuk, silakan lihat [Menyiapkan dependensi antar tindakan](workflows-depends-on-set-up.md). Instruksi yang direferensikan mengacu pada *tindakan* alur kerja tetapi berlaku sama untuk gerbang. 

Untuk contoh cara mengatur **Tergantung pada** properti dengan gerbang, lihat[Contoh: Gerbang 'Persetujuan'](workflows-approval-example.md).

Untuk informasi lebih lanjut tentang gerbang, lihat[Gating alur kerja berjalan](workflows-gates.md).

Untuk informasi selengkapnya tentang tindakan alur kerja, lihat[Mengkonfigurasi tindakan alur kerja](workflows-actions.md).

# Menentukan versi gerbang
<a name="workflows-gates-version"></a>

Secara default, saat Anda menambahkan gerbang ke alur kerja, CodeCatalyst tambahkan versi lengkap ke file definisi alur kerja menggunakan format:

`vmajor.minor.patch` 

Sebagai contoh:

```
My-Gate:
  Identifier: aws/approval@v1
```

Anda dapat memperpanjang versi sehingga alur kerja menggunakan versi mayor atau minor tertentu dari gerbang. Untuk petunjuk, silakan lihat [Menentukan versi tindakan yang akan digunakan](workflows-action-versions.md). Topik yang direferensikan mengacu pada tindakan alur kerja tetapi berlaku sama untuk gerbang.

Untuk informasi lebih lanjut tentang gerbang di CodeCatalyst, lihat[Gating alur kerja berjalan](workflows-gates.md).

# Memerlukan persetujuan pada alur kerja berjalan
<a name="workflows-approval"></a>

Anda dapat mengonfigurasi alur kerja untuk meminta persetujuan sebelum dapat dilanjutkan. Untuk mencapai ini, Anda harus menambahkan [gerbang](workflows-gates.md) **Persetujuan** ke alur kerja. *Gerbang Persetujuan* mencegah alur kerja berjalan hingga pengguna atau kumpulan pengguna mengirimkan satu atau beberapa persetujuan di konsol. CodeCatalyst Setelah semua persetujuan diberikan, gerbang 'tidak terkunci' dan alur kerja dijalankan diizinkan untuk dilanjutkan.

Gunakan gerbang **Persetujuan** dalam alur kerja Anda untuk memberi kesempatan kepada tim pengembangan, operasi, dan kepemimpinan Anda untuk meninjau perubahan Anda sebelum diterapkan ke khalayak yang lebih luas.

Untuk informasi selengkapnya tentang alur kerja berjalan, lihat[Menjalankan alur kerja](workflows-working-runs.md).

**Topics**
+ [Bagaimana cara membuka gerbang persetujuan?](#workflows-approval-conditions)
+ [Kapan menggunakan gerbang 'Persetujuan'](#workflows-approval-when)
+ [Siapa yang bisa memberikan persetujuan?](#workflows-approval-who)
+ [Bagaimana cara memberi tahu pengguna bahwa persetujuan diperlukan?](#workflows-approval-notify-methods)
+ [Dapatkah saya menggunakan gerbang 'Persetujuan' untuk mencegah alur kerja berjalan?](#workflows-approval-prevent)
+ [Bagaimana cara kerja persetujuan alur kerja dengan mode lari antrian, digantikan, dan paralel?](#workflows-approval-run-mode)
+ [Contoh: Gerbang 'Persetujuan'](workflows-approval-example.md)
+ [Menambahkan gerbang 'Persetujuan'](workflows-approval-add.md)
+ [Mengkonfigurasi pemberitahuan persetujuan](workflows-approval-notify.md)
+ [Menyetujui atau menolak alur kerja](workflows-approval-approve.md)
+ [Gerbang 'Persetujuan' YAMAL](approval-ref.md)

## Bagaimana cara membuka gerbang persetujuan?
<a name="workflows-approval-conditions"></a>

Untuk membuka gerbang **Persetujuan**, *semua* ketentuan berikut harus dipenuhi:
+ **Kondisi 1**: Jumlah persetujuan yang diperlukan harus diserahkan. Jumlah persetujuan yang diperlukan dapat dikonfigurasi, dan setiap pengguna diizinkan untuk mengirimkan satu persetujuan.
+ **Kondisi 2**: Semua persetujuan harus diserahkan sebelum waktu gerbang habis. Waktu gerbang habis 14 hari setelah diaktifkan. Periode ini tidak dapat dikonfigurasi.
+ **Kondisi 3**: Tidak ada yang harus menolak alur kerja yang dijalankan. Penolakan tunggal akan menyebabkan alur kerja berjalan gagal.
+ **Kondisi 4**: (Hanya berlaku jika Anda menggunakan mode lari yang digantikan.) Lari tidak boleh digantikan oleh lari nanti. Untuk informasi selengkapnya, lihat [Bagaimana cara kerja persetujuan alur kerja dengan mode lari antrian, digantikan, dan paralel?](#workflows-approval-run-mode).

Jika salah satu kondisi tidak terpenuhi, CodeCatalyst hentikan alur kerja dan atur status run ke **Gagal** (dalam kasus **Kondisi 1** hingga **3**) atau **Digantikan** (dalam kasus **Kondisi** 4).

## Kapan menggunakan gerbang 'Persetujuan'
<a name="workflows-approval-when"></a>

Biasanya, Anda akan menggunakan gerbang **Persetujuan** dalam alur kerja yang menyebarkan aplikasi dan sumber daya lainnya ke server produksi atau lingkungan di mana standar kualitas harus divalidasi. Dengan menempatkan gerbang sebelum penyebaran ke produksi, Anda memberi pengulas kesempatan untuk memvalidasi revisi perangkat lunak baru Anda sebelum tersedia untuk umum. 

## Siapa yang bisa memberikan persetujuan?
<a name="workflows-approval-who"></a>

Setiap pengguna yang merupakan anggota proyek Anda dan yang memiliki peran **Kontributor** atau **administrator Proyek** dapat memberikan persetujuan. Pengguna dengan peran **administrator Space** yang termasuk dalam ruang proyek Anda juga dapat memberikan persetujuan.

**catatan**  
Pengguna dengan peran **Peninjau** tidak dapat memberikan persetujuan.

## Bagaimana cara memberi tahu pengguna bahwa persetujuan diperlukan?
<a name="workflows-approval-notify-methods"></a>

Untuk memberi tahu pengguna bahwa persetujuan diperlukan, Anda harus:
+  CodeCatalyst Kirimi mereka pemberitahuan Slack. Untuk informasi selengkapnya, lihat [Mengkonfigurasi pemberitahuan persetujuan](workflows-approval-notify.md).
+ Buka halaman di CodeCatalyst konsol tempat tombol **Setujui** dan **Tolak** berada, dan tempel URL halaman itu ke aplikasi email atau pesan yang ditujukan kepada pemberi persetujuan. Untuk informasi selengkapnya tentang cara menavigasi ke halaman ini, lihat[Menyetujui atau menolak alur kerja](workflows-approval-approve.md).

## Dapatkah saya menggunakan gerbang 'Persetujuan' untuk mencegah alur kerja berjalan?
<a name="workflows-approval-prevent"></a>

Ya, dengan kualifikasi. Untuk informasi selengkapnya, lihat [Bisakah saya menggunakan gerbang untuk mencegah alur kerja berjalan?](workflows-gates.md#workflows-gates-prevent).

## Bagaimana cara kerja persetujuan alur kerja dengan mode lari antrian, digantikan, dan paralel?
<a name="workflows-approval-run-mode"></a>

[Saat menggunakan mode lari antrian, digantikan, atau paralel, gerbang **Persetujuan** bekerja dengan cara yang mirip dengan tindakan.](workflows-actions.md) Kami menyarankan membaca[Tentang mode lari antrian](workflows-configure-runs.md#workflows-configure-runs-queued),[Tentang mode lari yang digantikan](workflows-configure-runs.md#workflows-configure-runs-superseded), [Tentang mode parallel run](workflows-configure-runs.md#workflows-configure-runs-parallel) bagian untuk membiasakan diri dengan mode run ini. Setelah Anda memiliki pemahaman dasar tentang mereka, kembali ke bagian ini untuk mencari tahu bagaimana mode run ini bekerja ketika gerbang **Persetujuan** hadir.

Ketika gerbang **Persetujuan** hadir, proses diproses sebagai berikut:
+ Jika Anda menggunakan [mode lari antrian, run akan mengantri](workflows-configure-runs.md#workflows-configure-runs-queued) di belakang run yang saat ini menunggu persetujuan di gerbang. Ketika gerbang itu menjadi tidak terkunci (yaitu, semua persetujuan telah diberikan), proses berikutnya dalam antrian maju ke gerbang, dan menunggu persetujuan. Proses ini berlanjut dengan proses antrian yang diproses melalui gerbang. one-by-one [Figure 1](#figure-1-workflow-queued-run-mode-ma)menggambarkan proses ini.
+ Jika Anda menggunakan [mode run yang digantikan](workflows-configure-runs.md#workflows-configure-runs-superseded), perilakunya sama dengan mode lari antrian, kecuali bahwa alih-alih menjalankan menumpuk dalam antrian di gerbang, proses yang lebih baru menggantikan (mengambil alih dari) proses sebelumnya. Tidak ada antrian, dan lari apa pun yang saat ini menunggu di gerbang untuk persetujuan akan dibatalkan dan digantikan oleh proses yang lebih baru. [Figure 2](#figure-2-workflow-superseded-run-mode-ma)menggambarkan proses ini.
+ Jika Anda menggunakan [mode parallel run, run](workflows-configure-runs.md#workflows-configure-runs-parallel) start secara paralel dan tidak ada bentuk antrian. Setiap proses diproses oleh gerbang segera karena tidak ada jalan di depannya. [Figure 3](#figure-3-workflow-parallel-run-mode-ma)menggambarkan proses ini.

**Gambar 1****: 'Mode lari antrian' dan gerbang Persetujuan**

![\[Cara kerja gerbang 'Persetujuan' dengan 'mode lari antrian'\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/flows/runmode-queued-ma.png)


**Gambar 2****: 'Mode lari yang digantikan' dan gerbang Persetujuan**

![\[Cara kerja gerbang 'Persetujuan' dengan 'mode run yang digantikan'\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/flows/runmode-superseded-ma.png)


**Gambar 3****: 'Mode lari paralel' dan gerbang Persetujuan**

![\[Cara kerja gerbang 'Persetujuan' dengan 'mode lari paralel'\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/flows/runmode-parallel-ma.png)


# Contoh: Gerbang 'Persetujuan'
<a name="workflows-approval-example"></a>

Contoh berikut menunjukkan cara menambahkan gerbang **Persetujuan** yang disebut `Approval_01` antara dua tindakan yang disebut`Staging`, dan`Production`. `Staging`Aksi berjalan pertama, `Approval_01` gerbang kedua, dan `Production` aksi terakhir. `Production`Tindakan hanya berjalan jika `Approval_01` gerbang tidak terkunci. `DependsOn`Properti memastikan bahwa`Staging`,`Approval_01`, dan `Production` fase berjalan dalam urutan berurutan.

Untuk informasi selengkapnya tentang gerbang **Persetujuan**, lihat[Memerlukan persetujuan pada alur kerja berjalan](workflows-approval.md).

```
Actions:
  Staging: # Deploy to a staging server
    Identifier: aws/ecs-deploy@v1
    Configuration:
    ...       
  Approval_01:
    Identifier: aws/approval@v1
    DependsOn:
      - Staging
    Configuration:
      ApprovalsRequired: 2 
  Production: # Deploy to a production server
    Identifier: aws/ecs-deploy@v1
    DependsOn:
      - Approval_01
    Configuration:
    ...
```

# Menambahkan gerbang 'Persetujuan'
<a name="workflows-approval-add"></a>

Untuk mengonfigurasi alur kerja agar memerlukan persetujuan, Anda harus menambahkan gerbang **Persetujuan** ke alur kerja. Gunakan petunjuk berikut untuk menambahkan gerbang **Persetujuan** ke alur kerja Anda.

Untuk informasi lebih lanjut tentang gerbang ini, lihat[Memerlukan persetujuan pada alur kerja berjalan](workflows-approval.md).

------
#### [ Visual ]<a name="workflows-add-trigger-add-console"></a>

**Untuk menambahkan gerbang 'Persetujuan' ke alur kerja (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. Di kiri atas, pilih **Gates**.

1. Di katalog **Gates**, di **Approval**, pilih tanda plus (**\$1**).

1. Pilih **Input**, dan di bidang **Tergantung pada**, lakukan hal berikut.

   Tentukan tindakan, grup tindakan, atau gerbang yang harus berjalan dengan sukses agar gerbang ini berjalan. Secara default, saat Anda menambahkan gerbang ke alur kerja, gerbang diatur untuk bergantung pada tindakan terakhir dalam alur kerja Anda. Jika Anda menghapus properti ini, gerbang tidak akan tergantung pada apa pun, dan akan berjalan terlebih dahulu, sebelum tindakan lain.
**catatan**  
Gerbang harus dikonfigurasi untuk dijalankan sebelum atau sesudah tindakan, grup tindakan, atau gerbang. Itu tidak dapat diatur untuk berjalan secara paralel dengan tindakan lain, kelompok tindakan, dan gerbang.

   Untuk informasi selengkapnya tentang **Tergantung pada** fungsionalitas, lihat[Gerbang dan tindakan sekuensing](workflows-gates-depends-on.md).

1. Pilih tab **Konfigurasi**.

1. Di bidang **nama Gerbang**, lakukan hal berikut.

   Tentukan nama yang ingin Anda berikan gerbang. Semua nama gerbang harus unik dalam alur kerja. Nama gerbang 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 gerbang.

1. (Opsional) Di bidang **Jumlah persetujuan**, lakukan hal berikut.

   Tentukan jumlah minimum persetujuan yang diperlukan untuk membuka gerbang **Persetujuan**. Minimal adalah`1`. Maksimal adalah`2`. Jika dihilangkan, default-nya adalah `1`.
**catatan**  
Jika Anda ingin menghilangkan `ApprovalsRequired` properti, hapus `Configuration` bagian gerbang dari file definisi alur kerja.

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 gerbang 'Persetujuan' ke alur kerja (editor YAMG)**

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. Tambahkan `Approval` bagian dan properti yang mendasari menggunakan contoh berikut sebagai panduan. Untuk informasi lebih lanjut, lihat [Gerbang 'Persetujuan' YAMAL](approval-ref.md) di[Alur kerja definisi YAMAL](workflow-reference.md).

   ```
   Actions:
     MyApproval_01:
       Identifier: aws/approval@v1
       DependsOn:
         - PreviousAction
       Configuration:
         ApprovalsRequired: 2
   ```

   Untuk contoh lain, lihat[Contoh: Gerbang 'Persetujuan'](workflows-approval-example.md).

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

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

------

# Mengkonfigurasi pemberitahuan persetujuan
<a name="workflows-approval-notify"></a>

Anda dapat CodeCatalyst mengirim pemberitahuan ke saluran Slack yang memberi tahu pengguna bahwa alur kerja berjalan memerlukan persetujuan. Pengguna melihat notifikasi dan mengklik tautan di dalamnya. Tautan membawa mereka ke halaman CodeCatalyst persetujuan di mana mereka dapat menyetujui atau menolak alur kerja.

Anda juga dapat mengonfigurasi notifikasi untuk memberi tahu pengguna bahwa alur kerja telah disetujui, ditolak, atau bahwa permintaan persetujuan telah kedaluwarsa.

Gunakan petunjuk berikut untuk mengatur notifikasi Slack.

**Sebelum Anda mulai**  
Pastikan Anda telah menambahkan gerbang **Persetujuan** ke alur kerja Anda. Untuk informasi selengkapnya, lihat [Menambahkan gerbang 'Persetujuan'](workflows-approval-add.md).

**Untuk mengirim pemberitahuan persetujuan alur kerja ke saluran Slack**

1. Konfigurasikan CodeCatalyst dengan Slack. Untuk informasi selengkapnya, lihat [Memulai dengan notifikasi Slack](getting-started-notifications.md).

1. Dalam CodeCatalyst proyek yang berisi alur kerja yang memerlukan persetujuan, aktifkan notifikasi, jika belum diaktifkan. Untuk mengaktifkan notifikasi:

   1. Arahkan ke proyek Anda dan di panel navigasi, pilih **Pengaturan proyek**.

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

   1. Di **acara Pemberitahuan**, pilih **Edit notifikasi**.

   1. Aktifkan **persetujuan alur kerja tertunda** dan pilih saluran Slack tempat CodeCatalyst akan mengirim notifikasi. 

   1. (Opsional) Aktifkan notifikasi tambahan untuk memberi tahu orang tentang persetujuan yang disetujui, ditolak, dan kedaluwarsa. **Anda dapat mengaktifkan **Workflow run approved**, **Workflow run ditolak**, **Persetujuan alur kerja digantikan, dan persetujuan** alur kerja habis.** Di sebelah setiap notifikasi, pilih saluran Slack tempat CodeCatalyst akan mengirim notifikasi.

   1. Pilih **Simpan**.

# Menyetujui atau menolak alur kerja
<a name="workflows-approval-approve"></a>

Alur kerja yang menyertakan gerbang **Persetujuan** harus disetujui atau ditolak. Pengguna dapat memberikan persetujuan atau penolakan mereka mulai dari:
+  CodeCatalyst konsol
+ tautan yang disediakan oleh anggota tim
+ pemberitahuan Slack otomatis

Setelah pengguna memberikan persetujuan atau penolakan mereka, keputusan ini tidak dapat dibatalkan.

**catatan**  
Hanya pengguna tertentu yang dapat menyetujui atau menolak alur kerja yang dijalankan. Untuk informasi selengkapnya, lihat [Siapa yang bisa memberikan persetujuan?](workflows-approval.md#workflows-approval-who).

**Sebelum kamu memulai**  
Pastikan Anda telah menambahkan gerbang **Persetujuan** ke alur kerja Anda. Untuk informasi selengkapnya, lihat [Menambahkan gerbang 'Persetujuan'](workflows-approval-add.md).

**Untuk menyetujui atau menolak alur kerja yang dijalankan mulai dari konsol CodeCatalyst**

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 kotak yang mewakili gerbang **Persetujuan**.

   Panel samping muncul.
**catatan**  
Pada titik ini, Anda dapat mengirim URL halaman ini ke pemberi persetujuan lain jika Anda mau.

1. Di bawah **keputusan Tinjau**, pilih **Menyetujui** atau **Tolak**.

1. (Opsional) Di **Komentar - opsional**, masukkan komentar yang menunjukkan mengapa Anda menyetujui atau menolak alur kerja berjalan.

1. Pilih **Kirim**.

**Untuk menyetujui atau menolak alur kerja yang dimulai dari tautan yang disediakan oleh anggota tim**

1. Pilih tautan yang dikirimkan kepada Anda oleh anggota tim Anda. (Anda dapat meminta anggota tim Anda membaca prosedur sebelumnya untuk mendapatkan tautan.)

1. Masuk ke CodeCatalyst, jika ditanya.

   Anda diarahkan ke halaman persetujuan jalankan alur kerja.

1. Di bawah **keputusan Tinjau**, pilih **Menyetujui** atau **Tolak**.

1. (Opsional) Di **Komentar - opsional**, masukkan komentar yang menunjukkan mengapa Anda menyetujui atau menolak alur kerja berjalan.

1. Pilih **Kirim**.

**Untuk menyetujui atau menolak alur kerja yang dimulai dari pemberitahuan Slack otomatis**

1. Pastikan notifikasi Slack sudah diatur. Lihat [Mengkonfigurasi pemberitahuan persetujuan](workflows-approval-notify.md).

1. Di Slack, di saluran tempat pemberitahuan persetujuan dikirim, pilih tautan dalam pemberitahuan persetujuan.

1. Masuk ke CodeCatalyst, jika ditanya.

   Anda diarahkan ke halaman jalankan alur kerja.

1. Dalam diagram alur kerja, pilih gerbang persetujuan.

1. Di bawah **keputusan Tinjau**, pilih **Menyetujui** atau **Tolak**.

1. (Opsional) Di **Komentar - opsional**, masukkan komentar yang menunjukkan mengapa Anda menyetujui atau menolak alur kerja berjalan.

1. Pilih **Kirim**.

# Gerbang 'Persetujuan' YAMAL
<a name="approval-ref"></a>

Berikut ini adalah definisi YAMAL dari gerbang **Persetujuan**. Untuk mempelajari cara menggunakan gerbang ini, lihat[Memerlukan persetujuan pada alur kerja berjalan](workflows-approval.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 'Approval' gate definition starts here.    
  Approval: 
    Identifier: aws/approval@v1
    DependsOn:
      - another-action
    Configuration:
      ApprovalsRequired: number
```

## Approval
<a name="approval.name"></a>

(Diperlukan)

Tentukan nama yang ingin Anda berikan gerbang. Semua nama gerbang harus unik dalam alur kerja. Nama gerbang 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 gerbang.

Default: `Approval_nn`.

UI yang sesuai: Tab konfigurasi/nama **Gerbang**

## Identifier
<a name="approval.identifier"></a>

(*Approval*/**Identifier**)

(Diperlukan)

Mengidentifikasi gerbang. Gerbang **Persetujuan** mendukung versi`1.0.0`. Jangan mengubah properti ini kecuali Anda ingin mempersingkat versinya. Untuk informasi selengkapnya, lihat [Menentukan versi tindakan yang akan digunakan](workflows-action-versions.md).

Default: `aws/approval@v1`.

**UI yang sesuai: Diagram alur Approval kerja/\$1nn/ aws/persetujuan @v1 label**

## DependsOn
<a name="approval.dependson"></a>

(*Approval*/**DependsOn**)

(Opsional)

Tentukan tindakan, grup tindakan, atau gerbang yang harus berjalan dengan sukses agar gerbang ini berjalan. Secara default, saat Anda menambahkan gerbang ke alur kerja, gerbang diatur untuk bergantung pada tindakan terakhir dalam alur kerja Anda. Jika Anda menghapus properti ini, gerbang tidak akan tergantung pada apa pun, dan akan berjalan terlebih dahulu, sebelum tindakan lain.

**catatan**  
Gerbang harus dikonfigurasi untuk dijalankan sebelum atau sesudah tindakan, grup tindakan, atau gerbang. Itu tidak dapat diatur untuk berjalan secara paralel dengan tindakan lain, kelompok tindakan, dan gerbang.

Untuk informasi selengkapnya tentang **Tergantung pada** fungsionalitas, lihat[Gerbang dan tindakan sekuensing](workflows-gates-depends-on.md).

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

## Configuration
<a name="approval.configuration"></a>

(*Approval*/**Configuration**)

(Opsional)

Bagian di mana Anda dapat menentukan properti konfigurasi gerbang.

UI yang sesuai: Tab **konfigurasi**

## ApprovalsRequired
<a name="approval.approvals.required"></a>

(*Approval*/Configuration/**ApprovalsRequired**)

(Opsional)

Tentukan jumlah minimum persetujuan yang diperlukan untuk membuka gerbang **Persetujuan**. Minimal adalah`1`. Maksimal adalah`2`. Jika dihilangkan, default-nya adalah `1`.

**catatan**  
Jika Anda ingin menghilangkan `ApprovalsRequired` properti, hapus `Configuration` bagian gerbang dari file definisi alur kerja.

UI yang sesuai: Tab **konfigurasi/Jumlah persetujuan**

# Mengonfigurasi perilaku antrian run
<a name="workflows-configure-runs"></a>

Secara default di Amazon CodeCatalyst, ketika beberapa alur kerja berjalan terjadi pada saat yang sama, CodeCatalyst mengantri, dan memprosesnya satu per satu, dalam urutan dimulai. Anda dapat mengubah perilaku default ini dengan menentukan *mode run*. Ada beberapa mode lari:
+ (Default) Mode lari antrian — CodeCatalyst proses berjalan satu per satu
+ Mode lari yang digantikan - CodeCatalyst proses berjalan satu per satu, dengan proses yang lebih baru menyalip yang lebih lama
+ Parallel run mode — CodeCatalyst proses berjalan secara paralel

Untuk informasi selengkapnya tentang alur kerja berjalan, lihat[Menjalankan alur kerja](workflows-working-runs.md).

**Topics**
+ [Tentang mode lari antrian](#workflows-configure-runs-queued)
+ [Tentang mode lari yang digantikan](#workflows-configure-runs-superseded)
+ [Tentang mode parallel run](#workflows-configure-runs-parallel)
+ [Mengkonfigurasi mode lari](#workflows-configure-runs-configure)

## Tentang mode lari antrian
<a name="workflows-configure-runs-queued"></a>

Dalam *mode lari antrian*, proses berjalan terjadi secara seri, dengan menunggu berjalan membentuk antrian.

Antrian terbentuk di titik masuk ke tindakan dan grup tindakan, sehingga Anda dapat memiliki *beberapa antrian dalam alur kerja yang sama (lihat*). [Figure 1](#figure-1-workflow-queued-run-mode) Ketika lari antrian memasuki suatu tindakan, tindakan terkunci dan tidak ada jalan lain yang bisa masuk. Ketika run selesai dan keluar dari aksi, aksi menjadi tidak terkunci dan siap untuk menjalankan berikutnya.

[Figure 1](#figure-1-workflow-queued-run-mode)mengilustrasikan alur kerja yang dikonfigurasi dalam mode lari antrian. Ini menunjukkan:
+ Tujuh berjalan bekerja dengan cara mereka melalui alur kerja.
+ Dua antrian: satu di luar entri ke sumber input (**Repo: main**), dan satu di luar entri ke tindakan. **BuildTestActionGroup**
+ Dua blok terkunci: sumber input (**Repo: Main**) dan. **BuildTestActionGroup** 

Berikut adalah bagaimana hal-hal akan terjadi saat alur kerja menjalankan pemrosesan selesai:
+ **Ketika **Run-4D444** selesai mengkloning repositori sumber, itu akan keluar dari sumber input dan bergabung dengan antrian di belakang Run-3C333.** Kemudian, **Run-5E555** akan masuk ke sumber input.
+ Ketika **Run-1A111** selesai membangun dan menguji, itu akan keluar dari tindakan dan memasuki tindakan. **BuildTestActionGroup**DeployAction**** Kemudian, **Run-2B222** akan memasuki aksi. **BuildTestActionGroup**

**Gambar 1**: Alur kerja yang dikonfigurasi dalam 'mode lari antrean'

![\[Alur kerja yang dikonfigurasi dalam 'mode lari antrean'\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/flows/RunMode-Queued.png)


Gunakan mode lari antrian jika:
+ **Anda ingin menjaga one-to-one hubungan antara fitur dan proses — fitur ini dapat dikelompokkan saat menggunakan mode yang diganti.** Misalnya, saat Anda menggabungkan fitur 1 di komit 1, jalankan 1 dimulai, dan saat Anda menggabungkan fitur 2 di komit 2, jalankan 2 dimulai, dan seterusnya. Jika Anda menggunakan mode yang digantikan alih-alih mode antrian, fitur Anda (dan komit) akan dikelompokkan bersama dalam proses yang menggantikan yang lain.
+ **Anda ingin menghindari kondisi balapan dan masalah tak terduga yang mungkin terjadi saat menggunakan mode paralel**. Misalnya, jika dua pengembang perangkat lunak, Wang dan Saanvi, memulai alur kerja berjalan pada waktu yang kira-kira bersamaan untuk menyebarkan ke cluster Amazon ECS, proses Wang mungkin memulai tes integrasi pada cluster sementara menjalankan Saanvi menyebarkan kode aplikasi baru ke cluster, menyebabkan tes Wang gagal atau menguji kode yang salah. Sebagai contoh lain, Anda mungkin memiliki target yang tidak memiliki mekanisme penguncian, dalam hal ini kedua proses dapat menimpa perubahan satu sama lain dengan cara yang tidak terduga.
+ **Anda ingin membatasi beban pada** sumber daya komputasi yang CodeCatalyst digunakan untuk memproses proses Anda. Misalnya, jika Anda memiliki tiga tindakan dalam alur kerja Anda, Anda dapat memiliki maksimum tiga proses yang terjadi pada saat yang sama. Memaksakan batasan pada jumlah run yang dapat terjadi sekaligus membuat throughput run lebih dapat diprediksi.
+ **Anda ingin membatasi jumlah permintaan yang dibuat ke layanan pihak ketiga** berdasarkan alur kerja. Misalnya, alur kerja Anda mungkin memiliki tindakan build yang menyertakan instruksi untuk menarik gambar dari Docker Hub. [Docker Hub membatasi jumlah permintaan tarik](https://www.docker.com/increase-rate-limits) yang dapat Anda buat hingga jumlah tertentu per jam per akun, dan Anda akan dikunci jika melampaui batas. Menggunakan mode lari antrian untuk memperlambat throughput run Anda akan memiliki efek menghasilkan lebih sedikit permintaan ke Docker Hub per jam, sehingga membatasi potensi penguncian dan mengakibatkan kegagalan build dan run.

**Ukuran antrian maksimal**: 50

Catatan tentang **ukuran antrian maksimum**:
+ Ukuran antrian maksimum mengacu pada jumlah maksimum proses yang diizinkan di *semua antrian* dalam alur kerja.
+ Jika antrian menjadi lebih panjang dari 50 run, maka CodeCatalyst turunkan lari ke-51 dan selanjutnya.

**Perilaku kegagalan**:

Jika proses menjadi tidak responsif saat sedang diproses oleh suatu tindakan, maka proses di belakangnya ditahan dalam antrian hingga waktu tindakan habis. Waktu tindakan habis setelah satu jam.

Jika run gagal di dalam suatu tindakan, maka lari antrian pertama di belakangnya diizinkan untuk melanjutkan.

## Tentang mode lari yang digantikan
<a name="workflows-configure-runs-superseded"></a>

*Mode lari yang diganti sama dengan mode lari* *antrian kecuali* bahwa:
+ Jika proses antrian mengejar lari lain dalam antrian, proses selanjutnya menggantikan (mengambil alih dari) proses sebelumnya, dan proses sebelumnya dibatalkan dan ditandai sebagai 'digantikan'.
+ Sebagai hasil dari perilaku yang dijelaskan dalam bullet pertama, antrian hanya dapat menyertakan satu run ketika mode run digantikan digunakan. 

Menggunakan alur kerja [Figure 1](#figure-1-workflow-queued-run-mode) sebagai panduan, menerapkan mode run yang digantikan ke alur kerja ini akan menghasilkan hal berikut:
+ **Run-7G777** **akan menggantikan dua run lainnya dalam antreannya, dan akan menjadi satu-satunya run yang tersisa di Antrian \$11.** **Run-6F666** **dan Run-5E555 akan dibatalkan.**
+ **Run-3C333** **akan menggantikan **Run-2B222 dan menjadi satu-satunya run yang tersisa di Antrian** \$12.** **Run-2b222** akan dibatalkan.

Gunakan mode lari yang digantikan jika Anda ingin:
+ throughput yang lebih baik daripada dengan mode antrian
+ bahkan lebih sedikit permintaan ke layanan pihak ketiga dibandingkan dengan mode antrian; ini menguntungkan jika layanan pihak ketiga memiliki batas tarif, seperti Docker Hub

## Tentang mode parallel run
<a name="workflows-configure-runs-parallel"></a>

Dalam *mode parallel run*, run tidak tergantung satu sama lain dan jangan menunggu proses lain selesai sebelum memulai. Tidak ada antrian, dan run throughput hanya dibatasi oleh seberapa cepat tindakan di dalam alur kerja selesai. 

Gunakan mode parallel run di lingkungan pengembangan di mana setiap pengguna memiliki cabang fitur mereka sendiri dan menyebarkan ke target yang tidak dibagikan oleh pengguna lain.

**penting**  
Jika Anda memiliki target bersama yang dapat diterapkan oleh beberapa pengguna, seperti fungsi Lambda di lingkungan produksi, jangan gunakan mode paralel, karena kondisi balapan dapat terjadi. *Kondisi balapan* terjadi ketika alur kerja paralel berjalan mencoba mengubah sumber daya bersama pada saat yang sama, yang mengarah ke hasil yang tidak dapat diprediksi.

**Jumlah maksimum parallel run**: 1000 per CodeCatalyst spasi

## Mengkonfigurasi mode lari
<a name="workflows-configure-runs-configure"></a>

Anda dapat mengatur mode lari ke antrian, digantikan, atau paralel. Defaultnya antri.

Saat Anda mengubah mode lari dari antrian atau digantikan menjadi paralel CodeCatalyst , membatalkan proses yang diantrian, dan memungkinkan proses yang saat ini sedang diproses oleh tindakan selesai sebelum membatalkannya.

Ketika Anda mengubah mode run dari parallel ke antrian atau digantikan, memungkinkan CodeCatalyst semua berjalan paralel yang berjalan saat ini selesai. Setiap proses yang Anda mulai setelah mengubah mode run menjadi antrian atau digantikan menggunakan mode baru.

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

**Untuk mengubah mode lari 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. Di kanan atas, pilih properti **Workflow**.

1. Perluas **Lanjutan**, dan di bawah **mode Jalankan**, pilih salah satu dari berikut ini:

   1. **Antrian — lihat** [Tentang mode lari antrian](#workflows-configure-runs-queued)

   1. **Digantikan** — lihat [Tentang mode lari yang digantikan](#workflows-configure-runs-superseded)

   1. **Paralel** - lihat [Tentang mode parallel run](#workflows-configure-runs-parallel)

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

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

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

**Untuk mengubah mode lari 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. Tambahkan `RunMode` properti, seperti ini:

   ```
   Name: Workflow_6d39
   SchemaVersion: "1.0"
   RunMode: QUEUED|SUPERSEDED|PARALLEL
   ```

   Untuk informasi lebih lanjut, lihat deskripsi `RunMode` properti di [Properti tingkat atas](workflow-reference.md#workflow.top.level) bagian[Alur kerja definisi YAMAL](workflow-reference.md).

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

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

------

# Caching file antara alur kerja berjalan
<a name="workflows-caching"></a>

Saat caching file diaktifkan, tindakan build dan test menyimpan file on-disk ke cache dan mengembalikannya dari cache tersebut dalam alur kerja berikutnya. Caching mengurangi latensi yang disebabkan oleh membangun atau mengunduh dependensi yang tidak berubah di antara proses. CodeCatalyst juga mendukung cache fallback, yang dapat digunakan untuk mengembalikan cache sebagian yang berisi beberapa dependensi yang diperlukan. Ini membantu mengurangi dampak latensi dari kehilangan cache.

**catatan**  
Caching file hanya tersedia dengan tindakan CodeCatalyst [pembuatan](build-workflow-actions.md) dan [pengujian](test-workflow-actions.md) Amazon, dan hanya jika file tersebut dikonfigurasi untuk menggunakan jenis **EC2**[komputasi](workflows-working-compute.md#compute.types).

**Topics**
+ [Tentang file caching](#workflows-caching.files)
+ [Membuat cache](#workflows-caching.fallback)
+ [Kendala caching file](#workflows-caching.constraints)

## Tentang file caching
<a name="workflows-caching.files"></a>

File caching memungkinkan Anda untuk mengatur data Anda ke dalam beberapa cache, yang masing-masing direferensikan di bawah properti. `FileCaching` Setiap cache menyimpan direktori yang ditentukan oleh jalur tertentu. Direktori yang ditentukan akan dipulihkan dalam alur kerja masa depan berjalan. Berikut ini adalah contoh cuplikan YAMAL untuk caching dengan beberapa cache bernama dan. `cacheKey1` `cacheKey2`

```
Actions:
  BuildMyNpmApp:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
        - Run: npm install
        - Run: npm run test
    Caching:
      FileCaching:
        cacheKey1:
          Path: file1.txt
          RestoreKeys:
             - restoreKey1
        cacheKey2:
          Path: /root/repository
          RestoreKeys:
             - restoreKey2
             - restoreKey3
```

**catatan**  
CodeCatalyst menggunakan caching berlapis-lapis, yang terdiri dari cache lokal dan cache jarak jauh. Ketika armada yang disediakan atau mesin sesuai permintaan mengalami kehilangan cache pada cache lokal, dependensi akan dipulihkan dari cache jarak jauh. Akibatnya, beberapa tindakan berjalan mungkin mengalami latensi dari mengunduh cache jarak jauh.

CodeCatalyst menerapkan pembatasan akses cache untuk memastikan bahwa tindakan dalam satu alur kerja tidak dapat mengubah cache dari alur kerja yang berbeda. Ini melindungi setiap alur kerja dari orang lain yang mungkin mendorong data yang salah yang memengaruhi build atau penerapan. Pembatasan diberlakukan dengan cakupan cache yang mengisolasi cache ke setiap alur kerja dan pasangan cabang. Misalnya, `workflow-A` di cabang `feature-A` memiliki cache file yang berbeda dari `workflow-A` di cabang `feature-B` saudara.

Kesalahan cache terjadi ketika alur kerja mencari cache file tertentu dan tidak dapat menemukannya. Ini dapat terjadi karena beberapa alasan, seperti ketika cabang baru dibuat atau ketika cache baru direferensikan dan belum dibuat. Ini juga dapat terjadi ketika cache kedaluwarsa, yang secara default terjadi 14 hari setelah terakhir digunakan. Untuk mengurangi kesalahan cache dan meningkatkan tingkat klik cache, CodeCatalyst mendukung cache fallback. Cache fallback adalah cache alternatif dan memberikan kesempatan untuk memulihkan cache sebagian, yang bisa menjadi versi cache yang lebih lama. Cache dipulihkan dengan terlebih dahulu mencari kecocokan di bawah `FileCaching` untuk nama properti, dan jika tidak ditemukan, evaluasi`RestoreKeys`. Jika ada cache yang hilang untuk nama properti dan semua`RestoreKeys`, alur kerja akan terus berjalan, karena caching adalah upaya terbaik dan tidak dijamin.

## Membuat cache
<a name="workflows-caching.fallback"></a>

Anda dapat menggunakan petunjuk berikut untuk menambahkan cache ke alur kerja Anda.

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

**Untuk menambahkan cache 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 di mana Anda ingin menambahkan cache Anda.

1. Pilih **Konfigurasi**.

1. Di bawah **File caching - opsional**, pilih **Tambahkan cache** dan masukkan informasi ke dalam bidang, sebagai berikut:

    **Kunci** 

   Tentukan nama nama properti cache utama Anda. Nama properti cache harus unik dalam alur kerja Anda. Setiap tindakan dapat memiliki hingga lima entri. `FileCaching`

    **Jalan** 

   Tentukan jalur terkait untuk cache Anda. 

    **Kembalikan kunci - opsional** 

   Tentukan kunci pemulihan yang akan digunakan sebagai fallback ketika properti cache utama tidak dapat ditemukan. Kembalikan nama kunci harus unik dalam alur kerja Anda. Setiap cache dapat memiliki hingga lima entri. `RestoreKeys`

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

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

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

**Untuk menambahkan cache menggunakan editor YAMM**

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, tambahkan kode yang mirip dengan berikut ini:

   ```
   action-name:
     Configuration:
       Steps: ...
     Caching:
       FileCaching:
         key-name:
           Path: file-path
           # # Specify any additional fallback caches
           # RestoreKeys:
           #  - restore-key
   ```

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

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

------

## Kendala caching file
<a name="workflows-caching.constraints"></a>

Berikut ini adalah kendala untuk nama properti dan: `RestoreKeys`
+ Nama harus unik dalam alur kerja.
+ Nama terbatas pada karakter alfanumerik (A-Z, a-z, 0-9), tanda hubung (-), dan garis bawah (\$1).
+ Nama dapat memiliki hingga 180 karakter.
+ Setiap tindakan dapat memiliki hingga lima cache. `FileCaching`
+ Setiap cache dapat memiliki hingga lima entri. `RestoreKeys`

Berikut ini adalah kendala untuk jalur:
+ Tanda bintang (\$1) tidak diperbolehkan.
+ Jalur dapat memiliki hingga 255 karakter.

# Melihat status dan detail alur kerja
<a name="workflows-view-run"></a>

Di Amazon CodeCatalyst, Anda dapat melihat status dan detail dari satu alur kerja yang dijalankan, atau beberapa proses secara bersamaan.

Untuk daftar kemungkinan status jalankan lihat[Alur kerja menjalankan status](workflows-view-run-status.md).

**catatan**  
Anda juga dapat melihat status alur kerja, yang berbeda dari status *menjalankan* alur kerja. Untuk informasi selengkapnya, lihat [Melihat status alur kerja](workflows-view-status.md).

Untuk informasi selengkapnya tentang alur kerja berjalan, lihat[Menjalankan alur kerja](workflows-working-runs.md).

**Topics**
+ [Melihat status dan detail dari satu run](#workflows-view-run-single)
+ [Melihat status dan detail semua proses dalam proyek Anda](#workflows-view-run-all)
+ [Melihat status dan detail semua proses alur kerja tertentu](#workflows-view-run-wf)
+ [Melihat alur kerja dalam diagram alur kerja](#workflows-view-run-wf-diagram)

## Melihat status dan detail dari satu run
<a name="workflows-view-run-single"></a>

Anda mungkin ingin melihat status dan detail alur kerja tunggal untuk memeriksa apakah itu berhasil, untuk melihat pada jam berapa selesai, atau untuk melihat siapa atau apa yang memulainya.

**Untuk melihat status dan detail dari satu run**

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. Di bawah nama alur kerja, pilih **Runs**.

1. Di **Riwayat Jalankan****, di kolom Run ID**, pilih run. Misalnya, `Run-95a4d`.

1. Di bawah nama run, lakukan salah satu hal berikut:
   + **Visual** untuk melihat diagram alur kerja yang menunjukkan tindakan alur kerja dan statusnya (lihat[Alur kerja menjalankan status](workflows-view-run-status.md)). Tampilan ini juga menunjukkan repositori sumber dan cabang yang digunakan selama menjalankan.

     Dalam diagram alur kerja, pilih tindakan untuk melihat detail seperti log, laporan, dan output yang dihasilkan oleh tindakan selama menjalankan. Informasi yang ditampilkan tergantung pada jenis tindakan yang dipilih. Untuk informasi selengkapnya tentang melihat log build atau deploy, lihat [Melihat hasil tindakan build](build-view-results.md) atau[Melihat log penerapan](deploy-deployment-logs.md).
   + **YAMM** untuk melihat file definisi alur kerja yang digunakan untuk menjalankan.
   + **Artefak** untuk melihat artefak yang dihasilkan oleh alur kerja dijalankan. Untuk informasi lebih lanjut tentang artifact, lihat [Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).
   + **Laporan** untuk melihat laporan pengujian dan jenis laporan lain yang dihasilkan oleh alur kerja yang dijalankan. Untuk informasi selengkapnya tentang laporan, lihat[Jenis laporan kualitas](test-workflow-actions.md#test-reporting).
   + **Variabel** untuk melihat variabel output yang dihasilkan oleh alur kerja yang dijalankan. Untuk informasi lebih lanjut tentang variabel, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).
**catatan**  
Jika alur kerja induk run telah dihapus, pesan yang menunjukkan fakta ini akan muncul di bagian atas halaman rincian proses.

## Melihat status dan detail semua proses dalam proyek Anda
<a name="workflows-view-run-all"></a>

Anda mungkin ingin melihat status dan detail dari semua alur kerja yang berjalan dalam proyek Anda memahami berapa banyak aktivitas alur kerja yang terjadi dalam proyek Anda, dan mempelajari tentang kesehatan keseluruhan alur kerja Anda.

**Untuk melihat status dan detail semua proses dalam proyek Anda**

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. Di bawah **Alur kerja**, pilih **Runs**.

   Semua proses, untuk semua alur kerja, di semua cabang, di semua repositori dalam proyek Anda, ditampilkan. 

   Halaman ini mencakup kolom berikut:
   + **Run ID** — Pengidentifikasi unik dari proses. Pilih tautan run ID untuk melihat informasi terperinci tentang proses.
   + **Status** - Status pemrosesan alur kerja yang dijalankan. Untuk informasi selengkapnya tentang status run, lihat[Alur kerja menjalankan status](workflows-view-run-status.md).
   + **Trigger** — Orang, commit, pull request (PR), atau jadwal yang memulai alur kerja berjalan. Untuk informasi selengkapnya, lihat [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md).
   + **Alur kerja** - Nama alur kerja tempat proses dimulai, dan repositori sumber dan cabang tempat file definisi alur kerja berada. Anda mungkin perlu memperluas lebar kolom untuk melihat informasi ini.
**catatan**  
Jika kolom ini disetel ke **Tidak tersedia**, biasanya karena alur kerja terkait telah dihapus atau dipindahkan.
   + **Waktu mulai** — Waktu ketika alur kerja berjalan dimulai.
   + **Durasi** - Berapa lama alur kerja berjalan untuk diproses. Durasi yang sangat panjang atau sangat singkat mungkin mengindikasikan masalah.
   + **Waktu akhir** - Waktu ketika alur kerja berjalan berakhir.

## Melihat status dan detail semua proses alur kerja tertentu
<a name="workflows-view-run-wf"></a>

Anda mungkin ingin melihat status dan detail semua proses yang terkait dengan alur kerja tertentu untuk melihat apakah ada proses yang membuat hambatan dalam alur kerja, atau untuk melihat proses mana yang sedang berlangsung atau telah selesai.

**Untuk melihat status dan detail semua proses alur kerja tertentu**

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. Di bawah nama alur kerja, pilih **Runs**.

   Jalankan yang terkait dengan alur kerja yang dipilih muncul.

   Halaman ini dibagi menjadi dua bagian:
   + **Aktif berjalan** - Menampilkan berjalan yang sedang berlangsung. Lari ini akan berada di salah satu status berikut: **Sedang berlangsung**.
   + **Run history** - Menampilkan run yang telah selesai (yaitu, tidak sedang berlangsung).

     Untuk informasi selengkapnya tentang status run, lihat[Alur kerja menjalankan status](workflows-view-run-status.md).

## Melihat alur kerja dalam diagram alur kerja
<a name="workflows-view-run-wf-diagram"></a>

Anda dapat melihat status semua proses alur kerja saat mereka maju bersama melalui alur kerja. Jalankan ditampilkan dalam diagram alur kerja (sebagai lawan dari dalam tampilan daftar). Ini memberi Anda representasi visual dari proses mana yang sedang diproses oleh tindakan mana, dan lari mana yang menunggu dalam antrian.

**Untuk melihat status beberapa proses saat mereka maju bersama melalui alur kerja**
**catatan**  
Prosedur ini hanya berlaku jika alur kerja Anda menggunakan mode lari antrian atau digantikan. Untuk informasi selengkapnya, lihat [Mengonfigurasi perilaku antrian run](workflows-configure-runs.md).

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.
**catatan**  
Pastikan Anda melihat halaman alur kerja dan bukan halaman run.

1. Pilih tab **Status terbaru** di kiri atas.

   Diagram alur kerja muncul.

1. Tinjau diagram alur kerja. Diagram menunjukkan semua proses yang sedang berlangsung dalam alur kerja, dan proses terbaru yang telah selesai. Lebih khusus lagi:
   + Lari yang muncul di bagian atas, sebelum **Sumber**, antri dan menunggu untuk memulai.
   + Jalankan yang muncul di antara tindakan diantrian dan menunggu untuk diproses oleh tindakan berikutnya.
   + Runs yang muncul dalam suatu tindakan adalah 1. saat ini sedang diproses oleh tindakan, 2. telah selesai diproses oleh tindakan, atau 3. tidak diproses oleh tindakan (biasanya karena tindakan sebelumnya gagal).

# Mengkonfigurasi tindakan alur kerja
<a name="workflows-actions"></a>

*Tindakan* adalah blok bangunan utama alur kerja, dan mendefinisikan unit logis kerja, atau tugas, untuk dilakukan selama alur kerja dijalankan. Biasanya, alur kerja mencakup beberapa tindakan yang berjalan secara berurutan atau paralel tergantung pada cara Anda mengonfigurasinya.

**Topics**
+ [Jenis tindakan](#workflows-actions-types)
+ [Menambahkan tindakan ke alur kerja](workflows-add-action.md)
+ [Menghapus tindakan dari alur kerja](workflows-delete-action.md)
+ [Mengembangkan tindakan khusus](workflows-custom-action.md)
+ [Mengelompokkan tindakan ke dalam kelompok aksi](workflows-group-actions.md)
+ [Tindakan pengurutan](workflows-depends-on.md)
+ [Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md)
+ [Menentukan versi tindakan yang akan digunakan](workflows-action-versions.md)
+ [Daftar versi tindakan yang tersedia](workflows-action-versions-determine.md)
+ [Melihat kode sumber tindakan](workflows-view-source.md)
+ [Integrasi dengan Tindakan GitHub](integrations-github-actions.md)

## Jenis tindakan
<a name="workflows-actions-types"></a>

Dalam CodeCatalyst alur kerja Amazon, Anda dapat menggunakan jenis tindakan berikut.

**Topics**
+ [CodeCatalyst tindakan](#workflows-actions-types-cc)
+ [CodeCatalyst Tindakan Lab](#workflows-actions-types-cc-labs)
+ [GitHub Tindakan](#workflows-actions-types-github)
+ [Tindakan pihak ketiga](#workflows-actions-types-3p)

### CodeCatalyst tindakan
<a name="workflows-actions-types-cc"></a>

*CodeCatalyst Tindakan* adalah tindakan yang ditulis, dipelihara, dan didukung penuh oleh tim CodeCatalyst pengembangan.

Ada CodeCatalyst tindakan untuk membangun, menguji, dan menyebarkan aplikasi, serta untuk melakukan tugas lain-lain, seperti memanggil fungsi. AWS Lambda 

 CodeCatalyst Tindakan berikut tersedia:
+ **Membangun**

  Tindakan ini membangun artefak Anda dan menjalankan pengujian unit Anda dalam wadah Docker. Untuk informasi selengkapnya, lihat [Menambahkan aksi build](build-add-action.md).
+ **Uji**

  Tindakan ini menjalankan integrasi dan pengujian sistem terhadap aplikasi atau artefak Anda. Untuk informasi selengkapnya, lihat [Menambahkan tindakan pengujian](test-add-action.md).
+ **Amazon S3 mempublikasikan**

  Tindakan ini menyalin artefak aplikasi Anda ke bucket Amazon S3. Untuk informasi selengkapnya, lihat [Menerbitkan file ke Amazon S3 dengan alur kerja](s3-pub-action.md).
+ **AWS CDK bootstrap**

  Tindakan ini menyediakan sumber daya yang AWS CDK dibutuhkan untuk menerapkan aplikasi CDK Anda. Untuk informasi selengkapnya, lihat [Bootstrapping AWS CDK aplikasi dengan alur kerja](cdk-boot-action.md).
+ **AWS CDK menyebarkan**

  Tindakan ini mensintesis dan menyebarkan aplikasi AWS Cloud Development Kit (AWS CDK) . Untuk informasi selengkapnya, lihat [Menerapkan AWS CDK aplikasi dengan alur kerja](cdk-dep-action.md).
+ **AWS Lambda memohon**

  Tindakan ini memanggil AWS Lambda fungsi. Untuk informasi selengkapnya, lihat [Memanggil fungsi Lambda menggunakan alur kerja](lam-invoke-action.md).
+ **GitHub Tindakan**

  Tindakan ini adalah *CodeCatalyst*tindakan yang memungkinkan Anda menjalankan GitHub Tindakan dalam CodeCatalyst alur kerja. Untuk informasi selengkapnya, lihat [Memanggil fungsi Lambda menggunakan alur kerja](lam-invoke-action.md).
+ **Menyebarkan tumpukan CloudFormation **

  Tindakan ini menyebarkan CloudFormation tumpukan. Untuk informasi selengkapnya, lihat [Menyebarkan tumpukan CloudFormation](deploy-action-cfn.md).
+ **Terapkan ke Amazon ECS**

  Tindakan ini mendaftarkan definisi tugas Amazon ECS dan menerapkannya ke layanan Amazon ECS. Untuk informasi selengkapnya, lihat [Menyebarkan ke Amazon ECS dengan alur kerja](deploy-action-ecs.md).
+ **Terapkan ke klaster Kubernetes**

  Tindakan ini menyebarkan aplikasi ke klaster Kubernetes. Untuk informasi selengkapnya, lihat [Menerapkan ke Amazon EKS dengan alur kerja](deploy-action-eks.md).
+ **Render definisi tugas Amazon ECS**

  Tindakan ini menyisipkan URI gambar kontainer ke dalam file JSON definisi tugas Amazon ECS, membuat file definisi tugas baru. Untuk informasi selengkapnya, lihat [Memodifikasi definisi tugas Amazon ECS](render-ecs-action.md).

Dokumentasi untuk CodeCatalyst tindakan tersedia dalam panduan ini, dan di readme setiap tindakan.

Untuk informasi tentang CodeCatalyst tindakan yang tersedia, dan cara menambahkannya ke alur kerja, lihat[Menambahkan tindakan ke alur kerja](workflows-add-action.md).

### CodeCatalyst Tindakan Lab
<a name="workflows-actions-types-cc-labs"></a>

*Tindakan CodeCatalyst Labs* adalah tindakan yang merupakan bagian dari Amazon CodeCatalyst Labs, tempat pembuktian untuk aplikasi eksperimental. CodeCatalyst Tindakan Labs telah dikembangkan untuk menampilkan integrasi dengan AWS layanan.

Tindakan CodeCatalyst Labs berikut tersedia:
+ **Menyebarkan ke Hosting AWS Amplify **

  Tindakan ini menyebarkan aplikasi ke Amplify Hosting.
+ **Menyebarkan ke AWS App Runner**

  Tindakan ini menyebarkan gambar terbaru dalam repositori gambar sumber ke App Runner.
+ **Terapkan ke Amazon CloudFront dan Amazon S3**

  Tindakan ini menyebarkan aplikasi ke CloudFront dan Amazon S3.
+ **Menyebarkan dengan AWS SAM**

  Tindakan ini menerapkan aplikasi tanpa server Anda dengan AWS Serverless Application Model ().AWS SAM
+ **Membatalkan Cache Amazon CloudFront **

  Tindakan ini membatalkan CloudFront cache untuk kumpulan jalur tertentu.
+ **Webhook Keluar**

  Tindakan ini memungkinkan pengguna untuk mengirim pesan dalam alur kerja ke server web arbitrer menggunakan permintaan HTTPS.
+ **Publikasikan ke AWS CodeArtifact**

  Tindakan ini menerbitkan paket ke CodeArtifact repositori.
+ **Publikasikan ke Amazon SNS**

  Tindakan ini memungkinkan pengguna untuk berintegrasi dengan Amazon SNS dengan membuat topik, menerbitkan topik, atau berlangganan topik.
+ **Dorong ke Amazon ECR**

  Tindakan ini membangun dan menerbitkan image Docker ke repositori Amazon Elastic Container Registry (Amazon ECR).
+ **Pindai dengan Amazon CodeGuru Security**

  Tindakan ini membuat arsip zip dari jalur kode yang dikonfigurasi dan menggunakan CodeGuru Keamanan untuk menjalankan pemindaian kode.
+ **Edisi Komunitas Terraform**

  Tindakan ini menjalankan Terraform Community Edition `plan` dan `apply` operasi.

Dokumentasi untuk tindakan CodeCatalyst Labs tersedia di readme setiap tindakan.

Untuk informasi tentang menambahkan tindakan CodeCatalyst Labs ke alur kerja dan melihat readme-nya, lihat. [Menambahkan tindakan ke alur kerja](workflows-add-action.md)

### GitHub Tindakan
<a name="workflows-actions-types-github"></a>

*GitHub Tindakan* sangat mirip dengan [CodeCatalyst tindakan](#workflows-actions-types-cc), kecuali bahwa itu dikembangkan untuk digunakan dengan GitHub alur kerja. Untuk detail tentang GitHub Tindakan, lihat dokumentasi [GitHub Tindakan](https://docs.github.com/en/actions).

Anda dapat menggunakan GitHub Tindakan bersama CodeCatalyst tindakan asli dalam CodeCatalyst alur kerja.

Untuk kenyamanan Anda, CodeCatalyst konsol menyediakan akses ke beberapa GitHub Tindakan populer. Anda juga dapat menggunakan GitHub Tindakan apa pun yang tercantum di [GitHub Marketplace](https://github.com/marketplace/actions) (tunduk pada beberapa batasan).

Dokumentasi untuk GitHub Tindakan tersedia di readme setiap tindakan.

Untuk informasi selengkapnya, lihat [Integrasi dengan Tindakan GitHub](integrations-github-actions.md).

### Tindakan pihak ketiga
<a name="workflows-actions-types-3p"></a>

*Tindakan pihak ketiga* adalah tindakan yang ditulis oleh vendor pihak ketiga, dan tersedia di CodeCatalyst konsol. Contoh tindakan pihak ketiga termasuk tindakan **Mend SCA** dan **SonarCloud Scan**, masing-masing ditulis oleh Mend dan Sonar.

Dokumentasi untuk tindakan pihak ketiga tersedia di readme setiap tindakan. Dokumentasi tambahan mungkin juga disediakan oleh vendor pihak ketiga.

Untuk informasi tentang menambahkan tindakan pihak ketiga ke alur kerja dan melihat readme-nya, lihat. [Menambahkan tindakan ke alur kerja](workflows-add-action.md)

# Menambahkan tindakan ke alur kerja
<a name="workflows-add-action"></a>

Gunakan petunjuk berikut untuk menambahkan tindakan ke alur kerja dan kemudian mengkonfigurasinya.

**Untuk menambah dan mengkonfigurasi 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. Pilih **Edit**.

1. Di kiri atas, pilih **\$1 Tindakan**, Katalog **Tindakan** muncul.

1. Dalam daftar drop-down, lakukan salah satu hal berikut:
   + Pilih **Amazon CodeCatalyst** untuk melihat [CodeCatalyst](workflows-actions.md#workflows-actions-types-cc), [CodeCatalyst Lab](workflows-actions.md#workflows-actions-types-cc-labs), atau tindakan [pihak ketiga](workflows-actions.md#workflows-actions-types-3p).
     + CodeCatalyst tindakan memiliki AWS label **berdasarkan**.
     + CodeCatalyst Tindakan Labs memiliki label **by CodeCatalyst Labs**.
     + Tindakan pihak ketiga memiliki *vendor* label **berdasarkan**, di *vendor* mana nama vendor pihak ketiga.
   + Pilih **GitHub**untuk melihat [daftar GitHub Tindakan yang dikuratori](integrations-github-action-add-curated.md).

1. Di katalog tindakan, cari tindakan, lalu lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke alur kerja Anda.
   + Pilih nama tindakan untuk melihat readme nya.

1. Konfigurasikan tindakan. Pilih **Visual** untuk menggunakan editor visual, atau **YAMAL untuk** menggunakan editor YAMAL. Untuk petunjuk terperinci, lihat tautan berikut.

   Untuk petunjuk tentang menambahkan [CodeCatalysttindakan](workflows-actions.md#workflows-actions-types-cc), lihat:
   + [Menambahkan aksi build](build-add-action.md)
   + [Menambahkan tindakan pengujian](test-add-action.md)
   + [Menambahkan tindakan 'Terapkan ke Amazon ECS'](deploy-action-ecs-adding.md)
   + [Menambahkan aksi 'Deploy to Kubernetes cluster'](deploy-action-eks-adding.md)
   + [Menambahkan aksi 'Deploy stack' CloudFormation](deploy-action-cfn-adding.md)
   + [Menambahkan tindakan 'AWS CDK deploy'](cdk-dep-action-add.md)
   + [Menambahkan aksi 'AWS CDK bootstrap'](cdk-boot-action-add.md)
   + [Menambahkan tindakan 'Amazon S3' publish'](s3-pub-action-add.md)
   + [Menambahkan tindakan 'AWS Lambda pemanggilan'](lam-invoke-action-add.md)
   + [Menambahkan tindakan 'Render Amazon ECS task definition'](render-ecs-action-add.md)

   Untuk petunjuk tentang menambahkan [tindakan CodeCatalyst Labs](workflows-actions.md#workflows-actions-types-cc-labs), lihat:
   + Readme aksi. Anda dapat menemukan readme dengan memilih nama tindakan di katalog tindakan.

   Untuk petunjuk tentang menambahkan [GitHub Tindakan](workflows-actions.md#workflows-actions-types-github), lihat:
   + [Integrasi dengan Tindakan GitHub](integrations-github-actions.md)

   Untuk petunjuk tentang menambahkan [tindakan pihak ketiga](workflows-actions.md#workflows-actions-types-3p), lihat:
   + Readme aksi. Anda dapat menemukan readme dengan memilih nama tindakan di katalog tindakan.

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

1. Pilih **Komit** untuk melakukan perubahan Anda.

# Menghapus tindakan dari alur kerja
<a name="workflows-delete-action"></a>

Gunakan petunjuk berikut untuk menghapus tindakan dari alur kerja.

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

**Untuk menghapus tindakan 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, dalam tindakan yang ingin Anda hapus, pilih ikon elipsis vertikal (![\[Ellipsis.\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/flows/elipsis.png)), dan pilih Hapus.**

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

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

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

**Untuk menghapus tindakan 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. Temukan bagian YAMAL yang berisi tindakan yang ingin Anda hapus.

   Pilih bagian dan tekan tombol hapus pada keyboard Anda.

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

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

------

# Mengembangkan tindakan khusus
<a name="workflows-custom-action"></a>

Anda dapat mengembangkan tindakan kustom untuk digunakan dalam alur kerja Anda menggunakan CodeCatalyst Action Development Kit (ADK). Anda kemudian dapat mempublikasikan tindakan ke katalog CodeCatalyst tindakan, sehingga CodeCatalyst pengguna lain dapat melihat dan menggunakannya dalam alur kerja mereka.

**Untuk mengembangkan, menguji, dan mempublikasikan tindakan (tugas tingkat tinggi)**

1. Instal alat dan paket yang diperlukan untuk mengembangkan suatu tindakan.

1. Buat CodeCatalyst repositori untuk menyimpan kode tindakan Anda.

1. Inisialisasi tindakan. Ini meletakkan file sumber yang diperlukan oleh tindakan, termasuk file definisi tindakan (`action.yml`) yang dapat Anda perbarui dengan kode Anda sendiri.

1. Bootstrap kode tindakan untuk mendapatkan alat dan pustaka yang diperlukan untuk membangun, menguji, dan merilis proyek tindakan.

1. Bangun tindakan di komputer lokal Anda, dan dorong perubahan ke CodeCatalyst repositori Anda.

1. Uji tindakan dengan pengujian unit secara lokal, dan jalankan alur kerja yang dihasilkan ADK. CodeCatalyst

1. Publikasikan tindakan ke katalog CodeCatalyst tindakan dengan memilih tombol **Publikasikan** di CodeCatalyst konsol.

Untuk langkah-langkah mendetail, lihat [Panduan Pengembang Kit Pengembangan CodeCatalyst Aksi Amazon](https://docs.aws.amazon.com/codecatalyst/latest/adk/what-is-action-development-kit.html).

# Mengelompokkan tindakan ke dalam kelompok aksi
<a name="workflows-group-actions"></a>

*Grup aksi* berisi satu atau lebih tindakan. Mengelompokkan tindakan ke dalam grup tindakan membantu Anda menjaga alur kerja tetap teratur, dan juga memungkinkan Anda mengonfigurasi dependensi di antara grup yang berbeda.

**catatan**  
Anda tidak dapat menyarangkan grup aksi dalam kelompok tindakan atau tindakan lain.

**Topics**
+ [Mendefinisikan grup aksi](#workflows-define-action-group)
+ [Contoh: Mendefinisikan dua kelompok aksi](workflows-group-actions-example.md)

## Mendefinisikan grup aksi
<a name="workflows-define-action-group"></a>

Gunakan instruksi berikut untuk menentukan grup CodeCatalyst tindakan.

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

*Tidak tersedia. Pilih YAMAL untuk melihat instruksi YAMAL.*

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

**Untuk mendefinisikan grup**

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`Actions`, tambahkan kode yang mirip dengan berikut ini:

   ```
   Actions:
     action-group-name: 
       Actions:
         action-1:
           Identifier: aws/build@v1
           Configuration:
             ...
         action-2:
           Identifier: aws/build@v1
           Configuration:
             ...
   ```

   Untuk contoh lain, lihat[Contoh: Mendefinisikan dua kelompok aksi](workflows-group-actions-example.md). Untuk informasi lebih lanjut, lihat deskripsi `action-group-name` properti di [Tindakan](workflow-reference.md#actions-reference) halaman[Alur kerja definisi YAMAL](workflow-reference.md).

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

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

------

# Contoh: Mendefinisikan dua kelompok aksi
<a name="workflows-group-actions-example"></a>

Contoh berikut menunjukkan cara mendefinisikan dua grup CodeCatalyst tindakan Amazon: `BuildAndTest` dan`Deploy`. `BuildAndTest`Kelompok ini mencakup dua tindakan (`Build`dan`Test`), dan `Deploy` kelompok juga mencakup dua tindakan (`DeployCloudFormationStack`dan`DeployToECS`).

```
Actions:
  BuildAndTest: # Action group 1
    Actions:
      Build:
        Identifier: aws/build@v1
        Configuration:
          ...
      Test:
        Identifier: aws/managed-test@v1
        Configuration:
  Deploy: #Action group 2
    Actions:
      DeployCloudFormationStack:
        Identifier: aws/cfn-deploy@v1
        Configuration:
          ...
      DeployToECS:
        Identifier: aws/ecs-deploy@v1
        Configuration:
          ...
```

# Tindakan pengurutan
<a name="workflows-depends-on"></a>

Secara default, saat Anda menambahkan tindakan ke alur kerja, tindakan tersebut ditambahkan berdampingan di [editor visual](workflow.md#workflow.editors). Ini berarti bahwa tindakan akan berjalan secara paralel ketika Anda memulai menjalankan alur kerja. Jika Anda ingin tindakan berjalan dalam urutan berurutan (dan muncul secara vertikal di editor visual), Anda harus mengatur dependensi di antara mereka. Misalnya, Anda dapat menyiapkan `Test` tindakan agar bergantung pada `Build` tindakan sehingga tindakan pengujian berjalan setelah tindakan build.

Anda dapat mengatur dependensi antara tindakan dan grup tindakan. Anda juga dapat mengonfigurasi one-to-many dependensi sehingga satu tindakan bergantung pada beberapa tindakan lain untuk memulai. Konsultasikan pedoman [Menyiapkan dependensi antar tindakan](workflows-depends-on-set-up.md) untuk memastikan penyiapan dependensi Anda sesuai dengan sintaks YAMAL alur kerja.

**Topics**
+ [Contoh cara mengonfigurasi dependensi antar tindakan](workflows-depends-on-examples.md)
+ [Menyiapkan dependensi antar tindakan](workflows-depends-on-set-up.md)

# Contoh cara mengonfigurasi dependensi antar tindakan
<a name="workflows-depends-on-examples"></a>

Contoh berikut menunjukkan cara mengkonfigurasi dependensi antara tindakan dan grup dalam file definisi alur kerja.

**Topics**
+ [Contoh: Mengkonfigurasi ketergantungan sederhana](#workflows-depends-on-example-simple)
+ [Contoh: Mengonfigurasi grup tindakan untuk bergantung pada tindakan](#workflows-depends-on-example-action-groups-actions)
+ [Contoh: Mengkonfigurasi grup tindakan untuk bergantung pada grup tindakan lain](#workflows-depends-on-example-two-action-groups)
+ [Contoh: Mengonfigurasi grup tindakan agar bergantung pada beberapa tindakan](#workflows-depends-on-example-advanced)

## Contoh: Mengkonfigurasi ketergantungan sederhana
<a name="workflows-depends-on-example-simple"></a>

Contoh berikut menunjukkan cara mengkonfigurasi `Test` tindakan untuk bergantung pada `Build` tindakan menggunakan `DependsOn` properti.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Configuration:
      ...
  Test:
    DependsOn:
      - Build
    Identifier: aws/managed-test@v1
     Configuration:
       ...
```

## Contoh: Mengonfigurasi grup tindakan untuk bergantung pada tindakan
<a name="workflows-depends-on-example-action-groups-actions"></a>

Contoh berikut menunjukkan cara mengkonfigurasi grup `DeployGroup` tindakan untuk bergantung pada `FirstAction` tindakan. Perhatikan bahwa action dan action group berada pada level yang sama.

```
Actions:
  FirstAction: #An action outside an action group
    Identifier: aws/github-actions-runner@v1
    Configuration:
      ...
  DeployGroup: #An action group containing two actions
    DependsOn: 
      - FirstAction
    Actions:
      DeployAction1:
      ...
      DeployAction2:
      ...
```

## Contoh: Mengkonfigurasi grup tindakan untuk bergantung pada grup tindakan lain
<a name="workflows-depends-on-example-two-action-groups"></a>

Contoh berikut menunjukkan cara mengkonfigurasi grup `DeployGroup` tindakan untuk bergantung pada grup `BuildAndTestGroup` tindakan. Perhatikan bahwa kelompok aksi berada pada level yang sama.

```
Actions:
  BuildAndTestGroup: # Action group 1
    Actions:
      BuildAction:
      ...
      TestAction:
      ...
  DeployGroup: #Action group 2
    DependsOn: 
      - BuildAndTestGroup
    Actions:
      DeployAction1:
      ...
      DeployAction2:
      ...
```

## Contoh: Mengonfigurasi grup tindakan agar bergantung pada beberapa tindakan
<a name="workflows-depends-on-example-advanced"></a>

Contoh berikut menunjukkan cara mengonfigurasi grup `DeployGroup` tindakan agar bergantung pada `FirstAction` tindakan, `SecondAction` tindakan, serta grup `BuildAndTestGroup` tindakan. Perhatikan bahwa `DeployGroup` berada pada tingkat yang sama dengan`FirstAction`,`SecondAction`, dan`BuildAndTestGroup`.

```
Actions:
  FirstAction: #An action outside an action group
    ...
  SecondAction: #Another action 
    ...
  BuildAndTestGroup: #Action group 1
    Actions:
      Build:
      ...
      Test:
      ...
  DeployGroup: #Action group 2
    DependsOn: 
      - FirstAction
      - SecondAction
      - BuildAndTestGroup
    Actions:
      DeployAction1:
      ...
      DeployAction2:
      ...
```

# Menyiapkan dependensi antar tindakan
<a name="workflows-depends-on-set-up"></a>

Gunakan petunjuk berikut untuk mengatur dependensi antar tindakan dalam alur kerja.

Saat mengonfigurasi dependensi, ikuti panduan ini:
+ Jika suatu tindakan berada di dalam grup, tindakan itu hanya dapat bergantung pada tindakan lain dalam grup yang sama.
+ Tindakan dan grup tindakan dapat bergantung pada tindakan dan kelompok tindakan lain *pada tingkat yang sama* dalam hierarki YAMAL, tetapi *tidak* pada tingkat yang berbeda.

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

**Untuk mengatur dependensi 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 akan bergantung pada tindakan lain.

1. Pilih tab **Input**.

1. Dalam **Tergantung pada - opsional**, lakukan hal berikut:

   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)

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

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

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

**Untuk mengatur dependensi 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 yang akan bergantung pada yang lain, tambahkan kode yang mirip dengan yang berikut ini:

   ```
   action-name:
     DependsOn:
       - action-1
   ```

   Untuk contoh lainnya, lihat [Contoh cara mengonfigurasi dependensi antar tindakan](workflows-depends-on-examples.md). Untuk pedoman umum, lihat[Menyiapkan dependensi antar tindakan](#workflows-depends-on-set-up). Untuk informasi selengkapnya, lihat deskripsi `DependsOn` properti di [Alur kerja definisi YAMAL](workflow-reference.md) for your action.

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

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

------

# Berbagi artefak dan file antar tindakan
<a name="workflows-working-artifacts"></a>

*Artefak* adalah output dari tindakan alur kerja, dan biasanya terdiri dari folder atau arsip file. Artefak penting karena memungkinkan Anda berbagi file dan informasi antar tindakan.

Misalnya, Anda mungkin memiliki tindakan build yang *menghasilkan* `sam-template.yml` file, tetapi Anda ingin tindakan penerapan *menggunakannya*. Dalam skenario ini, Anda akan menggunakan artefak untuk memungkinkan tindakan build membagikan `sam-template.yml` file dengan tindakan penerapan. Kodenya mungkin terlihat seperti ini:

```
Actions:
  BuildAction:
    Identifier: aws/build@v1
    Steps:
      - Run: sam package --output-template-file sam-template.yml
    Outputs:
      Artifacts:
        - Name: MYARTIFACT
          Files:
            - sam-template.yml
  DeployAction:
    Identifier: aws/cfn-deploy@v1  
    Inputs:
      Artifacts:
        - MYARTIFACT
    Configuration:
      template: sam-template.yml
```

Dalam kode sebelumnya, build action (`BuildAction`) menghasilkan `sam-template.yml` file, dan kemudian menambahkannya ke artefak keluaran yang disebut`MYARTIFACT`. Tindakan penerapan berikutnya (`DeployAction`) menentukan `MYARTIFACT` sebagai input, memberikannya akses ke file. `sam-template.yml`

**Topics**
+ [Dapatkah saya membagikan artefak tanpa menentukannya sebagai output dan input?](#workflows-working-artifacts-share)
+ [Bisakah saya berbagi artefak antar alur kerja?](#workflows-working-artifacts-share-wf)
+ [Contoh artefak](workflows-working-artifacts-ex.md)
+ [Mendefinisikan artefak keluaran](workflows-working-artifacts-output.md)
+ [Mendefinisikan artefak input](workflows-working-artifacts-refer.md)
+ [Mereferensikan file dalam artefak](workflows-working-artifacts-refer-files.md)
+ [Mengunduh artefak](workflows-download-workflow-outputs.md)

## Dapatkah saya membagikan artefak tanpa menentukannya sebagai output dan input?
<a name="workflows-working-artifacts-share"></a>

Ya, Anda dapat berbagi artefak antar tindakan tanpa menentukannya di `Outputs` dan `Inputs` bagian kode YAMM tindakan Anda. Untuk melakukan ini, Anda harus mengaktifkan berbagi komputasi. Untuk informasi selengkapnya tentang berbagi komputasi dan cara menentukan artefak saat dihidupkan, lihat. [Berbagi komputasi di seluruh tindakan](compute-sharing.md) 

**catatan**  
Meskipun fitur berbagi komputasi memungkinkan Anda menyederhanakan kode YAMM alur kerja Anda dengan menghilangkan kebutuhan untuk `Inputs` bagian `Outputs` dan, fitur ini memiliki batasan yang harus Anda ketahui sebelum Anda menyalakannya. Untuk informasi tentang keterbatasan ini, lihat[Pertimbangan untuk berbagi komputasi](compute-sharing.md#compare-compute-sharing).

## Bisakah saya berbagi artefak antar alur kerja?
<a name="workflows-working-artifacts-share-wf"></a>

Tidak, Anda tidak dapat berbagi artefak di antara alur kerja yang berbeda; namun, Anda dapat berbagi artefak antar tindakan dalam alur kerja yang sama.

# Contoh artefak
<a name="workflows-working-artifacts-ex"></a>

Contoh berikut menunjukkan cara mengeluarkan, memasukkan, dan mereferensikan artefak dalam file definisi CodeCatalyst alur kerja Amazon.

**Topics**
+ [Contoh: Menghasilkan artefak](#workflows-working-artifacts-ex-basic)
+ [Contoh: Memasukkan artefak yang dihasilkan oleh tindakan lain](#workflows-working-artifacts-ex-ref)
+ [Contoh: Merujuk file dalam beberapa artefak](#workflows-working-artifacts-ex-ref-file)
+ [Contoh: Mereferensikan file dalam satu artefak](#workflows-working-artifacts-ex-ref-file-one)
+ [Contoh: Mereferensikan file dalam artefak saat ada WorkflowSource](#workflows-working-artifacts-ex-ref-file-wf-source)
+ [Contoh: Mereferensikan file dalam artefak saat grup aksi hadir](#workflows-working-artifacts-ex-groups)

## Contoh: Menghasilkan artefak
<a name="workflows-working-artifacts-ex-basic"></a>

Contoh berikut menunjukkan bagaimana untuk output artefak yang mencakup dua file.jar.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Outputs:
      Artifacts:
        - Name: ARTIFACT1
          Files:
            - build-output/file1.jar
            - build-output/file2.jar
```

## Contoh: Memasukkan artefak yang dihasilkan oleh tindakan lain
<a name="workflows-working-artifacts-ex-ref"></a>

Contoh berikut menunjukkan kepada Anda cara menampilkan artefak yang dipanggil `ARTIFACT4``BuildActionA`, dan memasukkannya ke dalam`BuildActionB`.

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ARTIFACT4
          Files:
            - build-output/file1.jar
            - build-output/file2.jar
  BuildActionB:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ARTIFACT4
    Configuration:
```

## Contoh: Merujuk file dalam beberapa artefak
<a name="workflows-working-artifacts-ex-ref-file"></a>

Contoh berikut menunjukkan kepada Anda cara menampilkan dua artefak bernama `ART5` dan `ART6` masuk`BuildActionC`, dan kemudian referensi dua file bernama `file5.txt` (dalam artefak`ART5`) dan `file6.txt` (dalam artefak`ART6`) di `BuildActionD` (bawah). `Steps`

**catatan**  
Untuk informasi selengkapnya tentang referensi file, lihat[Mereferensikan file dalam artefak](workflows-working-artifacts-refer-files.md).

**catatan**  
Meskipun contoh menunjukkan `$CATALYST_SOURCE_DIR_ART5` awalan yang digunakan, Anda bisa menghilangkannya. Ini karena `ART5` merupakan *masukan utama*. Untuk mempelajari lebih lanjut tentang input utama, lihat[Mereferensikan file dalam artefak](workflows-working-artifacts-refer-files.md). 

```
Actions:
  BuildActionC:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART5
          Files:
            - build-output/file5.txt
        - Name: ART6
          Files:
            - build-output/file6.txt
  BuildActionD:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ART5
        - ART6
    Configuration:
      Steps:
        - run: cd $CATALYST_SOURCE_DIR_ART5/build-output && cat file5.txt
        - run: cd $CATALYST_SOURCE_DIR_ART6/build-output && cat file6.txt
```

## Contoh: Mereferensikan file dalam satu artefak
<a name="workflows-working-artifacts-ex-ref-file-one"></a>

Contoh berikut menunjukkan kepada Anda cara menampilkan satu artefak bernama `ART7``BuildActionE`, dan kemudian referensi `file7.txt` (dalam artefak`ART7`) di `BuildActionF` (bawah`Steps`).

Perhatikan bagaimana referensi tidak memerlukan `$CATALYST_SOURCE_DIR_` *artifact-name* awalan di depan `build-output` direktori seperti yang terjadi di[Contoh: Merujuk file dalam beberapa artefak](#workflows-working-artifacts-ex-ref-file). Ini karena hanya ada satu item yang ditentukan di bawah`Inputs`.

**catatan**  
Untuk informasi selengkapnya tentang referensi file, lihat[Mereferensikan file dalam artefak](workflows-working-artifacts-refer-files.md).

```
Actions:
  BuildActionE:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART7
          Files:
            - build-output/file7.txt
  BuildActionF:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ART7
    Configuration:
      Steps:
        - run: cd build-output && cat file7.txt
```

## Contoh: Mereferensikan file dalam artefak saat ada WorkflowSource
<a name="workflows-working-artifacts-ex-ref-file-wf-source"></a>

Contoh berikut menunjukkan kepada Anda cara menampilkan satu artefak bernama `ART8``BuildActionG`, dan kemudian referensi `file8.txt` (dalam artefak`ART8`) di `BuildActionH` (bawah`Steps`).

Perhatikan bagaimana referensi membutuhkan `$CATALYST_SOURCE_DIR_` *artifact-name* awalan, seperti yang terjadi di[Contoh: Merujuk file dalam beberapa artefak](#workflows-working-artifacts-ex-ref-file). Ini karena ada beberapa item yang ditentukan di bawah `Inputs` (sumber dan artefak), jadi Anda memerlukan awalan untuk menunjukkan di mana harus mencari file.

**catatan**  
Untuk informasi selengkapnya tentang referensi file, lihat[Mereferensikan file dalam artefak](workflows-working-artifacts-refer-files.md).

```
Actions:
  BuildActionG:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART8
          Files:
            - build-output/file8.txt
  BuildActionH:
    Identifier: aws/build@v1  
    Inputs:
      Sources:
        - WorkflowSource
      Artifacts:
        - ART8
    Configuration:
      Steps:
        - run: cd $CATALYST_SOURCE_DIR_ART8/build-output && cat file8.txt
```

## Contoh: Mereferensikan file dalam artefak saat grup aksi hadir
<a name="workflows-working-artifacts-ex-groups"></a>

Contoh berikut menunjukkan kepada Anda cara menampilkan artefak bernama `ART9``ActionGroup1`,`ActionI`, dan kemudian referensi `file9.txt` (dalam artefak`ART9`) di. `ActionJ`

Untuk informasi selengkapnya tentang referensi file, lihat[Mereferensikan file dalam artefak](workflows-working-artifacts-refer-files.md).

```
Actions:
  ActionGroup1:
    Actions:
      ActionI:
        Identifier: aws/build@v1
        Outputs:
          Artifacts:
            - Name: ART9
              Files:
                - build-output/file9.yml
      ActionJ:
        Identifier: aws/cfn-deploy@v1 
        Inputs:
          Sources:
            - WorkflowSource
          Artifacts:
            - ART9
        Configuration:
          template: /artifacts/ActionGroup1@ActionJ/ART9/build-output/file9.yml
```

# Mendefinisikan artefak keluaran
<a name="workflows-working-artifacts-output"></a>

Gunakan petunjuk berikut untuk menentukan artefak yang Anda inginkan untuk menampilkan CodeCatalyst tindakan Amazon. Artefak ini kemudian tersedia untuk tindakan lain untuk digunakan.

**catatan**  
Tidak semua tindakan mendukung artefak keluaran. Untuk menentukan apakah tindakan Anda mendukungnya, jalankan melalui instruksi editor visual yang mengikuti, dan lihat apakah tindakan tersebut menyertakan tombol **artefak Output** pada tab **Output**. Jika ya, artefak keluaran didukung. 

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

**Untuk menentukan artefak keluaran 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 akan menghasilkan artefak.

1. Pilih tab **Output**.

1. Di bawah **Artefak**, pilih **Tambahkan artefak**.

1. Pilih **Tambahkan artefak**, dan masukkan informasi ke dalam bidang, sebagai berikut.

    **Bangun nama artefak** 

   Tentukan nama artefak yang dihasilkan oleh tindakan. Nama artifak harus unik dalam alur kerja, dan terbatas pada karakter alfanumerik (a-z, A-Z, 0-9) dan garis bawah (\$1). Spasi, tanda hubung (-), dan karakter khusus lainnya tidak diperbolehkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan spasi, tanda hubung, dan karakter khusus lainnya dalam nama artefak keluaran.

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

    **File yang dihasilkan oleh build** 

   Tentukan file yang CodeCatalyst termasuk dalam artefak yang dihasilkan oleh tindakan. File-file ini dihasilkan oleh tindakan alur kerja saat dijalankan, dan juga tersedia di repositori sumber Anda. Jalur file dapat berada di repositori sumber atau artefak dari tindakan sebelumnya, dan relatif terhadap repositori sumber atau root artefak. Anda dapat menggunakan pola glob untuk menentukan jalur. Contoh:
   + Untuk menentukan satu file yang ada di root lokasi build atau lokasi repositori sumber, gunakan. `my-file.jar`
   + Untuk menentukan satu file dalam subdirektori, gunakan `directory/my-file.jar` atau`directory/subdirectory/my-file.jar`.
   + Untuk menentukan semua file, gunakan`"**/*"`. Pola `**` glob menunjukkan untuk mencocokkan sejumlah subdirektori.
   + Untuk menentukan semua file dan direktori dalam direktori bernama`directory`, gunakan`"directory/**/*"`. Pola `**` glob menunjukkan untuk mencocokkan sejumlah subdirektori.
   + Untuk menentukan semua file dalam direktori bernama`directory`, tetapi tidak salah satu subdirektorinya, gunakan. `"directory/*"` 
**catatan**  
Jika jalur file Anda menyertakan satu atau beberapa tanda bintang (`*`) atau karakter khusus lainnya, lampirkan jalur dengan tanda kutip ganda (). `""` Untuk informasi lebih lanjut tentang karakter khusus, lihat[Pedoman dan konvensi sintaks](workflow-reference.md#workflow.terms.syntax.conv).

   Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihat[Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).
**catatan**  
Anda mungkin perlu menambahkan awalan ke 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).

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

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

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

**Untuk menentukan artefak keluaran menggunakan editor YAMM**

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, tambahkan kode yang mirip dengan berikut ini:

   ```
   action-name:
     Outputs:
       Artifacts:
         - Name: artifact-name
           Files:
             - file-path-1
             - file-path-2
   ```

   Untuk contoh lainnya, lihat [Contoh artefak](workflows-working-artifacts-ex.md). Untuk informasi selengkapnya, lihat [Alur kerja definisi YAMAL](workflow-reference.md) untuk tindakan Anda.

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

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

------

# Mendefinisikan artefak input
<a name="workflows-working-artifacts-refer"></a>

Jika Anda ingin menggunakan artefak yang dihasilkan oleh CodeCatalyst tindakan Amazon lain, Anda harus menentukannya sebagai input untuk tindakan saat ini. Anda mungkin dapat menentukan beberapa artefak sebagai input—itu tergantung pada tindakan. Untuk informasi selengkapnya, lihat [Alur kerja definisi YAMAL](workflow-reference.md) untuk tindakan Anda.

**catatan**  
Anda tidak dapat mereferensikan artefak dari alur kerja lain.

Gunakan petunjuk berikut untuk menentukan artefak dari tindakan lain sebagai masukan untuk tindakan saat ini.

**Prasyarat**  
Sebelum Anda mulai, pastikan Anda memiliki output artefak dari tindakan lain. Untuk informasi selengkapnya, lihat [Mendefinisikan artefak keluaran](workflows-working-artifacts-output.md). Mengeluarkan artefak membuatnya tersedia untuk tindakan lain untuk digunakan.

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

**Untuk menentukan artefak sebagai masukan untuk 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 **Visual**.

1. Dalam diagram alur kerja, pilih tindakan di mana Anda ingin menentukan artefak sebagai input.

1. Pilih **Input**.

1. Dalam **Artefak - opsional**, lakukan hal berikut:

   Tentukan artefak dari tindakan sebelumnya yang ingin Anda berikan sebagai masukan untuk tindakan ini. Artefak ini harus sudah didefinisikan sebagai artefak keluaran dalam tindakan sebelumnya.

   Jika Anda tidak menentukan artefak input apa pun, maka Anda harus menentukan setidaknya satu repositori sumber di bawah. `action-name/Inputs/Sources`

   Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihat[Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).
**catatan**  
Jika **Artefacts - daftar drop-down opsional** tidak tersedia (editor visual), atau jika Anda mendapatkan kesalahan saat memvalidasi YAMAL (editor YAMAL), itu mungkin karena tindakan hanya mendukung satu input. Dalam hal ini, coba hapus input sumber.

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

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

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

**Untuk menentukan artefak sebagai masukan 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 di mana Anda ingin menentukan artefak sebagai input, tambahkan kode yang mirip dengan berikut ini:

   ```
   action-name:
     Inputs:
       Artifacts:
         - artifact-name
   ```

   Untuk contoh lainnya, lihat [Contoh artefak](workflows-working-artifacts-ex.md).

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

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

------

# Mereferensikan file dalam artefak
<a name="workflows-working-artifacts-refer-files"></a>

Jika Anda memiliki file yang berada dalam artefak, dan Anda perlu merujuk ke file ini di salah satu tindakan CodeCatalyst alur kerja Amazon Anda, selesaikan prosedur berikut.

**catatan**  
Lihat juga [Merujuk file repositori sumber](workflows-sources-reference-files.md).

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

*Tidak tersedia. Pilih YAMG untuk melihat instruksi YAMG.*

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

**Untuk mereferensikan file dalam artefak (editor YAMG)**

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 di mana Anda ingin mereferensikan file, tambahkan kode yang mirip dengan yang berikut ini:

   ```
   Actions:
     My-action:
       Inputs:
         Sources:
           - WorkflowSource
         Artifacts:
           - artifact-name  
       Configuration:
         template: artifact-path/path/to/file.yml
   ```

   Pada kode sebelumnya, ganti:
   + *artifact-name*dengan nama artefak.
   + *artifact-path*dengan nilai dari tabel berikut.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/workflows-working-artifacts-refer-files.html)

   Sebagai contoh, lihat [Contoh artefak](workflows-working-artifacts-ex.md).
**catatan**  
Anda dapat menghilangkan *artifact-path* dan hanya menentukan jalur file relatif terhadap direktori root artefak jika:  
Tindakan di mana Anda menyertakan referensi hanya menyertakan satu item di bawah `Inputs` (misalnya, ini mencakup satu artefak input dan tidak ada sumber).
File yang ingin Anda referensikan berada di input utama. *Input utama* adalah`WorkflowSource`, atau artefak input pertama yang terdaftar, jika tidak `WorkflowSource` ada.

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

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

------

# Mengunduh artefak
<a name="workflows-download-workflow-outputs"></a>

Anda dapat mengunduh dan memeriksa artefak yang dihasilkan oleh tindakan CodeCatalyst alur kerja Amazon untuk tujuan pemecahan masalah. Ada dua jenis artefak yang dapat Anda unduh:
+ **Artefak sumber** — Artefak yang berisi snapshot konten repositori sumber seperti yang ada saat proses dijalankan.
+ **Artefak alur kerja** - Artefak yang didefinisikan dalam `Outputs` properti file konfigurasi alur kerja Anda.

**Untuk mengunduh keluaran artefak berdasarkan 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. Di bawah nama alur kerja, pilih **Runs**.

1. Di **Riwayat Jalankan****, di kolom Run ID**, pilih run. Misalnya, `Run-95a4d`.

1. Di bawah nama run, pilih **Artefak**.

1. Di samping artefak, pilih **Unduh**. File arsip diunduh. Nama filenya terdiri dari tujuh karakter acak.

1. Ekstrak arsip menggunakan utilitas ekstraksi arsip pilihan Anda.

# Menentukan versi tindakan yang akan digunakan
<a name="workflows-action-versions"></a>

Secara default, saat Anda menambahkan tindakan ke alur kerja, Amazon CodeCatalyst menambahkan versi lengkap ke file definisi alur kerja menggunakan format:

 `vmajor.minor.patch` 

Contoh:

```
My-Build-Action:
  Identifier: aws/build@v1.0.0
```

Anda dapat mempersingkat versi lengkap di `Identifier` properti sehingga alur kerja selalu menggunakan versi minor atau patch terbaru dari tindakan.

Misalnya, jika Anda menentukan:

```
My-CloudFormation-Action:
  Identifier: aws/cfn-deploy@v1.0
```

... dan versi patch terbaru adalah`1.0.4`, maka tindakan akan digunakan`1.0.4`. Jika versi yang lebih baru dirilis, katakanlah`1.0.5`, maka tindakan akan digunakan`1.0.5`. Jika versi minor dirilis, katakanlah`1.1.0`, maka tindakan akan terus digunakan`1.0.5`.

Untuk petunjuk terperinci tentang menentukan versi, lihat salah satu topik berikut.

Gunakan petunjuk berikut untuk menunjukkan versi tindakan yang ingin digunakan alur kerja Anda. Anda dapat menentukan versi mayor atau minor terbaru, atau versi patch tertentu.

Sebaiknya gunakan versi minor atau patch terbaru dari suatu tindakan.

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

 *Tidak tersedia. Pilih YAMG untuk melihat instruksi YAMG.* 

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

**Untuk mengonfigurasi alur kerja agar menggunakan versi terbaru dari suatu tindakan, atau versi tambalan tertentu**

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 **YAMG.**

1. Temukan tindakan yang versinya ingin Anda edit.

1. Temukan `Identifier` properti tindakan, dan atur versi ke salah satu dari berikut ini:
   + action-identifier @v *major* — Gunakan sintaks ini agar alur kerja menggunakan versi mayor tertentu, dan izinkan versi minor dan patch terbaru dipilih secara otomatis.
   + pengidentifikasi tindakan @v. *major* *minor*— Gunakan sintaks ini agar alur kerja menggunakan versi minor tertentu, dan izinkan versi patch terbaru dipilih secara otomatis.
   + pengidentifikasi tindakan @v. *major* *minor*. *patch* — Gunakan sintaks ini agar alur kerja menggunakan versi patch tertentu.
**catatan**  
Jika Anda tidak yakin versi mana yang tersedia, lihat[Daftar versi tindakan yang tersedia](workflows-action-versions-determine.md).
**catatan**  
Anda tidak dapat menghilangkan versi utama.

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

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

------

# Daftar versi tindakan yang tersedia
<a name="workflows-action-versions-determine"></a>

Gunakan petunjuk berikut untuk menentukan versi tindakan yang tersedia untuk Anda gunakan dalam alur kerja.

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

**Untuk menentukan versi tindakan mana yang tersedia**

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

1. Pilih proyek Anda.

1. Temukan tindakan yang versinya ingin Anda lihat:

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

   1. Pilih nama alur kerja apa pun, atau buat satu. Untuk informasi tentang membuat alur kerja, lihat[Membuat alur kerja](workflows-create-workflow.md).

   1. Pilih **Edit**.

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

   1. Di daftar drop-down, pilih **Amazon CodeCatalyst** untuk melihat CodeCatalyst, CodeCatalyst Lab, dan tindakan pihak ketiga, atau pilih **GitHub**untuk melihat Tindakan yang dikurasi GitHub.

   1. Cari tindakan, dan pilih namanya. Jangan memilih tanda plus (**\$1**).

      Detail tentang tindakan muncul.

1. Di kotak dialog detail tindakan, di dekat kanan atas, pilih daftar drop-down **Versi** untuk melihat daftar versi tindakan yang tersedia.

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

 *Tidak tersedia. Pilih 'visual' untuk melihat instruksi editor visual.* 

------

# Melihat kode sumber tindakan
<a name="workflows-view-source"></a>

Anda dapat melihat kode sumber tindakan untuk memastikannya tidak mengandung kode berisiko, kerentanan keamanan, atau cacat lainnya.

Gunakan petunjuk berikut untuk melihat kode sumber tindakan [CodeCatalyst](workflows-actions.md#workflows-actions-types-cc), [CodeCatalyst Lab](workflows-actions.md#workflows-actions-types-cc-labs), atau [pihak ketiga](workflows-actions.md#workflows-actions-types-3p).

**catatan**  
Untuk melihat kode sumber [GitHubAction](workflows-actions.md#workflows-actions-types-github), buka halaman tindakan di [GitHub Marketplace](https://github.com/marketplace/actions). Halaman ini menyertakan tautan ke repositori tindakan, tempat Anda dapat menemukan kode sumber tindakan.

**catatan**  
Anda tidak dapat melihat kode sumber dari CodeCatalyst tindakan berikut: [build](build-workflow-actions.md), [test](test-workflow-actions.md), [GitHub Actions](integrations-github-action-add.md).

**catatan**  
AWS tidak mendukung atau menjamin kode tindakan Tindakan atau GitHub tindakan pihak ketiga.<a name="workflows-to-view-source-cc"></a>

**Untuk melihat kode sumber tindakan**

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

1. Pilih proyek Anda.

1. Temukan tindakan yang kodenya ingin Anda lihat:

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

   1. Pilih nama alur kerja apa pun, atau buat satu. Untuk informasi tentang membuat alur kerja, lihat[Membuat alur kerja](workflows-create-workflow.md).

   1. Pilih **Edit**.

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

   1. Di daftar drop-down, pilih **Amazon CodeCatalyst** untuk melihat CodeCatalyst, CodeCatalyst Labs, dan tindakan pihak ketiga.

   1. Cari tindakan, dan pilih namanya. Jangan memilih tanda plus (**\$1**).

      Detail tentang tindakan muncul.

1. Di kotak dialog detail tindakan, di dekat bagian bawah, pilih **Unduh**.

   Sebuah halaman muncul, menunjukkan bucket Amazon S3 tempat kode sumber tindakan berada. Untuk informasi tentang Amazon S3, lihat [Apa itu Amazon S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.

1. Periksa kode untuk memastikannya memenuhi harapan Anda akan kualitas dan keamanan. 

# Integrasi dengan Tindakan GitHub
<a name="integrations-github-actions"></a>

*GitHub Aksi* sangat mirip dengan [CodeCatalyst tindakan](workflows-actions.md#workflows-actions-types-cc), kecuali bahwa itu dikembangkan untuk digunakan dengan GitHub alur kerja. Untuk detail tentang GitHub Tindakan, lihat dokumentasi [GitHub Tindakan](https://docs.github.com/en/actions).

Anda dapat menggunakan GitHub Tindakan bersama CodeCatalyst tindakan asli dalam CodeCatalyst alur kerja.

Ada dua cara untuk menambahkan GitHub Action ke CodeCatalyst alur kerja:
+ Anda dapat memilih GitHub Tindakan dari daftar yang dikuratori di CodeCatalyst konsol. Beberapa GitHub Tindakan populer tersedia. Untuk informasi selengkapnya, lihat [Menambahkan Action yang dikuratori GitHub](integrations-github-action-add-curated.md).
+ Jika GitHub Tindakan yang ingin Anda gunakan tidak tersedia di CodeCatalyst konsol, Anda dapat menambahkannya menggunakan **GitHub tindakan** Tindakan.

  ***GitHub Tindakan Tindakan*** adalah *CodeCatalyst tindakan* yang membungkus GitHub Action dan membuatnya kompatibel dengan CodeCatalyst alur kerja.

  Berikut adalah contoh **GitHub tindakan Actions** yang membungkus [ GitHubSuper-Linter](https://github.com/marketplace/actions/super-linter) Action:

  ```
  Actions:
    GitHubAction:
      Identifier: aws/github-actions-runner@v1
      Configuration:
        Steps:
          - name: Lint Code Base
            uses: github/super-linter@v4
            env:
              VALIDATE_ALL_CODEBASE: "true"
              DEFAULT_BRANCH: main
  ```

  Dalam kode sebelumnya, CodeCatalyst **GitHub tindakan Tindakan** (diidentifikasi oleh`aws/github-actions-runner@v1`) membungkus tindakan Super-Linter (diidentifikasi oleh`github/super-linter@v4`), membuatnya bekerja dalam alur kerja. CodeCatalyst 

  Untuk informasi selengkapnya, lihat [Menambahkan tindakan 'GitHub Tindakan'](integrations-github-action-add.md).

Semua GitHub tindakan—baik yang dikuratori maupun tidak—harus dibungkus di dalam **GitHub Actions** action (`aws/github-actions-runner@v1`), seperti yang ditunjukkan pada contoh sebelumnya. Pembungkus diperlukan agar tindakan berfungsi dengan baik. 

**Topics**
+ [Bagaimana GitHub tindakan berbeda dari CodeCatalyst tindakan?](#integrations-github-actions-how-different)
+ [Bisakah GitHub Tindakan berinteraksi dengan CodeCatalyst tindakan lain dalam alur kerja?](#integrations-github-actions-interactions.title)
+ [GitHub Tindakan apa yang bisa saya gunakan?](#integrations-github-actions-supported)
+ [Keterbatasan GitHub Tindakan di CodeCatalyst](#integrations-github-actions-limitations)
+ [Bagaimana cara menambahkan GitHub Action (langkah-langkah tingkat tinggi)?](#integrations-github-actions-how-to)
+ [Apakah GitHub Aksi berjalan GitHub?](#integrations-github-actions-where-it-runs)
+ [Bisakah saya menggunakan GitHub alur kerja juga?](#integrations-github-actions-workflows-support.title)
+ [Gambar runtime yang digunakan oleh aksi 'GitHub Actions'](#integrations-github-actions-runtime)
+ [Tutorial: Kode lint menggunakan Action GitHub](integrations-github-action-tutorial.md)
+ [Menambahkan tindakan 'GitHub Tindakan'](integrations-github-action-add.md)
+ [Menambahkan Action yang dikuratori GitHub](integrations-github-action-add-curated.md)
+ [Mengekspor parameter GitHub output](integrations-github-action-export.md)
+ [Merujuk parameter GitHub keluaran](integrations-github-action-referencing.md)
+ [GitHub Aksi 'Tindakan' YAMB](github-action-ref.md)

## Bagaimana GitHub tindakan berbeda dari CodeCatalyst tindakan?
<a name="integrations-github-actions-how-different"></a>

GitHub Tindakan yang digunakan di dalam CodeCatalyst alur kerja tidak memiliki tingkat akses dan integrasi yang sama dengan AWS dan CodeCatalyst fitur (seperti [lingkungan](deploy-environments.md) dan [masalah](issues.md)) yang dilakukan CodeCatalyst tindakan.

## Bisakah GitHub Tindakan berinteraksi dengan CodeCatalyst tindakan lain dalam alur kerja?
<a name="integrations-github-actions-interactions.title"></a>

Ya. Misalnya, GitHub Actions dapat menggunakan variabel yang dihasilkan oleh CodeCatalyst tindakan lain sebagai input, dan juga dapat berbagi parameter output dan artefak dengan CodeCatalyst tindakan. Untuk informasi selengkapnya, lihat [Mengekspor parameter GitHub output](integrations-github-action-export.md) dan [Merujuk parameter GitHub keluaran](integrations-github-action-referencing.md).

## GitHub Tindakan apa yang bisa saya gunakan?
<a name="integrations-github-actions-supported"></a>

Anda dapat menggunakan GitHub Action apa pun yang tersedia melalui CodeCatalyst konsol, dan GitHub Action apa pun yang tersedia di [GitHubMarketplace](https://github.com/marketplace/actions). Jika Anda memutuskan untuk menggunakan GitHub Action dari Marketplace, ingatlah [batasan](#integrations-github-actions-limitations) berikut.

## Keterbatasan GitHub Tindakan di CodeCatalyst
<a name="integrations-github-actions-limitations"></a>
+ GitHub Tindakan tidak dapat digunakan dengan tipe [komputasi CodeCatalyst Lambda](workflows-working-compute.md#compute.types).
+ GitHub Tindakan berjalan pada image Docker lingkungan runtime [November 2022](build-images.md#build.previous-image), yang mencakup perkakas yang lebih lama. Untuk informasi selengkapnya tentang gambar dan perkakas, lihat[Menentukan gambar lingkungan runtime](build-images.md).
+ GitHub Tindakan yang secara internal bergantung pada [`github`konteks](https://docs.github.com/en/actions/learn-github-actions/contexts#github-context) atau sumber daya GitHub spesifik referensi itu tidak akan berfungsi. CodeCatalyst Misalnya, tindakan berikut tidak akan berfungsi di CodeCatalyst:
  + Tindakan yang mencoba menambah, mengubah, atau memperbarui GitHub sumber daya. Contohnya termasuk tindakan yang memperbarui permintaan tarik, atau membuat masalah di GitHub.
  + Hampir semua tindakan yang tercantum dalam [https://github.com/actions](https://github.com/actions).
+ GitHub Tindakan yang merupakan [tindakan kontainer Docker](https://docs.github.com/en/actions/creating-actions/about-custom-actions#docker-container-actions) akan berfungsi, tetapi harus dijalankan oleh pengguna Docker default (root). Jangan menjalankan tindakan sebagai pengguna 1001. (Pada saat penulisan, pengguna 1001 bekerja di GitHub, tetapi tidak di CodeCatalyst.) Untuk informasi selengkapnya, lihat topik [USER](https://docs.github.com/en/actions/creating-actions/dockerfile-support-for-github-actions#user) di [dukungan Dockerfile untuk GitHub Tindakan](https://docs.github.com/en/actions/creating-actions/dockerfile-support-for-github-actions).

Untuk daftar GitHub Tindakan yang tersedia melalui CodeCatalyst konsol, lihat[Menambahkan Action yang dikuratori GitHub](integrations-github-action-add-curated.md).

## Bagaimana cara menambahkan GitHub Action (langkah-langkah tingkat tinggi)?
<a name="integrations-github-actions-how-to"></a>

Langkah-langkah tingkat tinggi untuk menambahkan GitHub Action ke CodeCatalyst alur kerja adalah sebagai berikut:

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

1. Di alur kerja, Anda **menambahkan GitHub Tindakan yang dikuratori** atau **menambahkan GitHub tindakan Tindakan**.

1. Anda melakukan salah satu dari yang berikut:
   + Jika Anda memilih untuk menambahkan tindakan yang dikuratori, konfigurasikan. Untuk informasi selengkapnya, lihat [Menambahkan Action yang dikuratori GitHub](integrations-github-action-add-curated.md).
   + Jika Anda memilih untuk menambahkan tindakan yang tidak dikurasi, dalam tindakan **GitHubTindakan**, Anda **menempelkan kode YAMAL GitHub Action**. Anda dapat menemukan kode ini di halaman detail GitHub Tindakan yang Anda pilih di [GitHubMarketplace](https://github.com/marketplace/actions). Anda mungkin perlu memodifikasi kode sedikit agar berfungsi CodeCatalyst. Untuk informasi selengkapnya, lihat [Menambahkan tindakan 'GitHub Tindakan'](integrations-github-action-add.md).

1. (Opsional) Dalam alur kerja, **Anda menambahkan tindakan lain seperti tindakan** build dan test. Untuk informasi selengkapnya, lihat [Bangun, uji, dan terapkan dengan alur kerjaBangun, uji, dan terapkan dengan alur kerja](workflow.md).

1. Anda **memulai alur kerja** baik secara manual atau otomatis melalui pemicu. Alur kerja menjalankan GitHub Tindakan dan tindakan lainnya dalam alur kerja. Untuk informasi selengkapnya, lihat [Memulai proses alur kerja secara manual](workflows-manually-start.md).

Untuk langkah-langkah rinci, lihat:
+ [Menambahkan Action yang dikuratori GitHub](integrations-github-action-add-curated.md).
+ [Menambahkan tindakan 'GitHub Tindakan'](integrations-github-action-add.md).

## Apakah GitHub Aksi berjalan GitHub?
<a name="integrations-github-actions-where-it-runs"></a>

Tidak. GitHub Action berjalan di CodeCatalyst, menggunakan CodeCatalyst [image lingkungan runtime](workflows-working-compute.md).

## Bisakah saya menggunakan GitHub alur kerja juga?
<a name="integrations-github-actions-workflows-support.title"></a>

Tidak.

## Gambar runtime yang digunakan oleh aksi 'GitHub Actions'
<a name="integrations-github-actions-runtime"></a>

Aksi CodeCatalyst **GitHub Tindakan** 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: Kode lint menggunakan Action GitHub
<a name="integrations-github-action-tutorial"></a>

Dalam tutorial ini, Anda menambahkan [Super-Linter GitHub Action ke alur kerja](https://github.com/marketplace/actions/super-linter) Amazon CodeCatalyst . Tindakan Super-Linter memeriksa kode, menemukan area di mana kode memiliki kesalahan, masalah pemformatan, dan konstruksi yang mencurigakan, dan kemudian mengeluarkan hasilnya ke konsol). CodeCatalyst Setelah menambahkan linter ke alur kerja Anda, Anda menjalankan alur kerja untuk lint contoh aplikasi Node.js (). `app.js` Anda kemudian memperbaiki masalah yang dilaporkan dan menjalankan alur kerja lagi untuk melihat apakah perbaikan berhasil.

**Tip**  
[Pertimbangkan untuk menggunakan Super-Linter untuk lint file YAMAL, seperti template.CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)

**Topics**
+ [Prasyarat](#integrations-github-action-tutorial-prereqs)
+ [Langkah 1: Buat repositori sumber](#integrations-github-action-tutorial-create-source-repo)
+ [Langkah 2: Tambahkan file app.js](#integrations-github-action-tutorial-add-appjs)
+ [Langkah 3: Buat alur kerja yang menjalankan tindakan Super-Linter](#integrations-github-action-tutorial-create-workflow)
+ [Langkah 4: Perbaiki masalah yang ditemukan Super-Linter](#integrations-github-action-tutorial-fix-probs)
+ [Bersihkan](#integrations-github-action-tutorial-cleanup)

## Prasyarat
<a name="integrations-github-action-tutorial-prereqs"></a>

Sebelum Anda mulai, Anda akan membutuhkan:
+  CodeCatalyst **Ruang** dengan terhubung Akun AWS. Untuk informasi selengkapnya, lihat [Membuat ruang](spaces-create.md).
+ Proyek kosong di CodeCatalyst ruang Anda disebut`codecatalyst-linter-project`. Pilih opsi **Mulai dari awal** untuk membuat proyek ini.

  ```
  ```

  Untuk informasi selengkapnya, lihat [Membuat proyek kosong di Amazon CodeCatalyst](projects-create.md#projects-create-empty).

## Langkah 1: Buat repositori sumber
<a name="integrations-github-action-tutorial-create-source-repo"></a>

Pada langkah ini, Anda membuat repositori sumber di. CodeCatalyst Anda akan menggunakan repositori ini untuk menyimpan contoh file sumber aplikasi,`app.js`, untuk tutorial ini.

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-linter-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-linter-source-repository
   ```

1. Pilih **Buat**.

## Langkah 2: Tambahkan file app.js
<a name="integrations-github-action-tutorial-add-appjs"></a>

Pada langkah ini, Anda menambahkan `app.js` file ke repositori sumber Anda. Kode `app.js` berisi fungsi yang memiliki beberapa kesalahan yang akan ditemukan linter.

**Untuk menambahkan file app.js**

1. Di CodeCatalyst konsol, pilih proyek Anda,`codecatalyst-linter-project`.

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

1. Dari daftar repositori sumber, pilih repositori Anda,. `codecatalyst-linter-source-repository`

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

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. Untuk **nama File**, masukkan`app.js`. Simpan opsi default lainnya.

1. Pilih **Terapkan**.

   Anda sekarang telah membuat file bernama`app.js`.

## Langkah 3: Buat alur kerja yang menjalankan tindakan Super-Linter
<a name="integrations-github-action-tutorial-create-workflow"></a>

Pada langkah ini, Anda membuat alur kerja yang menjalankan tindakan Super-Linter saat Anda mendorong kode ke repositori sumber Anda. Alur kerja terdiri dari blok bangunan berikut, yang Anda tentukan dalam file YAMAL:
+ **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 **'GitHub Tindakan'** — Pada pemicu, tindakan Tindakan menjalankan **GitHub tindakan** Super-Linter, yang pada gilirannya memeriksa semua file di repositori sumber Anda. Jika linter menemukan masalah, tindakan alur kerja gagal. 

**Untuk membuat alur kerja yang menjalankan tindakan Super-Linter**

1. Di CodeCatalyst konsol, pilih proyek Anda,`codecatalyst-linter-project`.

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

1. Pilih **Buat alur kerja**.

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

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

1. Pilih **Buat**.

1. Hapus kode sampel YAMAL.

1. Tambahkan YAML berikut:

   ```
   Name: codecatalyst-linter-workflow
   SchemaVersion: "1.0"
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     SuperLinterAction:
       Identifier: aws/github-actions-runner@v1
       Configuration:
         Steps:
           github-action-code
   ```

   Dalam kode sebelumnya, ganti *github-action-code* dengan kode tindakan Super-Linter, seperti yang diinstruksikan dalam langkah-langkah berikut dari prosedur ini.

1. Buka [halaman Super-Linter](https://github.com/marketplace/actions/super-linter) di Marketplace GitHub .

1. Di bawah `steps:` (huruf kecil), temukan kode dan tempelkan ke CodeCatalyst alur kerja di bawah `Steps:` (huruf besar).

   Sesuaikan kode GitHub Action agar sesuai dengan CodeCatalyst standar, seperti yang ditunjukkan pada kode berikut.

    CodeCatalyst Alur kerja Anda sekarang terlihat seperti ini:

   ```
   Name: codecatalyst-linter-workflow
   SchemaVersion: "1.0"
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     SuperLinterAction:
       Identifier: aws/github-actions-runner@v1
       Configuration:
         Steps:
           - name: Lint Code Base
             uses: github/super-linter@v4
             env:
               VALIDATE_ALL_CODEBASE: "true"
               DEFAULT_BRANCH: main
   ```

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

1. Pilih **Komit**, masukkan **pesan Komit**, pilih `codecatalyst-linter-source-repository` **Repositori** Anda, dan pilih **Komit** lagi.

   Anda sekarang telah membuat alur kerja. Jalankan alur kerja dimulai secara otomatis karena pemicu yang ditentukan di bagian atas alur kerja.

**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-linter-workflow`.

1. Dalam diagram alur kerja, pilih **SuperLinterAction**.

1. Tunggu sampai tindakan gagal. Kegagalan ini diharapkan karena linter menemukan masalah dalam kode.

1. Biarkan CodeCatalyst konsol terbuka dan pergi ke[Langkah 4: Perbaiki masalah yang ditemukan Super-Linter](#integrations-github-action-tutorial-fix-probs).

## Langkah 4: Perbaiki masalah yang ditemukan Super-Linter
<a name="integrations-github-action-tutorial-fix-probs"></a>

Super-Linter seharusnya menemukan masalah dalam `app.js` kode, serta `README.md` file yang disertakan dalam repositori sumber Anda.

**Untuk memperbaiki masalah linter ditemukan**

1. Di CodeCatalyst konsol, pilih tab **Log**, lalu pilih **Lint Code Base**.

   Log yang dihasilkan tindakan Super-Linter ditampilkan.

1. Di log Super-Linter, gulir ke bawah ke sekitar baris 90, di mana Anda menemukan awal masalah. Mereka terlihat mirip dengan yang berikut: 

   ```
   /github/workspace/hello-world/app.js:3:13: Extra semicolon.
   /github/workspace/hello-world/app.js:9:92: Trailing spaces not allowed.
   /github/workspace/hello-world/app.js:21:7: Unnecessarily quoted property 'body' found.
   /github/workspace/hello-world/app.js:31:1: Expected indentation of 2 spaces but found 4.
   /github/workspace/hello-world/app.js:32:2: Newline required at end of file but not found.
   ```

1. Perbaiki `app.js` dan `README.md` di repositori sumber Anda dan komit perubahan Anda. 
**Tip**  
Untuk memperbaikinya`README.md`, tambahkan `markdown` ke blok kode, seperti ini:  

   ```
   ```markdown
   Setup examples:
   ...
   ```
   ```

   Perubahan Anda memulai alur kerja lain berjalan secara otomatis. Tunggu alur kerja selesai. Jika Anda memperbaiki semua masalah, alur kerja harus berhasil.

## Bersihkan
<a name="integrations-github-action-tutorial-cleanup"></a>

Bersihkan CodeCatalyst untuk menghapus jejak tutorial ini dari lingkungan Anda.

**Untuk membersihkan CodeCatalyst**

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

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

1. Hapus`codecatalyst-linter-workflow`.

Dalam tutorial ini, Anda belajar cara menambahkan Super-Linter GitHub Action ke CodeCatalyst alur kerja untuk lint beberapa kode.

# Menambahkan tindakan 'GitHub Tindakan'
<a name="integrations-github-action-add"></a>

***GitHub Tindakan Tindakan*** adalah *CodeCatalyst tindakan* yang membungkus GitHub Action dan membuatnya kompatibel dengan CodeCatalyst alur kerja.

Untuk informasi selengkapnya, lihat [Integrasi dengan Tindakan GitHub](integrations-github-actions.md).

Untuk menambahkan **GitHub tindakan Tindakan** ke alur kerja, ikuti langkah-langkah ini.

**Tip**  
Untuk tutorial yang menunjukkan cara menggunakan **GitHub tindakan Actions**, lihat[Tutorial: Kode lint menggunakan Action GitHub](integrations-github-action-tutorial.md).

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

**Untuk menambahkan tindakan 'GitHub Tindakan' 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 **GitHub**.

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

     Atau
   + Pilih **GitHub Tindakan**. 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** dan **Konfigurasi**, lengkapi bidang sesuai dengan kebutuhan Anda. Untuk deskripsi setiap bidang, lihat[GitHub Aksi 'Tindakan' YAMB](github-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, dan pilih **Komit** lagi.

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

**Untuk menambahkan tindakan 'GitHub Actions' 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 **GitHub**.

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

     Atau
   + Pilih **GitHub Tindakan**. 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[GitHub Aksi 'Tindakan' YAMB](github-action-ref.md).

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

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

------

## Definisi GitHub tindakan 'Tindakan'
<a name="integrations-github-action-add-definition"></a>

Tindakan **GitHub Tindakan** didefinisikan sebagai sekumpulan properti YAMAL di dalam file definisi alur kerja Anda. Untuk informasi tentang properti ini, lihat [GitHub Aksi 'Tindakan' YAMB](github-action-ref.md) di[Alur kerja definisi YAMAL](workflow-reference.md).

# Menambahkan Action yang dikuratori GitHub
<a name="integrations-github-action-add-curated"></a>

* GitHub Action curated* adalah GitHub Action yang tersedia di CodeCatalyst konsol, dan berfungsi sebagai contoh cara menggunakan GitHub Action di dalam CodeCatalyst alur kerja.

 GitHub [**Tindakan yang Dikurasi dibungkus dalam tindakan Tindakan CodeCatalyst yang ditulisGitHub , diidentifikasi oleh pengenal.**](integrations-github-action-add.md) `aws/github-actions-runner@v1` Misalnya, inilah tampilan GitHub Action yang dikuratori, [TruffleHog OSS](https://github.com/marketplace/actions/trufflehog-oss),: 

```
Actions:
  TruffleHogOSS_e8:
    Identifier: aws/github-actions-runner@v1
    Inputs:
      Sources:
        - WorkflowSource # This specifies that the action requires this Workflow as a source
    Configuration:
      Steps:
        - uses: trufflesecurity/trufflehog@v3.16.0
          with:
            path: ' ' # Required; description: Repository path
            base: ' ' # Required; description: Start scanning from here (usually main branch).
            head: ' ' # Optional; description: Scan commits until here (usually dev branch).
            extra_args: ' ' # Optional; description: Extra args to be passed to the trufflehog cli.
```

Dalam kode sebelumnya, CodeCatalyst **GitHub tindakan Tindakan** (diidentifikasi oleh`aws/github-actions-runner@v1`) membungkus tindakan TruffleHog OSS (diidentifikasi oleh`trufflesecurity/trufflehog@v3.16.0`), membuatnya bekerja dalam alur kerja. CodeCatalyst 

Untuk mengonfigurasi tindakan ini, Anda akan mengganti string kosong di bawah `with:` dengan nilai Anda sendiri. Contoh:

```
Actions:
  TruffleHogOSS_e8:
    Identifier: aws/github-actions-runner@v1
    Inputs:
      Sources:
        - WorkflowSource # This specifies that the action requires this Workflow as a source
    Configuration:
      Steps:
        - uses: trufflesecurity/trufflehog@v3.16.0
          with:
            path: ./
            base: main # Required; description: Start scanning from here (usually main branch).
            head: HEAD # Optional; description: Scan commits until here (usually dev branch).
            extra_args: '‐‐debug ‐‐only-verified' # Optional; description: Extra args to be passed to the trufflehog cli.
```

Untuk menambahkan GitHub Tindakan yang dikurasi ke alur kerja, gunakan prosedur berikut. Untuk informasi umum tentang menggunakan GitHub Tindakan dalam CodeCatalyst alur kerja, lihat[Integrasi dengan Tindakan GitHub](integrations-github-actions.md).

**catatan**  
Jika Anda tidak melihat GitHub Tindakan di antara daftar tindakan yang dikurasi, Anda masih dapat menambahkannya ke alur kerja menggunakan **GitHub tindakan Tindakan**. Untuk informasi selengkapnya, lihat [Menambahkan tindakan 'GitHub Tindakan'](integrations-github-action-add.md).

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

**Untuk menambahkan GitHub tindakan yang dikuratori 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 **GitHub**.

1. Jelajahi atau cari GitHub Action, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih nama GitHub Action. 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[GitHub Aksi 'Tindakan' YAMB](github-action-ref.md). Referensi ini memberikan informasi rinci tentang setiap bidang (dan nilai properti YAMAL terkait) yang tersedia untuk **GitHubtindakan** Tindakan, seperti yang muncul di editor YAMAL dan visual.

   Untuk informasi tentang opsi konfigurasi yang tersedia untuk GitHub Tindakan yang dikurasi, lihat dokumentasinya.

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 GitHub tindakan yang dikuratori 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 **GitHub**.

1. Jelajahi atau cari GitHub Action, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih nama GitHub Action. 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 untuk **GitHub tindakan** Tindakan disediakan di[GitHub Aksi 'Tindakan' YAMB](github-action-ref.md).

   Untuk informasi tentang opsi konfigurasi yang tersedia untuk GitHub Tindakan yang dikurasi, lihat dokumentasinya.

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

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

------

# Mengekspor parameter GitHub output
<a name="integrations-github-action-export"></a>

Anda dapat menggunakan [parameter GitHub output](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter) dalam CodeCatalyst alur kerja Anda.

**catatan**  
Kata lain untuk *parameter output* adalah *variabel*. Karena GitHub menggunakan *parameter keluaran* istilah dalam dokumentasinya, kita akan menggunakan istilah ini juga.

Gunakan petunjuk berikut untuk mengekspor parameter GitHub keluaran dari GitHub Action sehingga tersedia untuk digunakan oleh tindakan CodeCatalyst alur kerja lainnya.

**Untuk mengekspor parameter GitHub output**

1. Buka alur kerja dan pilih **Edit**. Untuk informasi selengkapnya, lihat [Membuat alur kerja](workflows-create-workflow.md).

1. Dalam **GitHub tindakan** Tindakan yang menghasilkan parameter keluaran yang ingin Anda ekspor, tambahkan `Outputs` bagian dengan `Variables` properti dasar yang terlihat seperti ini:

   ```
   Actions:
     MyGitHubAction:
       Identifier: aws/github-actions-runner@v1
       Outputs:
         Variables:
           - 'step-id_output-name'
   ```

   Ganti:
   + *step-id*dengan nilai `id:` properti di `steps` bagian GitHub tindakan.
   + *output-name*dengan nama parameter GitHub output.

**Contoh**  
Contoh berikut menunjukkan cara mengekspor parameter GitHub output yang disebut`SELECTEDCOLOR`.

   ```
   Actions:
     MyGitHubAction:
       Identifier: aws/github-actions-runner@v1
       Outputs:
         Variables:
           - 'random-color-generator_SELECTEDCOLOR'
       Configuration:
         Steps:
           - name: Set selected color
             run: echo "SELECTEDCOLOR=green" >> $GITHUB_OUTPUT
             id: random-color-generator
   ```

# Merujuk parameter GitHub keluaran
<a name="integrations-github-action-referencing"></a>

Gunakan petunjuk berikut untuk mereferensikan parameter GitHub output.

**Untuk mereferensikan parameter GitHub output**

1. Selesaikan langkah-langkah dalam [Mengekspor parameter GitHub output](integrations-github-action-export.md).

   Parameter GitHub output sekarang tersedia untuk digunakan dalam tindakan lain.

1. Perhatikan `Variables` nilai parameter output. Ini termasuk garis bawah (\$1).

1. Lihat parameter output menggunakan sintaks berikut:

   ```
   ${action-name.output-name}
   ```

   Ganti:
   + *action-name*dengan nama CodeCatalyst **GitHub Action** yang menghasilkan parameter output (jangan gunakan GitHub tindakan `name` atau`id`).
   + *output-name*dengan `Variables` nilai parameter output yang Anda catat sebelumnya.

   **Contoh**

   ```
   BuildActionB:
     Identifier: aws/build@v1
     Configuration:
       Steps:
         - Run: echo ${MyGitHubAction.random-color-generator_SELECTEDCOLOR}
   ```

**Contoh dengan konteks**  
Contoh berikut menunjukkan kepada Anda bagaimana mengatur `SELECTEDCOLOR` variabel dalam`GitHubActionA`, output itu, dan kemudian merujuk ke dalam`BuildActionB`.

   ```
   Actions:
     GitHubActionA:
       Identifier: aws/github-actions-runner@v1
       Configuration:
         Steps:
           - name: Set selected color
             run: echo "SELECTEDCOLOR=green" >> $GITHUB_OUTPUT
             id: random-color-generator
       Outputs:
         Variables:
         - 'random-color-generator_SELECTEDCOLOR'
         
      BuildActionB:
       Identifier: aws/build@v1
       Configuration:
         Steps:
           - Run: echo ${GitHubActionA.random-color-generator_SELECTEDCOLOR}
   ```

# GitHub Aksi 'Tindakan' YAMB
<a name="github-action-ref"></a>

Berikut ini adalah definisi YAMB dari **GitHubtindakan Tindakan**.

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).

Pilih properti YAMB dalam kode berikut untuk melihat deskripsi jika itu.

**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.
  action-name:
    Identifier:  aws/github-actions-runner@v1
    DependsOn:
      - dependent-action-name-1
    Compute:
      Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Inputs:
      Sources:
        - source-name-1
        - source-name-2
      Artifacts:
        - artifact-name
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2   
    Outputs:
      Artifacts:
        - Name: output-artifact-1
          Files: 
            - github-output/artifact-1.jar
            - "github-output/build*"
        - Name: output-artifact-2
          Files:
            - github-output/artifact-2.1.jar
            - github-output/artifact-2.2.jar
      Variables:
        - variable-name-1
        - variable-name-2
      AutoDiscoverReports:
        Enabled: true | false
        ReportNamePrefix: AutoDiscovered
        IncludePaths:
          - "**/*"
        ExcludePaths:
          - node_modules/cdk/junit.xml
        SuccessCriteria:
          PassRate: percent
          LineCoverage: percent
          BranchCoverage: percent
          Vulnerabilities:
            Severity: CRITICAL|HIGH|MEDIUM|LOW|INFORMATIONAL
            Number: whole-number
      Reports:
        report-name-1:
          Format: format
          IncludePaths:
            - "*.xml"
          ExcludePaths:
            - report2.xml
            - report3.xml
          SuccessCriteria:
            PassRate: percent
            LineCoverage: percent
            BranchCoverage: percent
            Vulnerabilities:
              Severity: CRITICAL|HIGH|MEDIUM|LOW|INFORMATIONAL
              Number: whole-number
    Configuration      
      Steps:
        - github-actions-code
```

## nama-tindakan
<a name="github.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.

UI yang sesuai: Tab konfigurasi/*action-name*

## Identifier
<a name="github.identifier"></a>

(*action-name*/**Identifier**)

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).

Gunakan `aws/github-actions-runner@v1` untuk **GitHubtindakan** Tindakan.

**UI yang sesuai: Diagram alur kerja// *action-name* aws/ @v1 label github-actions-runner**

## DependsOn
<a name="github.depends-on"></a>

(*action-name*/**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="github.computename"></a>

(*action-name*/**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*

## Fleet
<a name="github.computefleet"></a>

(*action-name*/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** - opsional

## Timeout
<a name="github.timeout"></a>

(*action-name*/**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="github.environment"></a>

(*action-name*/**Environment**)

(Opsional)

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="github.environment.name"></a>

(*action-name*/Environment/**Name**)

(Diperlukan [Environment](#github.environment) jika disertakan)

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

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

## Connections
<a name="github.environment.connections"></a>

(*action-name*/Environment/**Connections**)

(Opsional)

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: tab/Environment/What Konfigurasi masuk*my-environment*? **/menu tiga titik/Beralih peran**

## Name
<a name="github.environment.connections.name"></a>

(*action-name*/Environment/Connections/**Name**)

(Diperlukan [Connections](#github.environment.connections) jika disertakan)

Tentukan nama koneksi akun.

UI yang sesuai: tab/Environment/What Konfigurasi masuk*my-environment*? **/menu tiga titik/Beralih peran**

## Role
<a name="github.environment.connections.role"></a>

(*action-name*/Environment/Connections/**Role**)

(Diperlukan [Connections](#github.environment.connections) jika disertakan)

Tentukan nama peran IAM yang digunakan tindakan ini untuk mengakses dan beroperasi di AWS layanan seperti Amazon S3 dan Amazon ECR. Pastikan peran ini ditambahkan ke Akun AWS koneksi Anda di ruang Anda. Untuk menambahkan peran IAM ke koneksi akun, lihat[Menambahkan peran IAM ke koneksi akun](ipa-connect-account-addroles.md).

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.

**catatan**  
Anda dapat menggunakan `CodeCatalystWorkflowDevelopmentRole-spaceName` peran dengan tindakan ini. 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. 

**Awas**  
Batasi izin untuk yang diperlukan oleh **GitHub tindakan Tindakan**. Menggunakan peran dengan izin yang lebih luas dapat menimbulkan risiko keamanan.

UI yang sesuai: tab/Environment/What Konfigurasi masuk*my-environment*? **/menu tiga titik/Beralih peran**

## Inputs
<a name="github.inputs"></a>

(*action-name*/**Inputs**)

(Opsional)

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

**catatan**  
Maksimal empat input (satu sumber dan tiga artefak) diperbolehkan per **GitHub tindakan Tindakan**. 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="github.inputs.sources"></a>

(*action-name*/Inputs/**Sources**)

(Opsional)

Tentukan label yang mewakili repositori sumber yang akan dibutuhkan oleh tindakan. Saat ini, satu-satunya label yang didukung adalah`WorkflowSource`, yang mewakili repositori sumber tempat file definisi alur kerja Anda disimpan.

Jika Anda menghilangkan sumber, maka Anda harus menentukan setidaknya satu artefak input di bawah. `action-name/Inputs/Artifacts`

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="github.inputs.artifacts"></a>

(*action-name*/Inputs/**Artifacts**)

(Opsional)

Tentukan artefak dari tindakan sebelumnya yang ingin Anda berikan sebagai masukan untuk tindakan ini. Artefak ini harus sudah didefinisikan sebagai artefak keluaran dalam tindakan sebelumnya.

Jika Anda tidak menentukan artefak input apa pun, maka Anda harus menentukan setidaknya satu repositori sumber di bawah. `action-name/Inputs/Sources`

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

**catatan**  
Jika **Artefacts - daftar drop-down opsional** tidak tersedia (editor visual), atau jika Anda mendapatkan kesalahan saat memvalidasi YAMAL (editor YAMAL), itu mungkin karena tindakan hanya mendukung satu input. Dalam hal ini, coba hapus input sumber.

UI yang sesuai: Input **tab/Artefak** - opsional

## Variables - input
<a name="github.inputs.variables"></a>

(*action-name*/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

## Outputs
<a name="github.outputs"></a>

(*action-name*/**Outputs**)

(Opsional)

Mendefinisikan data yang dihasilkan oleh tindakan selama menjalankan alur kerja.

UI yang sesuai: **Tab keluaran**

## Artifacts - output
<a name="github.outputs.artifacts"></a>

(*action-name*/Outputs/**Artifacts**)

(Opsional)

Tentukan nama artefak yang dihasilkan oleh tindakan. Nama artifak harus unik dalam alur kerja, dan terbatas pada karakter alfanumerik (a-z, A-Z, 0-9) dan garis bawah (\$1). Spasi, tanda hubung (-), dan karakter khusus lainnya tidak diperbolehkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan spasi, tanda hubung, dan karakter khusus lainnya dalam nama artefak keluaran.

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="github.outputs.artifacts.name"></a>

(*action-name*/Outputs/Artifacts/**Name**)

(Diperlukan [Artifacts - output](#github.outputs.artifacts) jika disertakan)

Tentukan nama artefak yang dihasilkan oleh tindakan. Nama artifak harus unik dalam alur kerja, dan terbatas pada karakter alfanumerik (a-z, A-Z, 0-9) dan garis bawah (\$1). Spasi, tanda hubung (-), dan karakter khusus lainnya tidak diperbolehkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan spasi, tanda hubung, dan karakter khusus lainnya dalam nama artefak keluaran.

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

**UI yang sesuai: Menghasilkan tab/Artifacts/Add artefak/Membangun nama artefak**

## Files
<a name="github.outputs.artifacts.files"></a>

(*action-name*/Outputs/Artifacts/**Files**)

(Diperlukan [Artifacts - output](#github.outputs.artifacts) jika disertakan)

Tentukan file yang CodeCatalyst termasuk dalam artefak yang dihasilkan oleh tindakan. File-file ini dihasilkan oleh tindakan alur kerja saat dijalankan, dan juga tersedia di repositori sumber Anda. Jalur file dapat berada di repositori sumber atau artefak dari tindakan sebelumnya, dan relatif terhadap repositori sumber atau root artefak. Anda dapat menggunakan pola glob untuk menentukan jalur. Contoh:
+ Untuk menentukan satu file yang ada di root lokasi build atau lokasi repositori sumber, gunakan. `my-file.jar`
+ Untuk menentukan satu file dalam subdirektori, gunakan `directory/my-file.jar` atau`directory/subdirectory/my-file.jar`.
+ Untuk menentukan semua file, gunakan`"**/*"`. Pola `**` glob menunjukkan untuk mencocokkan sejumlah subdirektori.
+ Untuk menentukan semua file dan direktori dalam direktori bernama`directory`, gunakan`"directory/**/*"`. Pola `**` glob menunjukkan untuk mencocokkan sejumlah subdirektori.
+ Untuk menentukan semua file dalam direktori bernama`directory`, tetapi tidak salah satu subdirektorinya, gunakan. `"directory/*"` 

**catatan**  
Jika jalur file Anda menyertakan satu atau beberapa tanda bintang (`*`) atau karakter khusus lainnya, lampirkan jalur dengan tanda kutip ganda (). `""` Untuk informasi lebih lanjut tentang karakter khusus, lihat[Pedoman dan konvensi sintaks](workflow-reference.md#workflow.terms.syntax.conv).

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

**catatan**  
Anda mungkin perlu menambahkan awalan ke 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: Mengeluarkan tab/Artifacts/Add artefak/File yang dihasilkan oleh build**

## Variables - output
<a name="github.outputs.variables"></a>

(*action-name*/Outputs/**Variables**)

(Opsional)

Tentukan variabel yang ingin Anda ekspor tindakan sehingga tersedia untuk digunakan oleh tindakan selanjutnya.

Untuk informasi selengkapnya tentang variabel, termasuk contoh, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

**UI yang sesuai: Tab keluaran/Variabel/Tambahkan variabel**

## variabel-nama-1
<a name="github.outputs.variables.name"></a>

(*action-name*/Outputs/Variables**variabel-nama-1**)

(Opsional)

Tentukan nama variabel yang ingin Anda ekspor tindakan. Variabel ini harus sudah didefinisikan dalam `Inputs` atau `Steps` bagian dari tindakan yang sama.

Untuk informasi selengkapnya tentang variabel, termasuk contoh, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

**UI yang sesuai: Output tab/Variables/Add variabel/Nama**

## AutoDiscoverReports
<a name="github.outputs.autodiscover"></a>

(*action-name*/Outputs/**AutoDiscoverReports**)

(Opsional)

Mendefinisikan konfigurasi untuk fitur auto-discovery.

Saat Anda mengaktifkan penemuan otomatis, semua CodeCatalyst pencarian `Inputs` diteruskan ke tindakan serta semua file yang dihasilkan oleh tindakan itu sendiri, mencari laporan pengujian, cakupan kode, dan analisis komposisi perangkat lunak (SCA). Untuk setiap laporan yang ditemukan, CodeCatalyst mengubahnya menjadi CodeCatalyst laporan. *CodeCatalyst Laporan* adalah laporan yang sepenuhnya terintegrasi ke dalam CodeCatalyst layanan dan dapat dilihat dan dimanipulasi melalui CodeCatalyst konsol.

**catatan**  
Secara default, fitur auto-discover memeriksa semua file. Anda dapat membatasi file mana yang diperiksa menggunakan [ExcludePaths](#github.reports.excludepaths) properti [IncludePaths](#github.reports.includepaths) atau. 

UI yang sesuai: *tidak ada*

## Enabled
<a name="github.outputs.autodiscover.enabled"></a>

(*action-name*/Outputs/AutoDiscoverReports/**Enabled**)

(Opsional)

Aktifkan atau nonaktifkan fitur penemuan otomatis.

Nilai-nilai yang valid adalah `true` atau `false`.

Jika `Enabled` dihilangkan, defaultnya adalah. `true`

**UI yang sesuai: Tab Keluaran/Laporan/Secara otomatis menemukan laporan**

## ReportNamePrefix
<a name="github.outputs.autodiscover.reportnameprefix"></a>

(*action-name*/Outputs/AutoDiscoverReports/**ReportNamePrefix**)

(Diperlukan [AutoDiscoverReports](#github.outputs.autodiscover) jika disertakan dan diaktifkan)

Tentukan CodeCatalyst awalan yang ditambahkan ke semua laporan yang ditemukannya untuk memberi nama laporan terkait. CodeCatalyst Misalnya, jika Anda menentukan awalan`AutoDiscovered`, dan CodeCatalyst otomatis menemukan dua laporan pengujian, `TestSuiteOne.xml` dan`TestSuiteTwo.xml`, maka CodeCatalyst laporan terkait akan diberi nama dan. `AutoDiscoveredTestSuiteOne` `AutoDiscoveredTestSuiteTwo`

**UI yang sesuai: Output tab/Reports/Automatically menemukan laporan/awalan Laporan**

## IncludePaths
<a name="github.reports.includepaths"></a>

(*action-name*/Outputs/AutoDiscoverReports/**IncludePaths**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/**IncludePaths**)

(Diperlukan jika [AutoDiscoverReports](#github.outputs.autodiscover) disertakan dan diaktifkan, atau [Reports](#github.configuration.reports) jika disertakan)

Tentukan file dan jalur file yang CodeCatalyst disertakan saat mencari laporan mentah. Misalnya, jika Anda menentukan`"/test/report/*"`, akan CodeCatalyst mencari seluruh [image build](build-images.md) yang digunakan oleh tindakan mencari `/test/report/*` direktori. Ketika menemukan direktori itu, CodeCatalyst maka cari laporan di direktori itu.

**catatan**  
Jika jalur file Anda menyertakan satu atau beberapa tanda bintang (`*`) atau karakter khusus lainnya, lampirkan jalur dengan tanda kutip ganda (). `""` Untuk informasi lebih lanjut tentang karakter khusus, lihat[Pedoman dan konvensi sintaks](workflow-reference.md#workflow.terms.syntax.conv).

Jika properti ini dihilangkan, defaultnya adalah`"**/*"`, artinya pencarian mencakup semua file di semua jalur.

**catatan**  
Untuk laporan yang dikonfigurasi secara manual, `IncludePaths` harus berupa pola glob yang cocok dengan satu file.

UI yang sesuai:
+ tab/Reports/Automatically discover reports/'Include/exclude**Jalur keluaran'/ Sertakan jalur**
+ **Output tab/Reports/Manually mengkonfigurasi laporan/ /'Sertakan jalur/kecualikan jalur'/ Sertakan jalur *report-name-1***

## ExcludePaths
<a name="github.reports.excludepaths"></a>

(*action-name*/Outputs/AutoDiscoverReports/**ExcludePaths**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/**ExcludePaths**)

(Opsional)

Tentukan file dan jalur file yang CodeCatalyst dikecualikan saat mencari laporan mentah. Misalnya, jika Anda menentukan`"/test/my-reports/**/*"`, tidak CodeCatalyst akan mencari file di `/test/my-reports/` direktori. Untuk mengabaikan semua file dalam direktori, gunakan pola `**/*` glob.

**catatan**  
Jika jalur file Anda menyertakan satu atau beberapa tanda bintang (`*`) atau karakter khusus lainnya, lampirkan jalur dengan tanda kutip ganda (). `""` Untuk informasi lebih lanjut tentang karakter khusus, lihat[Pedoman dan konvensi sintaks](workflow-reference.md#workflow.terms.syntax.conv).

UI yang sesuai:
+ tab/Reports/Automatically discover reports/'Include/exclude**Jalur keluaran'/ Kecualikan jalur**
+ **Output tab/Reports/Manually mengkonfigurasi laporan/ /'Sertakan/kecualikan jalur'/ Kecualikan jalur *report-name-1***

## SuccessCriteria
<a name="github.reports.successcriteria"></a>

(*action-name*/Outputs/AutoDiscoverReports/**SuccessCriteria**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/**SuccessCriteria**)

(Opsional)

Tentukan kriteria keberhasilan untuk pengujian, cakupan kode, analisis komposisi perangkat lunak (SCA), dan laporan analisis statis (SA).

Untuk informasi selengkapnya, lihat [Mengkonfigurasi kriteria keberhasilan untuk laporan](test-config-action.md#test.success-criteria).

UI yang sesuai:
+ **Output tab/Reports/Automatically menemukan laporan/Kriteria Sukses**
+ **Output tab/Reports/Manually mengkonfigurasi laporan// Kriteria keberhasilan *report-name-1***

## PassRate
<a name="github.reports.successcriteria.passrate"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**PassRate**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**PassRate**)

(Opsional)

Tentukan persentase pengujian dalam laporan pengujian yang harus lulus agar CodeCatalyst laporan terkait ditandai sebagai lulus. Nilai yang valid termasuk angka desimal. Misalnya: `50`, `60.5`. Kriteria tingkat kelulusan hanya diterapkan pada laporan pengujian. Untuk informasi selengkapnya tentang laporan pengujian, lihat[Laporan pengujian](test-workflow-actions.md#test-reports).

UI yang sesuai:
+ tab/Reports/Automatically discover reports/Success**Kriteria keluaran/Tingkat kelulusan**
+ **Output tab/Reports/Manually mengkonfigurasi laporan// Kriteria sukses/Tingkat *report-name-1* kelulusan**

## LineCoverage
<a name="github.reports.successcriteria.linecoverage"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**LineCoverage**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**LineCoverage**)

(Opsional)

Tentukan persentase baris dalam laporan cakupan kode yang harus dicakup agar CodeCatalyst laporan terkait ditandai sebagai lulus. Nilai yang valid termasuk angka desimal. Misalnya: `50`, `60.5`. Kriteria cakupan baris hanya diterapkan pada laporan cakupan kode. Untuk informasi selengkapnya tentang laporan cakupan kode, lihat[Laporan cakupan kode](test-workflow-actions.md#test-code-coverage-reports).

UI yang sesuai:
+ tab/Reports/Automatically discover reports/Success**Kriteria keluaran/Cakupan garis**
+ **Output tab/Reports/Manually mengkonfigurasi laporan// Kriteria *report-name-1* sukses/Cakupan baris**

## BranchCoverage
<a name="github.reports.successcriteria.branchcoverage"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**BranchCoverage**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**BranchCoverage**)

(Opsional)

Tentukan persentase cabang dalam laporan cakupan kode yang harus dicakup agar CodeCatalyst laporan terkait ditandai sebagai lulus. Nilai yang valid termasuk angka desimal. Misalnya: `50`, `60.5`. Kriteria cakupan cabang hanya diterapkan pada laporan cakupan kode. Untuk informasi selengkapnya tentang laporan cakupan kode, lihat[Laporan cakupan kode](test-workflow-actions.md#test-code-coverage-reports).

UI yang sesuai:
+ tab/Reports/Automatically discover reports/Success**Kriteria keluaran/Cakupan cabang**
+ **Output tab/Reports/Manually mengkonfigurasi laporan// Kriteria *report-name-1* sukses/Cakupan cabang**

## Vulnerabilities
<a name="github.reports.successcriteria.vulnerabilities"></a>

(*action-name*/Outputs/AutoDiscoverReports/SuccessCriteria/**Vulnerabilities**)

Atau

(*action-name*/Outputs/Reports/*report-name-1*/SuccessCriteria/**Vulnerabilities**)

(Opsional)

Tentukan jumlah maksimum dan tingkat keparahan kerentanan yang diizinkan dalam laporan SCA agar CodeCatalyst laporan terkait ditandai sebagai lulus. Untuk menentukan kerentanan, Anda harus menentukan:
+ Tingkat keparahan minimum kerentanan yang ingin Anda sertakan dalam hitungan. Nilai yang valid, dari yang paling parah hingga yang paling parah, adalah: `CRITICAL``HIGH`,`MEDIUM`,,`LOW`,`INFORMATIONAL`.

  Misalnya, jika Anda memilih`HIGH`, maka `HIGH` dan `CRITICAL` kerentanan akan dihitung.
+ Jumlah maksimum kerentanan dari tingkat keparahan yang ditentukan yang Anda inginkan memungkinkan. Melebihi angka ini menyebabkan CodeCatalyst laporan ditandai sebagai gagal. Nilai yang valid adalah bilangan bulat.

Kriteria kerentanan hanya diterapkan pada laporan SCA. Untuk informasi lebih lanjut tentang laporan SCA, lihat[Laporan analisis komposisi perangkat lunak](test-workflow-actions.md#test-sca-reports).

Untuk menentukan tingkat keparahan minimum, gunakan `Severity` properti. Untuk menentukan jumlah kerentanan maksimum, gunakan `Number` properti.

Untuk informasi lebih lanjut tentang laporan SCA, lihat[Jenis laporan kualitas](test-workflow-actions.md#test-reporting).

UI yang sesuai:
+ tab/Reports/Automatically discover reports/Success**Kriteria keluaran/Kerentanan**
+ **Output tab/Reports/Manually mengkonfigurasi laporan// Kriteria sukses/Kerentanan *report-name-1***

## Reports
<a name="github.configuration.reports"></a>

(*action-name*/Outputs/**Reports** )

(Opsional)

Bagian yang menentukan konfigurasi untuk laporan pengujian.

**UI yang sesuai: Tab keluaran/Laporan**

## laporan-nama-1
<a name="github.configuration.reports.report-name-1"></a>

(*action-name*/Outputs/Reports/**laporan-nama-1**)

(Diperlukan [Reports](#github.configuration.reports) jika disertakan)

Nama yang ingin Anda berikan ke CodeCatalyst laporan yang akan dihasilkan dari laporan mentah Anda.

**UI yang sesuai: Output tab/Reports/Manually mengkonfigurasi laporan/Nama laporan**

## Format
<a name="github.configuration.reports.name.testresults.format"></a>

(*action-name*/Outputs/Reports/*report-name-1*/**Format**)

(Diperlukan [Reports](#github.configuration.reports) jika disertakan)

Tentukan format file yang Anda gunakan untuk laporan Anda. Nilai yang mungkin adalah sebagai berikut.
+ Untuk laporan pengujian:
  + Untuk Cucumber JSON, tentukan **Cucumber** (editor visual) atau `CUCUMBERJSON` (editor YAMG).
  + Untuk JUnit XHTML, tentukan **JUnit**(editor visual) atau `JUNITXML` (editor YAMG).
  + Untuk NUnit XHTML, tentukan **NUnit**(editor visual) atau `NUNITXML` (editor YAMG).
  + Untuk NUnit 3 XHTML, tentukan **NUnit3**(editor visual) atau `NUNIT3XML` (editor YAMG).
  + Untuk Visual Studio TRX, tentukan **Visual Studio TRX** (editor visual) atau `VISUALSTUDIOTRX` (editor YAMG).
  + Untuk TestNG XHTML, tentukan **TestNG** (editor visual) atau `TESTNGXML` (editor YAMG).
+ Untuk laporan cakupan kode:
  + Untuk XHTML Clover, tentukan **Clover** (editor visual) atau `CLOVERXML` (editor YAMG).
  + Untuk Cobertura XHTML, tentukan **Cobertura** (editor visual) atau `COBERTURAXML` (editor YAMG).
  + Untuk JaCoCo XHTML, tentukan **JaCoCo**(editor visual) atau `JACOCOXML` (editor YAMG).
  + Untuk SimpleCov JSON yang dihasilkan oleh [simplecov, bukan simplecov-json](https://github.com/simplecov-ruby/simplecov)[, tentukan Simplecov](https://github.com/vicentllongo/simplecov-json) (editor visual) atau (**editor YAMAL**). `SIMPLECOV`
+ Untuk laporan analisis komposisi perangkat lunak (SCA):
  + Untuk SARIF, tentukan **SARIF** (editor visual) atau `SARIFSCA` (editor YAMB).

**UI yang sesuai: Menghasilkan tab/Reports/Manually configure reports/Add *report-name-1* laporan// **Jenis laporan dan format Laporan****

## Configuration
<a name="github.configuration"></a>

(*action-name*/**Configuration**)

(Wajib) Bagian di mana Anda dapat menentukan properti konfigurasi tindakan. 

UI yang sesuai: Tab **konfigurasi**

## Steps
<a name="github.configuration.steps"></a>

(*action-name*/Configuration/**Steps**)

(Diperlukan) 

Tentukan kode GitHub Tindakan Anda seperti yang muncul di halaman detail tindakan di [GitHub Marketplace](https://github.com/marketplace). Tambahkan kode berikut pedoman ini:

1. Tempel kode dari `steps:` bagian GitHub Action ke `Steps:` bagian CodeCatalyst alur kerja. Kode dimulai dengan tanda hubung (-) dan terlihat mirip dengan yang berikut ini.

   GitHub kode untuk ditempelkan:

   ```
   - name: Lint Code Base
     uses: github/super-linter@v4
     env:
       VALIDATE_ALL_CODEBASE: false
       DEFAULT_BRANCH: master
       GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
   ```

1. Tinjau kode yang baru saja Anda tempel dan modifikasi seperlunya agar sesuai dengan standar. CodeCatalyst **Misalnya, dengan blok kode sebelumnya, Anda dapat menghapus kode di*red italics*, dan menambahkan kode dalam huruf tebal.**

   CodeCatalyst alur kerja yaml:

   ```
   Steps:      
      - name: Lint Code Base
        uses: github/super-linter@v4
        env:
          VALIDATE_ALL_CODEBASE: false
          DEFAULT_BRANCH: mastermain
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
   ```

1. Untuk kode tambahan yang disertakan dengan GitHub Action tetapi tidak ada di dalam `steps:` bagian, tambahkan ke CodeCatalyst alur kerja menggunakan kode CodeCatalyst -equivalent. Anda dapat meninjau [Alur kerja definisi YAMAL](workflow-reference.md) untuk mendapatkan wawasan tentang bagaimana Anda dapat mem-port GitHub kode Anda CodeCatalyst. Langkah-langkah migrasi terperinci berada di luar cakupan panduan ini.

Berikut adalah contoh cara menentukan jalur file dalam **GitHub tindakan** Tindakan:

```
Steps:
  - name: Lint Code Base
    uses: github/super-linter@v4
    ...
  - run: cd /sources/WorkflowSource/MyFolder/  && cat file.txt
  - run: cd /artifacts/MyGitHubAction/MyArtifact/MyFolder/  && cat file2.txt
```

Untuk informasi selengkapnya tentang menentukan jalur file, 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 **GitHub konfigurasi/Tindakan YAMAL**

# Mengkonfigurasi gambar komputasi dan runtime
<a name="workflows-working-compute"></a>

Dalam CodeCatalyst alur kerja, Anda dapat menentukan image lingkungan komputasi dan runtime yang CodeCatalyst digunakan untuk menjalankan tindakan alur kerja.

*Compute* mengacu pada mesin komputasi (CPU, memori, dan sistem operasi) yang dikelola dan dikelola oleh CodeCatalyst untuk menjalankan tindakan alur kerja.

**catatan**  
Jika komputasi didefinisikan sebagai properti alur kerja, maka komputasi tidak dapat didefinisikan sebagai properti dari tindakan apa pun dalam alur kerja tersebut. Demikian pula, jika komputasi didefinisikan sebagai properti dari tindakan apa pun, itu tidak dapat didefinisikan dalam alur kerja.

*Gambar lingkungan runtime* adalah wadah Docker di mana CodeCatalyst menjalankan tindakan alur kerja. Container Docker berjalan di atas platform komputasi yang Anda pilih, dan menyertakan sistem operasi dan alat tambahan yang mungkin diperlukan oleh tindakan alur kerja, seperti Node.js AWS CLI, dan .tar.

**Topics**
+ [Jenis komputasi](#compute.types)
+ [Hitung armada](#compute.fleets)
+ [Properti armada sesuai permintaan](#compute.on-demand)
+ [Properti armada yang disediakan](#compute.provisioned-fleets)
+ [Membuat armada yang disediakan](projects-create-compute-resource.md)
+ [Mengedit armada yang disediakan](edit-compute-resource.md)
+ [Menghapus armada yang disediakan](delete-compute-resource.md)
+ [Menetapkan armada atau menghitung untuk suatu tindakan](workflows-assign-compute-resource.md)
+ [Berbagi komputasi di seluruh tindakan](compute-sharing.md)
+ [Menentukan gambar lingkungan runtime](build-images.md)

## Jenis komputasi
<a name="compute.types"></a>

CodeCatalyst menawarkan jenis komputasi berikut:
+ Amazon EC2
+ AWS Lambda

Amazon EC2 menawarkan fleksibilitas yang dioptimalkan selama aksi berjalan dan Lambda menawarkan kecepatan start-up aksi yang dioptimalkan. Lambda mendukung tindakan alur kerja yang lebih cepat berjalan karena latensi start-up yang lebih rendah. Lambda memungkinkan Anda menjalankan alur kerja dasar yang dapat membangun, menguji, dan menyebarkan aplikasi tanpa server dengan runtime umum. Runtime ini termasuk Node.js, Python, Java, .NET, dan Go. Namun, ada beberapa kasus penggunaan yang tidak didukung Lambda, dan jika berdampak pada Anda, gunakan jenis komputasi Amazon EC2:
+ Lambda tidak mendukung gambar lingkungan runtime dari registri tertentu.
+ Lambda tidak mendukung alat yang memerlukan izin root. Untuk alat seperti `yum` atau`rpm`, gunakan jenis komputasi Amazon EC2 atau alat lain yang tidak memerlukan izin root.
+ Lambda tidak mendukung build atau run Docker. Tindakan berikut yang menggunakan image Docker tidak didukung: Deploy AWS CloudFormation stack, Deploy to Amazon ECS, Amazon S3 publish, AWS CDK bootstrap, AWS CDK deploy, invoke, dan Actions. AWS Lambda GitHub GitHub Tindakan berbasis Docker yang berjalan dalam CodeCatalyst GitHub tindakan Tindakan juga tidak didukung dengan komputasi Lambda. Anda dapat menggunakan alternatif yang tidak memerlukan izin root, seperti Podman.
+ Lambda tidak mendukung penulisan ke file di luar. `/tmp` Saat mengonfigurasi tindakan alur kerja, Anda dapat mengonfigurasi ulang alat untuk menginstal atau menulis. `/tmp` Jika Anda memiliki tindakan build yang diinstal`npm`, pastikan Anda mengonfigurasinya untuk `/tmp` diinstal.
+ Lambda tidak mendukung runtime lebih dari 15 menit.

## Hitung armada
<a name="compute.fleets"></a>

CodeCatalyst menawarkan armada komputasi berikut:
+ Armada sesuai permintaan
+ Armada yang disediakan

Dengan armada sesuai permintaan, ketika tindakan alur kerja dimulai, alur kerja menyediakan sumber daya yang dibutuhkan. Mesin-mesin dihancurkan ketika aksi selesai. Anda hanya membayar untuk jumlah menit yang Anda jalankan tindakan Anda. Armada sesuai permintaan dikelola sepenuhnya, dan mencakup kemampuan penskalaan otomatis untuk menangani lonjakan permintaan.

CodeCatalyst juga menawarkan armada yang disediakan yang berisi mesin yang ditenagai oleh Amazon EC2 yang dikelola oleh. CodeCatalyst 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. Dengan armada yang disediakan, mesin Anda selalu berjalan dan akan dikenakan biaya selama disediakan.

Untuk membuat, memperbarui, atau menghapus armada, Anda harus memiliki peran **administrator Space** atau peran **administrator Proyek**.

## Properti armada sesuai permintaan
<a name="compute.on-demand"></a>

CodeCatalyst menyediakan armada sesuai permintaan berikut:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/workflows-working-compute.html)

**catatan**  
Spesifikasi untuk armada sesuai permintaan akan bervariasi tergantung pada tingkat penagihan Anda. Untuk informasi selengkapnya, silakan lihat [Harga ](https://codecatalyst.aws/explore/pricing).

Jika tidak ada armada yang dipilih, CodeCatalyst gunakan`Linux.x86-64.Large`.

## Properti armada yang disediakan
<a name="compute.provisioned-fleets"></a>

Armada yang disediakan berisi properti berikut: 

**Sistem operasi**  
Sistem operasi. Sistem operasi berikut tersedia:  
+ Amazon Linux 2
+ Windows Server 2022
**catatan**  
Armada Windows hanya didukung dalam aksi build. Tindakan lain saat ini tidak mendukung Windows.

**Arsitektur **  
Arsitektur prosesor. Arsitektur berikut tersedia:  
+ x86\$164
+ Arm64

**Jenis mesin**  
Jenis mesin untuk setiap contoh. Jenis mesin berikut tersedia:      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/workflows-working-compute.html)

**Kapasitas**  
Jumlah awal mesin yang dialokasikan untuk armada, yang mendefinisikan jumlah tindakan yang dapat berjalan secara paralel.

**Mode penskalaan**  
Mendefinisikan perilaku ketika jumlah tindakan melebihi kapasitas armada.    
**Penyediaan kapasitas tambahan sesuai permintaan**  
Mesin tambahan disiapkan sesuai permintaan yang secara otomatis ditingkatkan sebagai respons terhadap tindakan baru yang berjalan, dan kemudian diturunkan ke kapasitas dasar saat tindakan selesai. Ini dapat menimbulkan biaya tambahan, karena Anda membayar per menit untuk setiap mesin yang berjalan.  
**Tunggu hingga kapasitas armada tambahan tersedia**  
Tindakan berjalan ditempatkan dalam antrian sampai mesin tersedia. Ini membatasi biaya tambahan karena tidak ada mesin tambahan yang dialokasikan.

# Membuat armada yang disediakan
<a name="projects-create-compute-resource"></a>

Gunakan petunjuk berikut untuk membuat armada yang disediakan.

**catatan**  
Armada yang disediakan akan dinonaktifkan setelah 2 minggu tidak aktif. Jika digunakan lagi, mereka akan diaktifkan kembali secara otomatis, tetapi aktivasi ulang ini dapat menyebabkan latensi terjadi.

**Untuk membuat armada yang disediakan**

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

1. Pilih **Buat armada yang disediakan.**

1. Di bidang teks **nama armada yang disediakan**, masukkan nama untuk armada Anda.

1. Dari menu drop-down **sistem operasi**, pilih sistem operasi.

1. Dari menu drop-down **tipe Mesin**, pilih jenis mesin untuk mesin Anda.

1. Di bidang teks **Kapasitas**, masukkan jumlah maksimum mesin di armada.

1. Dari menu drop-down **mode Scaling**, pilih perilaku overflow yang diinginkan. Untuk informasi lebih lanjut tentang bidang ini, lihat[Properti armada yang disediakan](workflows-working-compute.md#compute.provisioned-fleets).

1. Pilih **Buat**.

Setelah membuat armada yang disediakan, Anda siap untuk menetapkannya ke suatu tindakan. Lihat informasi yang lebih lengkap di [Menetapkan armada atau menghitung untuk suatu tindakan](workflows-assign-compute-resource.md).

# Mengedit armada yang disediakan
<a name="edit-compute-resource"></a>

Gunakan petunjuk berikut untuk mengedit armada yang disediakan.

**catatan**  
Armada yang disediakan akan dinonaktifkan setelah 2 minggu tidak aktif. Jika digunakan lagi, mereka akan diaktifkan kembali secara otomatis, tetapi aktivasi ulang ini dapat menyebabkan latensi terjadi.

**Untuk mengedit armada yang disediakan**

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

1. Dalam daftar **armada yang disediakan, pilih armada** yang ingin Anda edit.

1. Pilih **Edit**.

1. Di bidang teks **Kapasitas**, masukkan jumlah maksimum mesin di armada.

1. Dari menu drop-down **mode Scaling**, pilih perilaku overflow yang diinginkan. Untuk informasi lebih lanjut tentang bidang ini, lihat[Properti armada yang disediakan](workflows-working-compute.md#compute.provisioned-fleets).

1. Pilih **Simpan**.

# Menghapus armada yang disediakan
<a name="delete-compute-resource"></a>

Gunakan petunjuk berikut untuk menghapus armada yang disediakan.

**Untuk menghapus armada yang disediakan**
**Awas**  
Sebelum menghapus armada yang disediakan, hapus dari semua tindakan dengan menghapus `Fleet` properti dari kode YAMAL tindakan. Setiap tindakan yang terus mereferensikan armada yang disediakan setelah dihapus akan gagal saat tindakan berjalan berikutnya.

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

1. Dalam daftar **armada yang disediakan, pilih armada** yang ingin Anda hapus.

1. Pilih **Hapus**.

1. Masukkan **delete** untuk mengonfirmasi penghapusan.

1. Pilih **Hapus**.

# Menetapkan armada atau menghitung untuk suatu tindakan
<a name="workflows-assign-compute-resource"></a>

Secara default, tindakan alur kerja menggunakan armada `Linux.x86-64.Large` sesuai permintaan dengan jenis komputasi Amazon EC2. Untuk menggunakan armada yang disediakan sebagai gantinya, atau menggunakan armada sesuai permintaan yang berbeda, seperti`Linux.x86-64.2XLarge`, gunakan instruksi berikut.

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

**Sebelum Anda mulai**
+ Jika Anda ingin menetapkan armada yang disediakan, Anda harus terlebih dahulu membuat armada yang disediakan. Untuk informasi selengkapnya, lihat [Membuat armada yang disediakan](projects-create-compute-resource.md).

**Untuk menetapkan armada yang disediakan atau jenis armada yang berbeda untuk suatu 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. Pilih **Edit**.

1. Pilih **Visual**.

1. Dalam diagram alur kerja, pilih tindakan yang ingin Anda tetapkan armada yang disediakan atau jenis armada baru.

1. Pilih tab **Konfigurasi**.

1. Dalam **armada Compute**, lakukan hal berikut:

   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`

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

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

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

**Sebelum Anda mulai**
+ Jika Anda ingin menetapkan armada yang disediakan, Anda harus terlebih dahulu membuat armada yang disediakan. Untuk informasi selengkapnya, lihat [Membuat armada yang disediakan](projects-create-compute-resource.md).

**Untuk menetapkan armada yang disediakan atau jenis armada yang berbeda untuk suatu 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. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Temukan tindakan yang ingin Anda tetapkan untuk armada yang disediakan atau jenis armada baru.

1. Dalam aksi, tambahkan `Compute` properti dan atur `Fleet` ke nama armada Anda atau jenis armada sesuai permintaan. Untuk informasi selengkapnya, lihat deskripsi `Fleet` properti di [Membangun dan menguji tindakan YAMB](build-action-ref.md) for your action.

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

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

------

# Berbagi komputasi di seluruh tindakan
<a name="compute-sharing"></a>

[Secara default, tindakan dalam alur kerja berjalan pada instance terpisah dalam sebuah fleet.](workflows-working-compute.md#compute.fleets) Perilaku ini memberikan tindakan dengan isolasi dan prediktabilitas pada keadaan input. Perilaku default memerlukan konfigurasi eksplisit untuk berbagi konteks seperti file dan variabel antar tindakan. 

Berbagi komputasi adalah kemampuan yang memungkinkan Anda menjalankan semua tindakan dalam alur kerja pada instance yang sama. Menggunakan berbagi komputasi dapat memberikan runtime alur kerja yang lebih cepat karena lebih sedikit waktu yang dihabiskan untuk menyediakan instance. Anda juga dapat berbagi file (artefak) antar tindakan tanpa konfigurasi alur kerja tambahan.

Saat alur kerja dijalankan menggunakan berbagi komputasi, instance dalam armada default atau yang ditentukan dicadangkan selama durasi semua tindakan dalam alur kerja tersebut. Ketika alur kerja berjalan selesai, reservasi instance dilepaskan.

**Topics**
+ [Menjalankan beberapa tindakan pada komputasi bersama](#how-to-compute-share)
+ [Pertimbangan untuk berbagi komputasi](#compare-compute-sharing)
+ [Mengaktifkan berbagi komputasi](#compute-sharing-steps)
+ [Contoh](#compute-sharing-examples)

## Menjalankan beberapa tindakan pada komputasi bersama
<a name="how-to-compute-share"></a>

Anda dapat menggunakan `Compute` atribut dalam definisi YAMAL di tingkat alur kerja untuk menentukan properti tindakan fleet dan compute sharing. Anda juga dapat mengonfigurasi properti komputasi menggunakan editor visual di CodeCatalyst. Untuk menentukan armada, tetapkan nama armada yang ada, atur jenis komputasi ke **EC2**, dan aktifkan berbagi komputasi.

**catatan**  
Berbagi komputasi hanya didukung jika jenis komputasi disetel ke **EC2**, dan tidak didukung untuk sistem operasi Windows Server 2022. Untuk informasi selengkapnya tentang armada komputasi, tipe komputasi, dan properti, lihat. [Mengkonfigurasi gambar komputasi dan runtime](workflows-working-compute.md)

**catatan**  
Jika Anda berada di tingkat Gratis dan Anda menentukan `Linux.x86-64.2XLarge` armada `Linux.x86-64.XLarge` atau secara manual dalam definisi alur kerja YAMAL, tindakan akan tetap berjalan pada armada default ()`Linux.x86-64.Large`. Untuk informasi selengkapnya tentang ketersediaan dan harga komputasi, lihat [tabel untuk opsi tingkatan.](https://codecatalyst.aws/explore/pricing) 

Saat berbagi komputasi diaktifkan, folder yang berisi sumber alur kerja secara otomatis disalin di seluruh tindakan. Anda tidak perlu mengonfigurasi artefak keluaran dan mereferensikannya sebagai artefak masukan di seluruh definisi alur kerja (file YAMAL). Sebagai penulis alur kerja, Anda perlu memasang variabel lingkungan menggunakan input dan output, seperti yang Anda lakukan tanpa menggunakan berbagi komputasi. Jika Anda ingin berbagi folder di antara tindakan di luar sumber alur kerja, pertimbangkan caching file. Untuk informasi selengkapnya, silakan lihat [Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md) dan [Caching file antara alur kerja berjalan](workflows-caching.md).

Repositori sumber tempat file definisi alur kerja Anda berada diidentifikasi oleh label. `WorkflowSource` Saat menggunakan berbagi komputasi, sumber alur kerja diunduh dalam tindakan pertama yang mereferensikannya dan secara otomatis tersedia untuk tindakan selanjutnya dalam alur kerja yang akan digunakan. Setiap perubahan yang dilakukan pada folder yang berisi sumber alur kerja oleh suatu tindakan, seperti menambahkan, memodifikasi, atau menghapus file, juga terlihat dalam tindakan selanjutnya dalam alur kerja. Anda dapat mereferensikan file yang berada di folder sumber alur kerja di salah satu tindakan alur kerja Anda, seperti yang Anda bisa tanpa menggunakan berbagi komputasi. Untuk informasi selengkapnya, lihat [Merujuk file repositori sumber](workflows-sources-reference-files.md).

**catatan**  
Alur kerja berbagi komputasi perlu menentukan urutan tindakan yang ketat, sehingga tindakan paralel tidak dapat diatur. Meskipun artefak keluaran dapat dikonfigurasi pada tindakan apa pun dalam urutan, artefak input tidak didukung.

## Pertimbangan untuk berbagi komputasi
<a name="compare-compute-sharing"></a>

Anda dapat menjalankan alur kerja dengan berbagi komputasi untuk mempercepat alur kerja berjalan dan berbagi konteks antar tindakan dalam alur kerja yang menggunakan instance yang sama. Pertimbangkan hal berikut untuk menentukan apakah menggunakan berbagi komputasi sesuai untuk skenario Anda:


|   | Berbagi komputasi | Tanpa berbagi komputasi | 
| --- | --- | --- | 
|  Jenis komputasi  |  Amazon EC2  |  Amazon EC2, AWS Lambda  | 
|  Penyediaan instans  |  Tindakan berjalan pada contoh yang sama  |  Tindakan berjalan pada instance terpisah  | 
|  Sistem operasi  |  Amazon Linux 2  |  Amazon Linux 2, Windows Server 2022 (hanya tindakan build)  | 
|  Referensi file  |  `$CATALYST_SOURCE_DIR_WorkflowSource`, `/sources/WorkflowSource/`  |  `$CATALYST_SOURCE_DIR_WorkflowSource`, `/sources/WorkflowSource/`  | 
|  Struktur alur kerja  |  Tindakan hanya dapat berjalan secara berurutan  |  Tindakan dapat berjalan paralel  | 
|  Mengakses data di seluruh tindakan alur kerja  |  Akses sumber alur kerja cache () `WorkflowSource`  |  Akses output artefak bersama (memerlukan konfigurasi tambahan)  | 

## Mengaktifkan berbagi komputasi
<a name="compute-sharing-steps"></a>

Gunakan instruksi berikut untuk mengaktifkan berbagi komputasi untuk alur kerja.

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

**Untuk mengaktifkan berbagi komputasi 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.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Pilih **properti Workflow**.

1. Dari menu tarik-turun **tipe Compute**, pilih. **EC2**

1. (Opsional) Dari **armada Compute - menu tarik-turun opsional**, pilih armada yang ingin Anda gunakan untuk menjalankan tindakan alur kerja. Anda dapat memilih armada sesuai permintaan atau membuat dan memilih armada yang disediakan. Untuk informasi selengkapnya, lihat [Membuat armada yang disediakan](projects-create-compute-resource.md) dan [Menetapkan armada atau menghitung untuk suatu tindakan](workflows-assign-compute-resource.md) 

1. Alihkan sakelar untuk mengaktifkan berbagi komputasi dan menjalankan tindakan dalam alur kerja pada armada yang sama.

1. (Opsional) Pilih mode lari untuk alur kerja. Untuk informasi selengkapnya, lihat [Mengonfigurasi perilaku antrian run](workflows-configure-runs.md).

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

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

**Untuk mengaktifkan berbagi komputasi 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.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Aktifkan berbagi komputasi menyetel `SharedInstance` bidang ke `TRUE` dan `Type` ke`EC2`. Setel `Fleet` ke armada komputasi yang ingin Anda gunakan untuk menjalankan tindakan alur kerja. Anda dapat memilih armada sesuai permintaan atau membuat dan memilih armada yang disediakan. Untuk informasi selengkapnya, lihat [Membuat armada yang disediakan](projects-create-compute-resource.md) dan [Menetapkan armada atau menghitung untuk suatu tindakan](workflows-assign-compute-resource.md)

   Dalam alur kerja YAMAL, tambahkan kode yang mirip dengan berikut ini:

   ```
     Name: MyWorkflow
     SchemaVersion: "1.0"
     Compute: # Define compute configuration.
       Type: EC2
       Fleet: MyFleet # Optionally, choose an on-demand or provisioned fleet.
       SharedInstance: true # Turn on compute sharing. Default is False.
     Actions:
       BuildFirst:
         Identifier: aws/build@v1
         Inputs:
           Sources:
             - WorkflowSource
         Configuration:
           Steps:
             - Run: ...
             ...
   ```

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

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

------

## Contoh
<a name="compute-sharing-examples"></a>

**Topics**
+ [Contoh: Amazon S3 Publikasikan](#compute-share-s3)

### Contoh: Amazon S3 Publikasikan
<a name="compute-share-s3"></a>

Contoh alur kerja berikut menunjukkan cara melakukan tindakan Publikasikan Amazon S3 Amazon S3 dengan dua cara: pertama menggunakan artefak input dan kemudian menggunakan berbagi komputasi. Dengan berbagi komputasi, artefak input tidak diperlukan karena Anda dapat mengakses cache. `WorkflowSource` Selain itu, artefak keluaran dalam aksi Build tidak lagi diperlukan. Tindakan S3 Publish dikonfigurasi untuk menggunakan `DependsOn` properti eksplisit untuk mempertahankan tindakan berurutan; tindakan Build harus berjalan dengan sukses agar tindakan S3 Publish dapat berjalan.
+ Tanpa berbagi komputasi, Anda perlu menggunakan artefak input dan berbagi output dengan tindakan selanjutnya:

  ```
  Name: S3PublishUsingInputArtifact
  SchemaVersion: "1.0"
  Actions:
    Build:
      Identifier: aws/build@v1
      Outputs:
        Artifacts:
          - Name: ArtifactToPublish
            Files: [output.zip]
      Inputs:
        Sources:
          - WorkflowSource
      Configuration:
        Steps:
          - Run: ./build.sh # Build script that generates output.zip
    PublishToS3:
      Identifier: aws/s3-publish@v1
      Inputs:
        Artifacts:
        - ArtifactToPublish
      Environment:
        Connections:
          - Role: codecatalyst-deployment-role
            Name: dev-deployment-role
        Name: dev-connection
      Configuration:
        SourcePath: output.zip
        DestinationBucketName: amzn-s3-demo-bucket
  ```
+ Saat menggunakan berbagi komputasi dengan `SharedInstance` menyetelnya`TRUE`, Anda dapat menjalankan beberapa tindakan pada instance yang sama dan berbagi artefak dengan menentukan satu sumber alur kerja. Artefak masukan tidak diperlukan dan tidak dapat ditentukan:

  ```
  Name: S3PublishUsingComputeSharing
  SchemaVersion: "1.0"
  Compute: 
    Type: EC2
    Fleet: dev-fleet
    SharedInstance: TRUE
  Actions:
    Build:
      Identifier: aws/build@v1
      Inputs:
        Sources:
          - WorkflowSource
      Configuration:
        Steps:
          - Run: ./build.sh # Build script that generates output.zip
    PublishToS3:
      Identifier: aws/s3-publish@v1
      DependsOn: 
        - Build
      Environment:
        Connections:
          - Role: codecatalyst-deployment-role
            Name: dev-deployment-role
        Name: dev-connection
      Configuration:
        SourcePath: output.zip
        DestinationBucketName: amzn-s3-demo-bucket
  ```

# Menentukan gambar lingkungan runtime
<a name="build-images"></a>

*Gambar lingkungan runtime* adalah wadah Docker di mana CodeCatalyst menjalankan tindakan alur kerja. Container Docker berjalan di atas platform komputasi yang Anda pilih, dan menyertakan sistem operasi dan alat tambahan yang mungkin diperlukan oleh tindakan alur kerja, seperti Node.js AWS CLI, dan .tar.

Secara default, tindakan alur kerja akan berjalan pada salah satu [gambar aktif](#build-curated-images) yang disediakan dan dikelola oleh CodeCatalyst. Hanya tindakan build dan test yang mendukung gambar kustom. Untuk informasi selengkapnya, lihat [Menetapkan image Docker lingkungan runtime kustom ke suatu tindakan](#build-images-specify).

**Topics**
+ [Gambar aktif](#build-curated-images)
+ [Bagaimana jika gambar aktif tidak menyertakan alat yang saya butuhkan?](#build-images-more-tools)
+ [Menetapkan image Docker lingkungan runtime kustom ke suatu tindakan](#build-images-specify)
+ [Contoh](#workflows-working-custom-image-ex)

## Gambar aktif
<a name="build-curated-images"></a>

*Gambar aktif adalah gambar* lingkungan runtime yang sepenuhnya didukung oleh CodeCatalyst dan menyertakan perkakas yang sudah diinstal sebelumnya. Saat ini ada dua set gambar aktif: satu dirilis pada Maret 2024, dan satu lagi dirilis pada November 2022.

Apakah suatu tindakan menggunakan gambar Maret 2024 atau November 2022 tergantung pada tindakannya:
+ [Membuat dan menguji tindakan yang ditambahkan ke alur kerja pada atau setelah 26 Maret 2024 akan menyertakan `Container` bagian dalam definisi YAML mereka yang secara eksplisit menentukan gambar Maret 2024.](#build.default-image) Anda dapat menghapus `Container` bagian tersebut secara opsional untuk kembali ke gambar [November 2022](#build.previous-image).
+ Tindakan pembuatan dan uji yang ditambahkan ke alur kerja sebelum 26 Maret 2024 *tidak* akan menyertakan `Container` bagian dalam definisi YAMLnya, dan akibatnya akan menggunakan gambar [November](#build.previous-image) 2022. Anda dapat menyimpan gambar November 2022, atau Anda dapat meningkatkannya. Untuk memutakhirkan gambar, buka tindakan di editor visual, pilih tab **Konfigurasi**, lalu pilih gambar Maret 2024 dari daftar drop-down gambar **docker lingkungan Runtime**. Pilihan ini akan menambahkan `Container` bagian ke definisi YAMAL tindakan yang diisi dengan gambar Maret 2024 yang sesuai.
+ Semua tindakan lainnya akan menggunakan gambar [November 2022 atau gambar](#build.previous-image) [Maret 2024](#build.default-image). Untuk informasi selengkapnya, lihat dokumentasi tindakan. 

**Topics**
+ [Maret 2024 foto](#build.default-image)
+ [Gambar November 2022](#build.previous-image)

### Maret 2024 foto
<a name="build.default-image"></a>

Gambar Maret 2024 adalah gambar terbaru yang disediakan oleh CodeCatalyst. Ada satu gambar Maret 2024 per kombinasi komputasi type/fleet .

Tabel berikut menunjukkan alat yang diinstal pada setiap gambar Maret 2024.


**Alat gambar Maret 2024**  

| Alat | CodeCatalyst Amazon EC2 untuk Linux x86\$164 - `CodeCatalystLinux_x86_64:2024_03` | CodeCatalyst Lambda untuk Linux x86\$164 - `CodeCatalystLinuxLambda_x86_64:2024_03` | CodeCatalyst Amazon EC2 untuk Linux Arm64 - `CodeCatalystLinux_Arm64:2024_03` | CodeCatalyst Lambda untuk Linux Arm64 - `CodeCatalystLinuxLambda_Arm64:2024_03` | 
| --- | --- | --- | --- | --- | 
| AWS CLI | 2.15.17 | 2.15.17 | 2.15.17 | 2.15.17 | 
| AWS Copilot CLI | 1.32.1 | 1.32.1 | 1.32.1 | 1.32.1 | 
| Docker | 24.0.9 | N/A | 24.0.9 | N/A | 
| Docker Compose | 2.23.3 | N/A | 2.23.3 | N/A | 
| Git | 2.43.0 | 2.43.0 | 2.43.0 | 2.43.0 | 
| Go | 1.21.5 | 1.21.5 | 1.21.5 | 1.21.5 | 
| Gradle | 8.5 | 8.5 | 8.5 | 8.5 | 
| Java | Corretto17 | Corretto17 | Corretto17 | Corretto17 | 
| Maven | 3.9.6 | 3.9.6 | 3.9.6 | 3.9.6 | 
| Node.js | 18.19.0 | 18.19.0 | 18.19.0 | 18.19.0 | 
| npm | 10.2.3 | 10.2.3 | 10.2.3 | 10.2.3 | 
| Python | 3.9.18 | 3.9.18 | 3.9.18 | 3.9.18 | 
| Python3 | 3.11.6 | 3.11.6 | 3.11.6 | 3.11.6 | 
| pip | 22.3.1 | 22.3.1 | 22.3.1 | 22.3.1 | 
| .NET | 8.0.100 | 8.0.100 | 8.0.100 | 8.0.100 | 

### Gambar November 2022
<a name="build.previous-image"></a>

Ada satu gambar November 2022 per type/fleet kombinasi komputasi. Ada juga image Windows November 2022 yang tersedia dengan tindakan build jika Anda telah mengonfigurasi armada [yang disediakan](workflows-working-compute.md#compute.fleets).

Tabel berikut menunjukkan alat yang diinstal pada setiap gambar November 2022.


**Alat gambar November 2022**  

| Alat | CodeCatalyst Amazon EC2 untuk Linux x86\$164 - `CodeCatalystLinux_x86_64:2022_11` | CodeCatalyst Lambda untuk Linux x86\$164 - `CodeCatalystLinuxLambda_x86_64:2022_11` | CodeCatalyst Amazon EC2 untuk Linux Arm64 - `CodeCatalystLinux_Arm64:2022_11` | CodeCatalyst Lambda untuk Linux Arm64 - `CodeCatalystLinuxLambda_Arm64:2022_11` | CodeCatalyst Amazon EC2 untuk Windows x86\$164 - `CodeCatalystWindows_x86_64:2022_11` | 
| --- | --- | --- | --- | --- | --- | 
| AWS CLI | 2.15.17 | 2.15.17 | 2.15.17 | 2.15.17 | 2.13.19 | 
| AWS Copilot CLI | 0.6.0 | 0.6.0 | N/A | N/A | 1.30.1 | 
| Docker | 23.01 | N/A | 23.0.1 | N/A | N/A | 
| Docker Compose | 2.16.0 | N/A | 2.16.0 | N/A | N/A | 
| Git | 2.40.0 | 2.40.0 | 2.39.2 | 2.39.2 | 2.42.0 | 
| Go | 1.20.2 | 1.20.2 | 1.20.1 | 1.20.1 | 1.19 | 
| Gradle | 8.0.2 | 8.0.2 | 8.0.1 | 8.0.1 | 8.3 | 
| Java | Corretto17 | Corretto17 | Corretto17 | Corretto17 | Corretto17 | 
| Maven | 3.9.4 | 3.9.4 | 3.9.0 | 3.9.0 | 3.9.4 | 
| Node.js | 16.20.2 | 16.20.2 | 16.19.1 | 16.14.2 | 16.20.0 | 
| npm | 8.19.4 | 8.19.4 | 8.19.3 | 8.5.0 | 8.19.4 | 
| Python | 3.9.15 | 2.7.18 | 3.11.2 | 2.7.18 | 3.9.13 | 
| Python3 | N/A | 3.9.15 | N/A | 3.11.2 | N/A | 
| pip | 22.2.2 | 22.2.2 | 23.0.1 | 23.0.1 | 22.0.4 | 
| .NET | 6.0.407 | 6.0.407 | 6.0.406 | 6.0.406 | 6.0.414 | 

## Bagaimana jika gambar aktif tidak menyertakan alat yang saya butuhkan?
<a name="build-images-more-tools"></a>

Jika tidak ada [gambar aktif](#build-curated-images) yang disediakan oleh CodeCatalyst menyertakan alat yang Anda butuhkan, Anda memiliki beberapa opsi:
+ Anda dapat memberikan image Docker lingkungan runtime kustom yang menyertakan alat yang diperlukan. Untuk informasi selengkapnya, lihat [Menetapkan image Docker lingkungan runtime kustom ke suatu tindakan](#build-images-specify).
**catatan**  
 Jika Anda ingin memberikan image Docker lingkungan runtime kustom, pastikan gambar kustom Anda telah menginstal Git di dalamnya. 
+ Anda dapat meminta build atau test action alur kerja Anda menginstal alat yang Anda butuhkan.

  Misalnya, Anda dapat menyertakan petunjuk berikut di `Steps` bagian kode YAMP build atau test action:

  ```
  Configuration:
    Steps:
      - Run: ./setup-script
  ```

  *setup-script*Instruksi kemudian akan menjalankan skrip berikut untuk menginstal manajer paket Node (npm):

  ```
  #!/usr/bin/env bash
  echo "Setting up environment"
  
  touch ~/.bashrc
  curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
  source ~/.bashrc 
  nvm install v16.1.0
  source ~/.bashrc
  ```

  Untuk informasi selengkapnya tentang aksi build YAMAL, lihat[Membangun dan menguji tindakan YAMB](build-action-ref.md).

## Menetapkan image Docker lingkungan runtime kustom ke suatu tindakan
<a name="build-images-specify"></a>

Jika Anda tidak ingin menggunakan [gambar Aktif yang disediakan oleh CodeCatalyst, Anda dapat memberikan image](#build-curated-images) Docker lingkungan runtime kustom. Jika Anda ingin memberikan gambar kustom, pastikan Git sudah terpasang di dalamnya. Gambar dapat berada di Docker Hub, Amazon Elastic Container Registry, atau repositori publik apa pun.

Untuk mempelajari cara membuat image Docker kustom, lihat [Containerize aplikasi](https://docs.docker.com/get-started/02_our_app/) dalam dokumentasi Docker.

Gunakan petunjuk berikut untuk menetapkan image Docker lingkungan runtime kustom Anda ke tindakan. Setelah menentukan gambar, CodeCatalyst terapkan ke platform komputasi Anda saat tindakan dimulai.

**catatan**  
**Tindakan berikut tidak mendukung lingkungan runtime kustom Gambar Docker: **Deploy CloudFormation stack, Deploy** **to ECS**, dan **GitHub Actions**. Lingkungan runtime kustom Gambar Docker juga tidak mendukung jenis komputasi Lambda.**

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

**Untuk menetapkan lingkungan runtime kustom gambar Docker menggunakan editor visual**

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

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 akan menggunakan image Docker lingkungan runtime kustom Anda.

1. Pilih tab **Konfigurasi**.

1. Di dekat bagian bawah, isi bidang berikut.

   **Lingkungan runtime Gambar Docker - opsional**

   Tentukan registri tempat gambar Anda disimpan. Nilai yang valid meliputi:
   + `CODECATALYST`(Editor YAMAL)

     Gambar disimpan dalam CodeCatalyst registri.
   + **Docker Hub** (editor visual) atau `DockerHub` (editor YAMAL)

     Gambar disimpan dalam registri gambar Docker Hub.
   + **Registri lain** (editor visual) atau `Other` (editor YAMAL)

     Gambar disimpan dalam registri gambar khusus. Registri apa pun yang tersedia untuk umum dapat digunakan.
   + **Amazon Elastic Container Registry** (editor visual) atau `ECR` (editor YAMAL)

     Gambar disimpan dalam repositori gambar Amazon Elastic Container Registry. Untuk menggunakan gambar di repositori Amazon ECR, tindakan ini memerlukan akses ke Amazon ECR. Untuk mengaktifkan akses ini, Anda harus membuat [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang mencakup izin berikut dan kebijakan kepercayaan khusus. (Anda dapat mengubah peran yang ada untuk menyertakan izin dan kebijakan, jika Anda mau.)

     Peran IAM harus menyertakan izin berikut dalam kebijakan perannya:
     + `ecr:BatchCheckLayerAvailability`
     + `ecr:BatchGetImage`
     + `ecr:GetAuthorizationToken`
     + `ecr:GetDownloadUrlForLayer`

     Peran IAM harus menyertakan kebijakan kepercayaan khusus berikut:

     Untuk informasi selengkapnya tentang membuat peran IAM, lihat [Membuat peran menggunakan kebijakan kepercayaan khusus (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) di *Panduan Pengguna IAM*.

     Setelah Anda membuat peran, Anda harus menetapkannya ke tindakan melalui lingkungan. Untuk informasi selengkapnya, lihat [Mengaitkan lingkungan dengan tindakan](deploy-environments-add-app-to-environment.md).

   **URL gambar ECR****, gambar **Docker Hub atau URL Gambar****

   Tentukan satu dari yang berikut ini:
   + Jika Anda menggunakan `CODECATALYST` registri, atur gambar ke salah satu [gambar aktif](#build-curated-images) berikut:
     + `CodeCatalystLinux_x86_64:2024_03`
     + `CodeCatalystLinux_x86_64:2022_11`
     + `CodeCatalystLinux_Arm64:2024_03`
     + `CodeCatalystLinux_Arm64:2022_11`
     + `CodeCatalystLinuxLambda_x86_64:2024_03`
     + `CodeCatalystLinuxLambda_x86_64:2022_11`
     + `CodeCatalystLinuxLambda_Arm64:2024_03`
     + `CodeCatalystLinuxLambda_Arm64:2022_11`
     + `CodeCatalystWindows_x86_64:2022_11`
   + Jika Anda menggunakan registri Docker Hub, atur gambar ke nama gambar Docker Hub dan tag opsional.

     Contoh: `postgres:latest`
   + Jika Anda menggunakan registri Amazon ECR, atur gambar ke URI registri Amazon ECR.

     Contoh: `111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo`
   + Jika Anda menggunakan registri kustom, atur gambar ke nilai yang diharapkan oleh registri kustom.

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 image Docker lingkungan runtime kustom menggunakan editor YAMAL**

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. Temukan tindakan yang ingin Anda tetapkan pada image Docker lingkungan runtime.

1. Dalam tindakan, tambahkan `Container` bagian dan yang mendasari `Registry` dan `Image` properti. Untuk informasi selengkapnya, lihat deskripsi`Container`, `Registry` dan `Image` properti di [Tindakan](workflow-reference.md#actions-reference) untuk tindakan Anda.

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

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

------

## Contoh
<a name="workflows-working-custom-image-ex"></a>

Contoh berikut menunjukkan cara menetapkan image Docker lingkungan runtime kustom ke tindakan dalam file definisi alur kerja.

**Topics**
+ [Contoh: Menggunakan image Docker lingkungan runtime kustom untuk menambahkan dukungan untuk Node.js 18 dengan Amazon ECR](#workflows-working-custom-image-ex-ecr-node18)
+ [Contoh: Menggunakan image Docker lingkungan runtime kustom untuk menambahkan dukungan untuk Node.js 18 dengan Docker Hub](#workflows-working-custom-image-ex-docker-node18)

### Contoh: Menggunakan image Docker lingkungan runtime kustom untuk menambahkan dukungan untuk Node.js 18 dengan Amazon ECR
<a name="workflows-working-custom-image-ex-ecr-node18"></a>

Contoh berikut menunjukkan cara menggunakan image Docker lingkungan runtime kustom untuk menambahkan dukungan untuk Node.js 18 dengan [Amazon](https://gallery.ecr.aws/amazonlinux/amazonlinux) ECR.

```
Configuration:
  Container:
    Registry: ECR
    Image: public.ecr.aws/amazonlinux/amazonlinux:2023
```

### Contoh: Menggunakan image Docker lingkungan runtime kustom untuk menambahkan dukungan untuk Node.js 18 dengan Docker Hub
<a name="workflows-working-custom-image-ex-docker-node18"></a>

Contoh berikut menunjukkan cara menggunakan image Docker lingkungan runtime kustom untuk menambahkan dukungan untuk Node.js 18 dengan [Docker](https://hub.docker.com/_/node) Hub.

```
Configuration:
  Container:
    Registry: DockerHub
    Image: node:18.18.2
```

# Menghubungkan repositori sumber ke alur kerja
<a name="workflows-sources"></a>

*Sumber*, juga disebut *sumber input*, adalah repositori sumber yang menghubungkan [tindakan alur kerja](workflows-actions.md) untuk mendapatkan file yang dibutuhkan untuk menjalankan operasinya. Misalnya, tindakan alur kerja mungkin terhubung ke repositori sumber untuk mendapatkan file sumber aplikasi untuk membangun aplikasi.

CodeCatalyst alur kerja mendukung sumber-sumber berikut:
+ CodeCatalyst repositori sumber - Untuk informasi lebih lanjut, lihat. [Simpan dan berkolaborasi pada kode dengan repositori sumber di CodeCatalystSimpan dan berkolaborasi pada kode dengan repositori sumber](source.md)
+ GitHub repositori, repositori Bitbucket, dan repositori GitLab proyek — Untuk informasi lebih lanjut, lihat. [Tambahkan fungsionalitas ke proyek dengan ekstensi di CodeCatalystTambahkan fungsionalitas ke proyek dengan ekstensi](extensions.md)

**Topics**
+ [Menentukan repositori sumber file alur kerja](workflows-sources-specify-workflow-def.md)
+ [Menentukan repositori sumber tindakan alur kerja](workflows-sources-specify-action.md)
+ [Merujuk file repositori sumber](workflows-sources-reference-files.md)
+ [Variabel BranchName '' dan CommitId ''](workflows-sources-variables.md)

# Menentukan repositori sumber file alur kerja
<a name="workflows-sources-specify-workflow-def"></a>

Gunakan petunjuk berikut untuk menentukan repositori CodeCatalyst sumber tempat Anda ingin menyimpan file definisi alur kerja Anda. Jika Anda lebih suka menentukan repositori, GitHub repositori Bitbucket, atau repositori GitLab proyek, lihat saja. [Tambahkan fungsionalitas ke proyek dengan ekstensi di CodeCatalystTambahkan fungsionalitas ke proyek dengan ekstensi](extensions.md)

Repositori sumber tempat file definisi alur kerja Anda berada diidentifikasi oleh label,. `WorkflowSource`

**catatan**  
Anda menentukan repositori sumber tempat file definisi alur kerja Anda berada saat pertama kali mengkomit file definisi alur kerja Anda. Setelah komit ini, file definisi repositori dan alur kerja ditautkan bersama secara permanen. Satu-satunya cara untuk mengubah repositori setelah komit awal adalah dengan membuat ulang alur kerja di repositori yang berbeda.

**Untuk menentukan repositori sumber yang akan menyimpan file definisi 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 **Buat alur kerja** dan buat alur kerja. Untuk informasi selengkapnya, lihat [Membuat alur kerja](workflows-create-workflow.md).

   Selama proses pembuatan alur kerja, Anda dapat menentukan CodeCatalyst repositori, cabang, dan folder tempat Anda ingin menyimpan file definisi alur kerja Anda.

# Menentukan repositori sumber tindakan alur kerja
<a name="workflows-sources-specify-action"></a>

Gunakan petunjuk berikut untuk menentukan repositori sumber yang akan digunakan dengan tindakan alur kerja. Saat startup, tindakan menggabungkan file di repositori sumber yang dikonfigurasi menjadi artefak, mengunduh artefak ke [image Docker lingkungan runtime](build-images.md) tempat tindakan berjalan, dan kemudian menyelesaikan pemrosesannya menggunakan file yang diunduh.

**catatan**  
Saat ini, dalam tindakan alur kerja, Anda hanya dapat menentukan satu repositori sumber, yang merupakan repositori sumber tempat file definisi alur kerja berada (di `.codecatalyst/workflows/` direktori atau salah satu subdirektorinya). Repositori sumber ini diwakili oleh label. `WorkflowSource`

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

**Untuk menentukan repositori sumber yang akan digunakan 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 **Visual**.

1. Dalam diagram alur kerja, pilih tindakan di mana Anda ingin menentukan sumbernya.

1. Pilih **Input**.

1. Dalam **Sumber - opsional** lakukan hal berikut:

   Tentukan label yang mewakili repositori sumber yang akan dibutuhkan oleh tindakan. Saat ini, satu-satunya label yang didukung adalah`WorkflowSource`, yang mewakili repositori sumber tempat file definisi alur kerja Anda disimpan.

   Jika Anda menghilangkan sumber, maka Anda harus menentukan setidaknya satu artefak input di bawah. `action-name/Inputs/Artifacts`

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

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

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

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

**Untuk menentukan repositori sumber yang akan digunakan tindakan (editor YAMG)**

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 **YAMG.**

1. Dalam suatu tindakan, tambahkan kode yang mirip dengan berikut ini:

   ```
   action-name:
    Inputs:
      Sources:
        - WorkflowSource
   ```

   Untuk informasi selengkapnya, lihat deskripsi `Sources` properti [Alur kerja definisi YAMAL](workflow-reference.md) untuk tindakan Anda.

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

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

------

# Merujuk file repositori sumber
<a name="workflows-sources-reference-files"></a>

Jika Anda memiliki file yang berada di repositori sumber, dan Anda perlu merujuk ke file-file ini di salah satu tindakan alur kerja Anda, selesaikan prosedur berikut.

**catatan**  
Lihat juga [Mereferensikan file dalam artefak](workflows-working-artifacts-refer-files.md).

**Untuk referensi file yang disimpan dalam repositori sumber**
+ Dalam tindakan di mana Anda ingin mereferensikan file, tambahkan kode yang mirip dengan berikut ini:

  ```
  Actions:
    My-action:
      Inputs:
        Sources:
          - WorkflowSource
        Configuration:
          Steps:
          - run: cd my-app && cat file1.jar
  ```

  Dalam kode sebelumnya, tindakan terlihat di `my-app` direktori di root repositori `WorkflowSource` sumber untuk menemukan dan menampilkan file. `file1.jar`

# Variabel BranchName '' dan CommitId ''
<a name="workflows-sources-variables"></a>

 CodeCatalyst Sumber menghasilkan dan menetapkan `BranchName` dan `CommitId` variabel saat alur kerja Anda berjalan. Ini dikenal sebagai *variabel yang telah ditentukan*. Lihat tabel berikut untuk informasi tentang variabel-variabel ini.

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


| Key | Nilai | 
| --- | --- | 
|  CommitId  |  ID komit yang mewakili status repositori pada saat alur kerja dijalankan. Contoh: `example3819261db00a3ab59468c8b` Lihat juga: [Contoh: Mereferensikan variabel CommitId standar ""](workflows-predefined-examples.md#workflows-working-with-variables-ex-refer-action)  | 
|  BranchName  |  Nama cabang tempat alur kerja dijalankan. Contoh:`main`,`feature/branch`, `test-LiJuan` Lihat juga: [Contoh: Mereferensikan variabel BranchName standar ""](workflows-predefined-examples.md#workflows-working-with-variables-ex-branch)  | 

# Menghubungkan repositori paket ke alur kerja
<a name="workflows-packages"></a>

*Paket* adalah bundel yang mencakup perangkat lunak dan metadata yang diperlukan untuk menginstal perangkat lunak dan menyelesaikan dependensi apa pun. CodeCatalyst mendukung format paket npm.

Paket terdiri dari:
+ Nama (misalnya, `webpack` adalah nama paket npm populer)
+ [Namespace](packages-concepts.md#packages-concepts-package-namespaces) opsional (misalnya, `@types` di `@types/node`)
+ Satu set [versi](packages-concepts.md#packages-concepts-package-versions) (misalnya,`1.0.0`,`1.0.1`,`1.0.2`)
+ Metadata tingkat paket (misalnya, tag dist npm)

Di CodeCatalyst, Anda dapat mempublikasikan paket ke dan mengkonsumsi paket dari repositori CodeCatalyst paket di alur kerja Anda. Anda dapat mengonfigurasi tindakan build atau test dengan repositori CodeCatalyst paket untuk secara otomatis mengonfigurasi klien npm tindakan untuk mendorong dan menarik paket dari repositori yang ditentukan.

Untuk informasi selengkapnya tentang paket, lihat[Publikasikan dan bagikan paket perangkat lunak di CodeCatalyst](packages.md).

**catatan**  
Saat ini, tindakan build dan uji mendukung repositori CodeCatalyst paket.

**Topics**
+ [Tutorial: Tarik dari repositori paket](packages-tutorial.md)
+ [Menentukan repositori CodeCatalyst paket dalam alur kerja](workflows-package-specify-action.md)
+ [Menggunakan token otorisasi dalam tindakan alur kerja](workflows-package-export-token.md)
+ [Contoh: Package repositori dalam alur kerja](workflows-working-packages-ex.md)

# Tutorial: Tarik dari repositori paket
<a name="packages-tutorial"></a>

[Dalam tutorial ini, Anda belajar cara membuat alur kerja yang menjalankan aplikasi yang dependensinya ditarik dari repositori paket. CodeCatalyst ](packages-concepts.md#packages-concepts-repository) Aplikasi ini adalah aplikasi Node.js sederhana yang mencetak pesan 'Hello World' ke log. CodeCatalyst Aplikasi ini memiliki ketergantungan tunggal: paket [lodash npm](https://www.npmjs.com/package/lodash). `lodash`Paket ini digunakan untuk mengubah `hello-world` string ke`Hello World`. Anda akan menggunakan versi 4.17.20 dari paket ini.

[Setelah menyiapkan aplikasi dan alur kerja, Anda mengonfigurasi CodeCatalyst untuk memblokir versi tambahan agar tidak diimpor ke repositori CodeCatalyst paket `lodash` dari registri eksternal publik (npmjs.com).](https://www.npmjs.com/) Anda kemudian menguji apakah versi tambahan berhasil `lodash` diblokir.

Pada akhir tutorial ini, Anda harus memiliki pemahaman yang baik tentang bagaimana alur kerja berinteraksi dengan repositori paket, baik di dalam maupun di luar CodeCatalyst, untuk mengambil paket. Anda juga harus memahami behind-the-scenes interaksi yang terjadi antara npm, repositori paket Anda, alur kerja Anda, dan file aplikasi Anda. `package.json` 

**Topics**
+ [Prasyarat](#packages-tutorial-prereqs)
+ [Langkah 1: Buat repositori sumber](#packages-tutorial-source-repo)
+ [Langkah 2: Buat repositori paket CodeCatalyst dan gateway](#packages-tutorial-package-repo)
+ [Langkah 3: Buat aplikasi 'Hello World'](#packages-tutorial-create-app)
+ [Langkah 4: Buat alur kerja yang menjalankan 'Hello World'](#packages-tutorial-create-workflow)
+ [Langkah 5: Verifikasi alur kerja](#packages-tutorial-verify)
+ [Langkah 6: Blokir impor dari npmjs.com](#packages-tutorial-block)
+ [Langkah 7: Uji fitur pemblokiran](#packages-tutorial-test-block)
+ [Bersihkan](#packages-tutorial-cleanup)

## Prasyarat
<a name="packages-tutorial-prereqs"></a>

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

  ```
  codecatalyst-package-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).

## Langkah 1: Buat repositori sumber
<a name="packages-tutorial-source-repo"></a>

Pada langkah ini, Anda membuat repositori sumber di. CodeCatalyst Repositori ini menyimpan file sumber tutorial, seperti file `index.js` dan`package.json`.

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-package-project`.

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

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

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

   ```
   hello-world-app
   ```

1. Pilih **Buat**.

## Langkah 2: Buat repositori paket CodeCatalyst dan gateway
<a name="packages-tutorial-package-repo"></a>

Pada langkah ini, Anda membuat repositori paket di CodeCatalyst proyek Anda, dan menghubungkannya ke repositori gateway, juga di proyek Anda. CodeCatalyst Anda kemudian mengimpor ketergantungan tutorial,`lodash`, dari npmjs.com ke kedua repositori.

Repositori gateway adalah 'lem' yang menghubungkan repositori paket Anda ke npmjs.com publik CodeCatalyst .

Untuk informasi selengkapnya tentang repositori paket, lihat. [Publikasikan dan bagikan paket perangkat lunak di CodeCatalyst](packages.md)

**catatan**  
Tutorial ini menggunakan istilah *repositori CodeCatalyst paket* dan *repositori gateway* untuk merujuk ke dua repositori yang Anda buat dalam prosedur berikut. CodeCatalyst 

**Untuk membuat CodeCatalyst repositori paket dan gateway**

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

1. Pilih **Buat repositori paket**.

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

   ```
   codecatalyst-package-repository
   ```

1. Pilih **\$1 Pilih repositori upstream**.

1. Pilih **repositori Gateway**.

1. Di dalam **npm-public-registry-gateway**kotak, pilih **Buat**.

1. Pilih **Pilih**.

1. Pilih **Buat**.

   CodeCatalyst membuat repositori paket `codecatalyst-package-repository` yang disebut yang terhubung ke repositori gateway. Repositori gateway terhubung ke registri npmjs.com.

## Langkah 3: Buat aplikasi 'Hello World'
<a name="packages-tutorial-create-app"></a>

Pada langkah ini, Anda membuat aplikasi Node.js 'Hello World' dan mengimpor dependensinya (`lodash`) ke gateway dan CodeCatalyst repositori paket Anda.

Untuk membuat aplikasi, Anda memerlukan mesin pengembangan dengan Node.js dan `npm` klien terkait diinstal.

Tutorial ini mengasumsikan Anda akan menggunakan CodeCatalyst Dev Environment sebagai mesin pengembangan Anda. Meskipun Anda tidak harus menggunakan CodeCatalyst Dev Environment, disarankan karena menyediakan lingkungan kerja yang bersih, memiliki Node.js dan sudah `npm` diinstal sebelumnya, dan mudah dihapus ketika Anda telah menyelesaikan tutorial. Untuk informasi selengkapnya tentang Lingkungan CodeCatalyst Pengembang, lihat[Membuat Lingkungan Pengembangan](devenvironment-create.md).

Gunakan petunjuk berikut untuk meluncurkan CodeCatalyst Dev Environment dan menggunakannya untuk membuat aplikasi 'Hello World'.

**Untuk meluncurkan Lingkungan CodeCatalyst Dev**

1. Di panel navigasi, pilih **Kode**, lalu pilih Lingkungan **Dev**. 

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

1. Pastikan bahwa **Repositori** disetel ke `hello-world-app` dan **cabang yang ada** disetel ke. `main` Pilih **Buat**.

   Lingkungan Dev Anda diluncurkan di tab browser baru, dan repositori (`hello-world-app`) Anda dikloning ke dalamnya.

1. Biarkan kedua tab CodeCatalyst browser terbuka, dan pergi ke prosedur berikutnya.

**Untuk membuat aplikasi Node.js 'Hello World'**

1. Pergi ke Lingkungan Pengembang Anda.

1. Pada prompt terminal, ubah ke direktori root repositori `hello-world-app` sumber:

   ```
   cd hello-world-app
   ```

1. Menginisialisasi proyek Node.js:

   ```
   npm init -y
   ```

   Inisialisasi membuat `package.json` file di direktori root. `hello-world-app`

1. Hubungkan klien npm di Lingkungan Dev Anda ke repositori CodeCatalyst paket Anda:

   1. Beralih ke CodeCatalyst konsol.

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

   1. Pilih `codecatalyst-package-repository`.

   1. Pilih **Connect to repository**.

   1. Pilih **Buat token**. Token akses pribadi (PAT) dibuat untuk Anda.

   1. Pilih **Salin** untuk menyalin perintah.

   1. Beralih ke Lingkungan Pengembang Anda.

   1. Pastikan Anda berada di `hello-world-app` direktori.

   1. Tempelkan perintah. Mereka terlihat mirip dengan yang berikut:

      ```
      npm set registry=https://packages.us-west-2.codecatalyst.aws/npm/ExampleCompany/codecatalyst-package-project/codecatalyst-package-repository/ --location project
      npm set //packages.us-west-2.codecatalyst.aws/npm/ExampleCompany/codecatalyst-package-project/hello-world-app/:_authToken=username:token-secret
      ```

1. Impor `lodash` versi 4.17.20:

   ```
   npm install lodash@v4.17.20 --save --save-exact
   ```

   npm mencari `lodash` versi 4.17.20 di lokasi berikut, dengan urutan sebagai berikut:
   + Di Lingkungan Dev. Itu tidak dapat menemukannya di sini.
   + Dalam repositori CodeCatalyst paket. Itu tidak dapat menemukannya di sini.
   + Di repositori gateway. Itu tidak dapat menemukannya di sini.
   + Di npmjs.com. Ia menemukannya di sini.

   npm mengimpor `lodash` ke repositori gateway, repositori CodeCatalyst paket, dan Lingkungan Dev.
**catatan**  
Jika Anda tidak menghubungkan klien npm ke repositori CodeCatalyst paket Anda di langkah 4, maka npm akan menarik `lodash` langsung dari npmjs.com dan tidak akan mengimpor paket ke salah satu repositori.

   npm juga memperbarui `package.json` file Anda dengan `lodash` dependensi, dan membuat `node_modules` direktori yang berisi `lodash` dan semua dependensinya.

1. Uji yang berhasil `lodash` diimpor ke Lingkungan Pengembang Anda. Masukkan:

   ```
   npm list
   ```

   Pesan berikut muncul, menunjukkan impor yang berhasil:

   ```
   `-- lodash@4.17.20
   ```

1. (Opsional) Buka `hello-world-app/package.json` dan verifikasi bahwa baris ***red bold***ditambahkan:

   ```
   {
     "name": "hello-world-app",
     "version": "1.0.0",
     "description": "",
     "main": "index.js",
     "scripts": {
       "test": "echo \"Error: no test specified\" && exit 1"
     },
     "keywords": [],
     "author": "",
     "license": "ISC",
     dependencies": {
       "lodash": "4.17.20"
     }
   }
   ```

1. Di`/hello-world-app`, buat file yang disebut `index.js` dengan konten berikut:
**Tip**  
Anda dapat menggunakan navigasi samping di Lingkungan Dev Anda untuk membuat file ini.

   ```
   // Importing lodash library
   const _ = require('lodash');
   
   // Input string
   const inputString = 'hello-world';
   
   // Transforming the string using lodash
   const transformedString = _.startCase(inputString.replace('-', ' '));
   
   // Outputting the transformed string to the console
   console.log(transformedString);
   ```

**Untuk menguji bahwa 'lodash' diimpor ke gateway dan repositori CodeCatalyst paket Anda**

1. Beralih ke CodeCatalyst konsol.

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

1. Pilih **npm-public-registry-gateway**.

1. Pastikan `lodash` ditampilkan. Kolom **versi terbaru** menunjukkan`4.17.20`.

1. Ulangi prosedur ini untuk`codecatalyst-package-repository`. Anda mungkin perlu menyegarkan jendela browser untuk melihat paket yang diimpor.

**Untuk menguji 'Hello World' di Lingkungan Dev Anda**

1. Beralih ke Lingkungan Pengembang Anda.

1. Pastikan Anda masih berada di `hello-world-app` direktori, dan kemudian jalankan aplikasi:

   ```
   node index.js
   ```

   Sebuah `Hello World` pesan muncul. Node.js menjalankan aplikasi menggunakan `lodash` paket yang Anda download ke Dev Environment Anda pada langkah sebelumnya.

**Untuk mengabaikan direktori 'node\$1modules' dan komit 'Hello World'**

1. Abaikan `node_modules` direktori. Masukkan:

   ```
   echo "node_modules/" >> .gitignore
   ```

   Ini adalah praktik terbaik untuk menghindari melakukan direktori ini. Juga, melakukan direktori ini akan mengganggu langkah-langkah selanjutnya dalam tutorial ini.

1. Tambahkan, komit, dan dorong:

   ```
   git add .
   git commit -m "add the Hello World application"
   git push
   ```

   Aplikasi 'Hello World' dan file proyek ditambahkan ke repositori sumber Anda.

## Langkah 4: Buat alur kerja yang menjalankan 'Hello World'
<a name="packages-tutorial-create-workflow"></a>

Pada langkah ini, Anda membuat alur kerja yang menjalankan aplikasi 'Hello World' menggunakan dependensi. `lodash` Alur kerja mencakup satu *tindakan*, atau tugas, yang disebut`RunHelloWorldApp`. `RunHelloWorldApp`Tindakan ini mencakup perintah dan bagian penting berikut:
+ **`Packages`**

  Bagian ini menunjukkan nama repositori CodeCatalyst paket yang harus dihubungkan oleh tindakan saat menjalankan. `npm install`
+ **`- Run: npm install`** 

  Perintah ini memberitahu npm untuk menginstal dependensi yang ditentukan dalam file. `package.json` Satu-satunya ketergantungan yang ditentukan dalam `package.json` file adalah`lodash`. npm mencari `lodash` di lokasi berikut:
  + Pada gambar Docker menjalankan aksi. Itu tidak dapat menemukannya di sini.
  + Dalam repositori CodeCatalyst paket. Ia menemukannya di sini.

  Setelah npm menemukan`lodash`, ia mengimpornya ke image Docker yang menjalankan tindakan.
+ **`- Run: npm list`**

  Perintah ini mencetak versi mana `lodash` yang diunduh ke gambar Docker yang menjalankan tindakan.
+ **`- Run: node index.js`**

  Perintah ini menjalankan aplikasi 'Hello World' menggunakan dependensi yang ditentukan dalam file. `package.json`

Perhatikan bahwa `RunHelloWorldApp` tindakan tersebut adalah tindakan build, seperti yang ditunjukkan oleh `aws/build@v1` identifier di dekat bagian atas alur kerja. Untuk informasi selengkapnya tentang tindakan build, lihat[Membangun dengan alur kerja](build-workflow-actions.md).

Gunakan petunjuk berikut untuk membuat alur kerja yang menarik `lodash` ketergantungan dari repositori CodeCatalyst paket Anda dan kemudian menjalankan aplikasi 'Hello World' Anda.

**Untuk membuat alur kerja**

1. Beralih ke CodeCatalyst konsol.

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

1. Pilih **Buat alur kerja**.

1. Untuk **repositori Sumber, pilih**. `hello-world-app`

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

   File definisi alur kerja akan dibuat di repositori dan cabang sumber yang dipilih.

1. Pilih **Buat**.

1. Pilih **YAMAL di** dekat bagian atas.

1. Hapus kode sampel YAMM.

1. Tambahkan kode YAMM berikut:

   ```
   Name: codecatalyst-package-workflow
   SchemaVersion: "1.0"
   
   # Required - Define action configurations.
   Actions:
     RunHelloWorldApp:
       # Identifies the action. Do not modify this value.
       Identifier: aws/build@v1
       Compute:
         Type: Lambda
       Inputs:
         Sources:
           - WorkflowSource # This specifies your source repository. 
       Configuration:
         Steps:
           - Run: npm install
           - Run: npm list
           - Run: node index.js
         Container: # This specifies the Docker image that runs the action.
           Registry: CODECATALYST
           Image: CodeCatalystLinuxLambda_x86_64:2024_03
       Packages:
         NpmConfiguration:
           PackageRegistries:
             - PackagesRepository: codecatalyst-package-repository
   ```

   Dalam kode sebelumnya, ganti *codecatalyst-package-repository* dengan nama repositori CodeCatalyst paket yang Anda buat. [Langkah 2: Buat repositori paket CodeCatalyst dan gateway](#packages-tutorial-package-repo)

   Untuk informasi tentang properti dalam file ini, lihat[Membangun dan menguji tindakan YAMB](build-action-ref.md).

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

1. Pilih **Terapkan**.

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

   1. Untuk **nama file Workflow**, pertahankan default,`codecatalyst-package-workflow`.

   1. Untuk **pesan Commit**, masukkan:

      ```
      add initial workflow file
      ```

   1. Untuk **Repositori, pilih**. **hello-world-app**

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

   1. Pilih **Terapkan**.

   Anda sekarang telah membuat alur kerja.

**Untuk menjalankan alur kerja**

1. Di samping alur kerja yang baru saja Anda buat (`codecatalyst-package-workflow`), pilih **Tindakan** lalu pilih **Jalankan**.

   Jalankan alur kerja dimulai.

1. Di notifikasi hijau di bagian atas, di sebelah kanan, pilih tautan ke run. Tautannya terlihat mirip dengan`View Run-1234`.

   Diagram alur kerja muncul, menunjukkan siapa yang memulai proses dan **RunHelloWorldApp**tindakan.

1. Pilih kotak **RunHelloWorldApp**tindakan untuk melihat kemajuan tindakan. 

1. Saat lari selesai, pergi ke[Langkah 5: Verifikasi alur kerja](#packages-tutorial-verify).

## Langkah 5: Verifikasi alur kerja
<a name="packages-tutorial-verify"></a>

Pada langkah ini, Anda memverifikasi bahwa alur kerja berhasil menjalankan aplikasi 'Hello World' dengan ketergantungannya. `lodash`

**Untuk memverifikasi bahwa aplikasi 'Hello World' berjalan menggunakan ketergantungannya**

1. Dalam diagram alur kerja, pilih **RunHelloWorldApp**kotak.

   Daftar pesan log muncul.

1. Perluas pesan `node index.js` log.

   Pesan berikut muncul:

   ```
   [Container] 2024/04/24 21:15:41.545650 Running command node index.js
   Hello World
   ```

   Munculnya `Hello Word` (bukan`hello-world`) menunjukkan bahwa `lodash` ketergantungan berhasil digunakan.

1. Perluas `npm list` log.

   Pesan yang mirip dengan berikut ini muncul:

   ```
   └── lodash@4.17.20
   ```

   Pesan ini menunjukkan bahwa `lodash` versi 4.17.20 telah diunduh ke gambar Docker yang menjalankan tindakan alur kerja.

## Langkah 6: Blokir impor dari npmjs.com
<a name="packages-tutorial-block"></a>

 Sekarang `lodash` versi 4.17.20 hadir di gateway dan repositori CodeCatalyst paket Anda, Anda dapat memblokir impor versi lain. Pemblokiran mencegah Anda mengimpor versi yang lebih baru (atau sebelumnya) secara tidak sengaja`lodash`, yang mungkin berisi kode berbahaya. Untuk informasi selengkapnya, lihat [Mengedit kontrol asal paket](package-origin-controls.md) dan [Serangan substitusi ketergantungan](package-origin-controls.md#dependency-substitution-attacks).

Gunakan petunjuk berikut untuk memblokir impor `lodash` ke repositori gateway Anda. Ketika Anda memblokir paket di gateway, mereka juga diblokir di lokasi hilir.

**Untuk memblokir impor ke repositori gateway Anda**

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

1. Pilih **npm-publish-registry-gateway**.

1. Pilih `lodash`.

1. Di dekat bagian atas, pilih **Kontrol asal**.

1. Di bawah **Upstream**, pilih **Blokir**.

1. Pilih **Simpan**.

   Anda sekarang telah memblokir impor ke repositori gateway Anda (dan repositori hilir dan komputer) dari npmjs.com.

## Langkah 7: Uji fitur pemblokiran
<a name="packages-tutorial-test-block"></a>

Di bagian ini, Anda memverifikasi bahwa pemblokiran yang Anda atur berfungsi. [Langkah 6: Blokir impor dari npmjs.com](#packages-tutorial-block) **Anda mulai dengan mengonfigurasi 'Hello World' untuk meminta versi 4.17.2 **1** `lodash` alih-alih yang tersedia di repositori gateway Anda, yaitu 4.17.2 0.** Anda kemudian memeriksa apakah aplikasi tidak dapat menarik versi 4.17.21 dari nmpjs.com, yang menunjukkan penyumbatan yang berhasil. Sebagai tes terakhir, Anda membuka blokir impor ke repositori gateway Anda, dan memeriksa apakah aplikasi dapat berhasil menarik versi 4.17.21 dari. `lodash`

Gunakan serangkaian prosedur berikut untuk menguji fitur pemblokiran.

**Sebelum Anda mulai**

1. Beralih ke Lingkungan Pengembang Anda.

1. Tarik `codecatalyst-package-workflow.yaml` file yang Anda buat menggunakan CodeCatalyst konsol sebelumnya:

   ```
   git pull
   ```

**Untuk mengkonfigurasi 'Hello World' untuk meminta versi 4.17.21 dari 'lodash'**

1. Buka `/hello-world-app/package.json`.

1. Ubah `lodash` versi ke 4.17.21 seperti yang ditunjukkan pada: ***red bold***

   ```
   {
     "name": "hello-world-app",
     "version": "1.0.0",
     "description": "",
     "main": "index.js",
     "scripts": {
       "test": "echo \"Error: no test specified\" && exit 1"
     },
     "keywords": [],
     "author": "",
     "license": "ISC",
     "dependencies": {
       "lodash": "4.17.21"
     }
   }
   ```

   Sekarang ada ketidakcocokan antara versi dalam `package.json` file (4.17.21) dan versi di gateway dan repositori CodeCatalyst paket (4.17.20).

1. Tambahkan, komit, dan dorong:

   ```
   git add .
   git commit -m "update package.json to use lodash 4.17.21"
   git push
   ```

**Untuk menguji bahwa 'Hello World' tidak dapat menarik versi 4.17.21 dari 'lodash'**

1. Jalankan alur kerja dengan ketidakcocokan versi:

   1. Beralih ke CodeCatalyst konsol.

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

   1. Di samping`codecatalyst-package-workflow`, pilih **Tindakan**, lalu pilih **Jalankan.**

      npm `package.json` mencari dependensi dan melihat bahwa versi 4.17.21 dari `lodash` diperlukan oleh 'Hello World'. npm mencari ketergantungan di lokasi berikut, dengan urutan berikut:
      + Pada gambar Docker menjalankan aksi. Itu tidak dapat menemukannya di sini.
      + Dalam repositori CodeCatalyst paket. Itu tidak dapat menemukannya di sini.
      + Di repositori gateway. Itu tidak dapat menemukannya di sini.
      + Di npmjs.com. Ia menemukannya di sini.

      Setelah npm menemukan versi 4.17.21 di npmjs.com, ia mencoba mengimpornya ke repositori gateway, tetapi karena Anda mengatur gateway untuk memblokir impor, impor tidak terjadi. `lodash`

      Karena impor tidak terjadi, alur kerja gagal.

1. Verifikasi bahwa alur kerja gagal:

   1. Di notifikasi hijau di bagian atas, di sebelah kanan, pilih tautan ke run. Tautannya terlihat mirip dengan`View Run-2345`.

   1. Dalam diagram alur kerja, pilih **RunHelloWorldApp**kotak.

   1. Perluas pesan `npm install` log.

      Pesan berikut muncul:

      ```
      [Container] 2024/04/25 17:20:34.995591 Running command npm install
      npm ERR! code ETARGET
      npm ERR! notarget No matching version found for lodash@4.17.21.
      npm ERR! notarget In most cases you or one of your dependencies are requesting
      npm ERR! notarget a package version that doesn't exist.
      
      npm ERR! A complete log of this run can be found in: /tmp/.npm/_logs/2024-05-08T22_03_26_493Z-debug-0.log
      ```

      Kesalahan menunjukkan bahwa versi 4.17.21 tidak dapat ditemukan. Ini diharapkan karena Anda memblokirnya.

**Untuk membuka blokir impor dari npmjs.com**

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

1. Pilih **npm-publish-registry-gateway**.

1. Pilih `lodash`.

1. Di dekat bagian atas, pilih **Kontrol asal**.

1. Di bawah **Upstream**, pilih **Izinkan**.

1. Pilih **Simpan**.

   Anda sekarang telah membuka blokir impor. `lodash`

   Alur kerja Anda sekarang dapat mengimpor versi 4.17.21 dari. `lodash`

**Untuk menguji apakah impor dari npmjs.com tidak diblokir**

1. Jalankan alur kerja Anda lagi. Kali ini alur kerja harus berhasil karena impor 4.17.21 sekarang harus berfungsi. Untuk menjalankan alur kerja lagi:

   1. **Pilih **CI/CD** dan kemudian pilih Workflows.**

   1. Di samping`codecatalyst-package-workflow`, pilih **Tindakan** dan pilih **Jalankan**.

   1. Di notifikasi hijau di bagian atas, di sebelah kanan, pilih tautan ke run. Tautannya terlihat mirip dengan`View Run-3456`.

      Diagram alur kerja muncul, menunjukkan siapa yang memulai proses dan **RunHelloWorldApp**tindakan.

   1. Pilih kotak **RunHelloWorldApp**tindakan untuk melihat kemajuan tindakan. 

   1. Perluas pesan `npm list` log dan verifikasi bahwa pesan yang mirip dengan yang berikut ini muncul:

      ```
      └── lodash@4.17.21
      ```

      Pesan ini menunjukkan bahwa `lodash` versi 4.17.21 telah diunduh.

1. Verifikasi bahwa versi 4.17.21 telah diimpor ke repositori CodeCatalyst dan gateway Anda:

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

   1. Pilih **npm-public-registry-gateway**.

   1. Temukan `lodash` dan pastikan versinya`4.17.21`.
**catatan**  
Meskipun versi 4.17.20 tidak tercantum di halaman ini, Anda dapat menemukannya dengan memilih `lodash` dan kemudian memilih **Versi** di dekat bagian atas.

   1. Ulangi langkah-langkah ini untuk memeriksa bahwa versi 4.17.21 telah diimpor ke. `codecatalyst-package-repository`

## Bersihkan
<a name="packages-tutorial-cleanup"></a>

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

**Untuk membersihkan tutorial paket**

1. Hapus`codecatalyst-package-project`:

   1. Di CodeCatalyst konsol, naivate ke `codecatalyst-package-project` proyek jika Anda belum ada di sana.

   1. Di panel navigasi, pilih **Pengaturan proyek**.

   1. Pilih **Hapus proyek**, masukkan**delete**, dan pilih **Hapus proyek**.

      CodeCatalyst menghapus semua sumber daya proyek, termasuk sumber, gateway, dan repositori CodeCatalyst paket. Lingkungan Dev juga dihapus.

1. Hapus token PAT:

   1. Pilih nama pengguna Anda di sebelah kanan, lalu pilih **Pengaturan saya**.

   1. Di bawah **Token akses pribadi**, pilih token yang Anda buat dalam tutorial ini dan pilih **Hapus**.

Dalam tutorial ini, Anda belajar cara membuat alur kerja yang menjalankan aplikasi yang menarik dependensinya dari repositori paket. CodeCatalyst Anda juga belajar cara memblokir dan membuka blokir paket dari memasuki gateway dan repositori CodeCatalyst paket Anda.

# Menentukan repositori CodeCatalyst paket dalam alur kerja
<a name="workflows-package-specify-action"></a>

Di CodeCatalyst, Anda dapat menambahkan repositori CodeCatalyst paket ke tindakan build dan pengujian di alur kerja Anda. Repositori paket Anda harus dikonfigurasi dengan format paket, seperti npm. Anda juga dapat memilih untuk menyertakan urutan cakupan untuk repositori paket yang Anda pilih.

Gunakan petunjuk berikut untuk menentukan konfigurasi paket yang akan digunakan dengan tindakan alur kerja.

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

**Untuk menentukan konfigurasi paket yang akan digunakan 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 **Visual**.

1. Dalam diagram alur kerja, pilih tindakan **Build** atau **Test** yang ingin Anda konfigurasikan dengan repositori paket.

1. Pilih **Paket**.

1. Dari menu tarik-turun **Tambahkan konfigurasi**, pilih konfigurasi paket yang ingin Anda gunakan dengan tindakan alur kerja Anda.

1. Pilih **Tambahkan repositori paket**.

1. Di menu tarik-turun **Package repository**, tentukan nama *repositori CodeCatalyst paket* Anda yang ingin digunakan oleh tindakan.

   Untuk informasi selengkapnya tentang repositori paket, lihat. [Package repositori](packages-concepts.md#packages-concepts-repository)

1. (Opsional) Dalam **Lingkup - opsional**, tentukan urutan *cakupan* yang ingin Anda tentukan dalam registri paket Anda.

   Saat mendefinisikan cakupan, repositori paket yang ditentukan dikonfigurasi sebagai registri untuk semua cakupan yang terdaftar. Jika paket dengan cakupan diminta melalui klien npm, itu akan menggunakan repositori itu alih-alih default. Setiap nama lingkup harus diawali dengan “@”.

   Jika `Scopes` dihilangkan, maka repositori paket yang ditentukan dikonfigurasi sebagai registri default untuk semua paket yang digunakan oleh tindakan.

   Untuk informasi selengkapnya tentang cakupan, lihat [Ruang nama Package](packages-concepts.md#packages-concepts-package-namespaces) dan paket [Scoped](https://docs.npmjs.com/cli/v10/using-npm/scope).

1. Pilih **Tambahkan**.

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

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

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

**Untuk menentukan konfigurasi paket yang akan digunakan tindakan (editor YAMG)**

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 **Build** atau **Test**, tambahkan kode yang mirip dengan berikut ini:

   ```
   action-name:
    Configuration:
       Packages:
           NpmConfiguration:
             PackageRegistries:
               - PackagesRepository: package-repository
                 Scopes:
                   - "@scope"
   ```

   Untuk informasi selengkapnya, lihat deskripsi `Packages` properti [Membangun dan menguji tindakan YAMB](build-action-ref.md) untuk tindakan Anda.

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

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

------

# Menggunakan token otorisasi dalam tindakan alur kerja
<a name="workflows-package-export-token"></a>

Anda dapat menggunakan token yang disediakan oleh tindakan alur kerja untuk mengonfigurasi manajer paket secara manual untuk mengautentikasi dengan repositori CodeCatalyst paket. CodeCatalyst membuat token ini tersedia sebagai variabel lingkungan bagi Anda untuk referensi dalam tindakan Anda.


| Variabel lingkungan | Nilai | 
| --- | --- | 
|  CATALYST\$1MACHINE\$1RESOURCE\$1NAME  |  Identitas pengguna token otorisasi.  | 
|  CATALYST\$1PACKAGES\$1AUTHORIZATION\$1TOKEN  |  Nilai token otorisasi.  | 

**catatan**  
Perhatikan bahwa variabel lingkungan ini hanya akan diisi jika Anda telah mengonfigurasi tindakan Anda untuk mengekspor token otorisasi.

Gunakan petunjuk berikut untuk menggunakan token otorisasi dengan tindakan alur kerja.

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

**Untuk menggunakan token otorisasi yang diekspor dengan 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 **Visual**.

1. Dalam diagram alur kerja, pilih tindakan **Build** atau **Test** yang ingin Anda konfigurasikan dengan repositori paket.

1. Pilih **Paket**.

1. Aktifkan **Token otorisasi ekspor**.

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

**Untuk menggunakan token otorisasi yang diekspor dengan 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 **Build** atau **Test**, tambahkan kode yang mirip dengan berikut ini:

   ```
   Actions:
     action-name:
       Packages:
         ExportAuthorizationToken: true
   ```

   Anda dapat mereferensikan variabel `$CATALYST_MACHINE_RESOURCE_NAME` dan `$CATALYST_PACKAGES_AUTHORIZATION_TOKEN` lingkungan di `Steps` bagian YAMAL Anda. Untuk informasi lebih lanjut, lihat[Contoh: Mengkonfigurasi secara manual untuk `pip` mengautentikasi dengan CodeCatalyst](workflows-working-packages-ex.md#workflows-working-packages-pypi-token).

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

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

------

# Contoh: Package repositori dalam alur kerja
<a name="workflows-working-packages-ex"></a>

Contoh berikut menunjukkan cara mereferensikan paket dalam file definisi alur kerja.

**Topics**
+ [Contoh: Mendefinisikan paket dengan `NpmConfiguration`](#workflows-working-packages-ex-basic)
+ [Contoh: Mengganti registri default](#workflows-working-packages-ex-overriding-registry)
+ [Contoh: Mengganti cakupan dalam registri paket Anda](#workflows-working-packages-ex-overriding-scopes)
+ [Contoh: Mengkonfigurasi secara manual untuk `pip` mengautentikasi dengan CodeCatalyst](#workflows-working-packages-pypi-token)

## Contoh: Mendefinisikan paket dengan `NpmConfiguration`
<a name="workflows-working-packages-ex-basic"></a>

Contoh berikut menunjukkan cara mendefinisikan paket dengan `NpmConfiguration` dalam file definisi alur kerja Anda.

```
Actions:
  Build:
  Identifier: aws/build-beta@v1
  Configuration:
    Packages:
        NpmConfiguration:
          PackageRegistries:
            - PackagesRepository: main-repo
            - PackagesRepository: scoped-repo
              Scopes:
                - "@scope1"
```

Contoh ini mengkonfigurasi klien npm seperti:

```
default: main-repo
@scope1: scoped-repo
```

Dalam contoh ini, ada dua repositori yang didefinisikan. Registri default diatur `main-repo` seperti yang didefinisikan tanpa ruang lingkup. `@scope1`Cakupan dikonfigurasi `PackageRegistries` untuk`scoped-repo`.

## Contoh: Mengganti registri default
<a name="workflows-working-packages-ex-overriding-registry"></a>

Contoh berikut menunjukkan cara mengganti registri default.

```
NpmConfiguration:
  PackageRegistries:
    - PackagesRepository: my-repo-1
    - PackagesRepository: my-repo-2
    - PackagesRepository: my-repo-3
```

Contoh ini mengkonfigurasi klien npm seperti:

```
default: my-repo-3
```

Jika Anda menentukan beberapa repositori default, repositori terakhir akan diprioritaskan. Dalam contoh ini, repositori terakhir yang terdaftar adalah`my-repo-3`, artinya npm akan terhubung ke. `my-repo-3` Ini mengesampingkan `my-repo-1` repositori dan. `my-repo-2`

## Contoh: Mengganti cakupan dalam registri paket Anda
<a name="workflows-working-packages-ex-overriding-scopes"></a>

Contoh berikut menunjukkan cara mengganti cakupan dalam registri paket Anda.

```
NpmConfiguration:
  PackageRegistries:
    - PackagesRepository: my-default-repo
    - PackagesRepository: my-repo-1
      Scopes:
        - "@scope1"
        - "@scope2"
    - PackagesRepository: my-repo-2
      Scopes:
        - "@scope2"
```

Contoh ini mengkonfigurasi klien npm seperti:

```
default: my-default-repo
@scope1: my-repo-1
@scope2: my-repo-2
```

Jika Anda menyertakan cakupan utama, repositori terakhir akan diprioritaskan. Dalam contoh ini, terakhir kali lingkup `@scope2` dikonfigurasi `PackageRegistries` adalah untuk`my-repo-2`. Ini mengesampingkan ruang lingkup yang `@scope2` dikonfigurasi untuk. `my-repo-1`

## Contoh: Mengkonfigurasi secara manual untuk `pip` mengautentikasi dengan CodeCatalyst
<a name="workflows-working-packages-pypi-token"></a>

Contoh berikut menunjukkan cara mereferensikan variabel lingkungan CodeCatalyst otorisasi dalam tindakan build.

```
Actions:
  Build:
    Identifier: aws/build@v1.0.0
    Configuration:
      Steps:
        - Run: pip config set global.index-url https://$CATALYST_MACHINE_RESOURCE_NAME:$CATALYST_PACKAGES_AUTHORIZATION_TOKEN@codecatalyst.aws/pypi/my-space/my-project/my-repo/simple/
    Packages:
      ExportAuthorizationToken: true
```

# Memanggil fungsi Lambda menggunakan alur kerja
<a name="lam-invoke-action"></a>

Bagian ini menjelaskan cara memanggil AWS Lambda fungsi menggunakan CodeCatalyst alur kerja. Untuk mencapai ini, Anda harus menambahkan tindakan **AWS Lambda pemanggilan ke alur** kerja Anda. Tindakan **AWS Lambda pemanggilan memanggil** fungsi Lambda yang Anda tentukan.

[Selain menjalankan fungsi Anda, tindakan **AWS Lambda pemanggilan** juga mengonversi setiap kunci tingkat atas dalam payload respons yang diterima dari fungsi Lambda menjadi variabel keluaran alur kerja.](workflows-working-with-variables.md) Variabel-variabel ini kemudian dapat direferensikan dalam tindakan alur kerja berikutnya. Jika Anda tidak ingin semua kunci tingkat atas dikonversi ke variabel, Anda dapat menggunakan filter untuk menentukan yang tepat. Untuk informasi selengkapnya, lihat deskripsi [ResponseFilters](lam-invoke-action-ref.md#lam.invoke.response.filters) properti di[Tindakan 'AWS Lambda memanggil' YAMAL](lam-invoke-action-ref.md). 

**Topics**
+ [Kapan menggunakan tindakan ini](#lam-invoke-action-when-to-use)
+ [Gambar runtime yang digunakan oleh tindakan 'AWS Lambda pemanggilan'](#lam-invoke-action-runtime)
+ [Contoh: Memanggil fungsi Lambda](lam-invoke-action-example-workflow.md)
+ [Menambahkan tindakan 'AWS Lambda pemanggilan'](lam-invoke-action-add.md)
+ [variabel 'AWS Lambda pemanggilan'](lam-invoke-action-variables.md)
+ [Tindakan 'AWS Lambda memanggil' YAMAL](lam-invoke-action-ref.md)

## Kapan menggunakan tindakan ini
<a name="lam-invoke-action-when-to-use"></a>

Gunakan tindakan ini jika Anda ingin menambahkan fungsionalitas ke alur kerja yang dienkapsulasi dalam, dan dilakukan oleh, fungsi Lambda.

Misalnya, Anda mungkin ingin alur kerja Anda mengirim `Build started` notifikasi ke saluran Slack sebelum memulai pembuatan aplikasi. Dalam hal ini, alur kerja Anda akan menyertakan tindakan **AWS Lambda pemanggilan** untuk memanggil Lambda untuk mengirimkan notifikasi Slack, dan tindakan build untuk [membangun](build-add-action.md) aplikasi Anda.

Sebagai contoh lain, Anda mungkin ingin alur kerja Anda melakukan pemindaian kerentanan pada aplikasi Anda sebelum diterapkan. Dalam hal ini, Anda akan menggunakan tindakan build untuk membangun aplikasi Anda, tindakan pemanggilan untuk **AWS Lambda memanggil** Lambda untuk memindai kerentanan, dan tindakan penerapan untuk menyebarkan aplikasi yang dipindai.

## Gambar runtime yang digunakan oleh tindakan 'AWS Lambda pemanggilan'
<a name="lam-invoke-action-runtime"></a>

Tindakan **AWS Lambda pemanggilan** 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: Memanggil fungsi Lambda
<a name="lam-invoke-action-example-workflow"></a>

Alur kerja contoh berikut mencakup tindakan **AWS Lambda pemanggilan**, bersama dengan tindakan penerapan. Alur kerja mengirimkan pemberitahuan Slack yang menunjukkan bahwa penerapan telah dimulai, dan kemudian menyebarkan aplikasi ke dalam AWS menggunakan templat. CloudFormation 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 **AWS Lambda pemanggilan** (`LambdaNotify`) — Pada pemicu, tindakan ini memanggil fungsi `Notify-Start` Lambda di AWS akun dan Region yang ditentukan (`my-aws-account`, dan). `us-west-2` Pada pemanggilan, fungsi Lambda mengirimkan pemberitahuan Slack yang menunjukkan penerapan telah dimulai.
+ Tindakan ** CloudFormation tumpukan Deploy** (`Deploy`) — Setelah menyelesaikan aksi **AWS Lambda pemanggilan,** tindakan ** CloudFormation tumpukan Deploy** menjalankan template (`cfn-template.yml`) untuk menerapkan tumpukan aplikasi Anda. Untuk informasi selengkapnya tentang tindakan **Deploy CloudFormation stack**, lihat[Menyebarkan tumpukan CloudFormation](deploy-action-cfn.md).

**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 pemanggilan dan **AWS Lambda Deploy stack**. CloudFormation ** 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 **AWS Lambda tindakan pemanggilan** **dan CloudFormation Penerapan tumpukan**, lihat deskripsi `Role` properti di dan. [Tindakan 'AWS Lambda memanggil' YAMAL](lam-invoke-action-ref.md) [Tindakan 'Menyebarkan CloudFormation tumpukan' YAMAL](deploy-action-ref-cfn.md)

```
Name: codecatalyst-lamda-invoke-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  LambdaNotify:
    Identifier: aws/lambda-invoke@v1
    Environment:
      Name: my-production-environment
      Connections:
        - Name: my-aws-account
          Role: codecatalyst-lambda-invoke-role
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Function: Notify-Start
      AWSRegion: us-west-2
        
  Deploy:
    Identifier: aws/cfn-deploy@v1
    Environment:
      Name: my-production-environment
      Connections:
        - Name: my-aws-account
          Role: codecatalyst-deploy-role
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      name: my-application-stack
      region: us-west-2
      role-arn: arn:aws:iam::111122223333:role/StackRole
      template: ./cfn-template.yml
      capabilities: CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND
```

# Menambahkan tindakan 'AWS Lambda pemanggilan'
<a name="lam-invoke-action-add"></a>

 Gunakan petunjuk berikut untuk menambahkan tindakan **AWS Lambda pemanggilan ke** alur kerja Anda. 

**Prasyarat**  
Sebelum memulai, pastikan AWS Lambda fungsi Anda dan peran eksekusi Lambda terkait sudah siap dan tersedia. AWS Untuk informasi selengkapnya, lihat topik [peran eksekusi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) di Panduan *AWS Lambda Pengembang*.

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

**Untuk menambahkan tindakan 'AWS Lambda invoke' 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 Lambda pemanggilan**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **AWS Lambda panggil**. 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 'AWS Lambda memanggil' YAMAL](lam-invoke-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, dan pilih **Komit** lagi.

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

**Untuk menambahkan tindakan 'AWS Lambda invoke' 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 Lambda pemanggilan**, dan lakukan salah satu hal berikut:
   + Pilih tanda plus (**\$1**) untuk menambahkan tindakan ke diagram alur kerja dan buka panel konfigurasinya.

     Atau
   + Pilih **AWS Lambda panggil**. 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 'AWS Lambda memanggil' YAMAL](lam-invoke-action-ref.md).

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

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

------

# variabel 'AWS Lambda pemanggilan'
<a name="lam-invoke-action-variables"></a>

Secara default, tindakan **AWS Lambda pemanggilan** menghasilkan satu variabel per kunci tingkat atas di payload respons Lambda.

Misalnya, jika payload respons terlihat seperti ini:

```
responsePayload = {
  "name": "Saanvi",
  "location": "Seattle",
  "department": {
    "company": "Amazon",
    "team": "AWS"
  }
}
```

... maka tindakan akan menghasilkan variabel berikut.


| Key | Nilai | 
| --- | --- | 
|  name  |  Saanvi  | 
|  lokasi  |  Seattle  | 
|  departemen  |  \$1"company”: “Amazon”, “team”: "AWS“\$1  | 

**catatan**  
Anda dapat mengubah variabel mana yang dihasilkan menggunakan properti `ResponseFilters` YAMAL. Untuk informasi lebih lanjut, lihat [ResponseFilters](lam-invoke-action-ref.md#lam.invoke.response.filters) di[Tindakan 'AWS Lambda memanggil' YAMAL](lam-invoke-action-ref.md).

Variabel yang dihasilkan dan ditetapkan oleh tindakan 'AWS Lambda invoke' pada waktu berjalan 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)

# Tindakan 'AWS Lambda memanggil' YAMAL
<a name="lam-invoke-action-ref"></a>

Berikut ini adalah definisi YAMAL dari tindakan **AWS Lambda pemanggilan.** Untuk mempelajari cara menggunakan tindakan ini, lihat[Memanggil fungsi Lambda menggunakan alur kerja](lam-invoke-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 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.   
  LambdaInvoke\$1nn: 
    Identifier: aws/lambda-invoke@v1
    DependsOn:
      - dependent-action
    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:
        - request-payload
      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:
      Function: my-function|function-arn
      AWSRegion: us-west-2
      # Specify RequestPayload or RequestPayloadFile, but not both.
      RequestPayload: '{"firstname": "Li", lastname: "Jean", "company": "ExampleCo", "team": "Development"}'
      RequestPayloadFile: my/request-payload.json
      ContinueOnError: true|false
      LogType: Tail|None
      ResponseFilters: '{"name": ".name", "company": ".department.company"}'
    Outputs:
      Artifacts:
        - Name: lambda_artifacts
          Files: 
            - "lambda-response.json"
```

## LambdaInvoke
<a name="lam.invoke.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: `Lambda_Invoke_Action_Workflow_nn`.

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

## Identifier
<a name="lam.invoke.identifier"></a>

(*LambdaInvoke*/**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/lambda-invoke@v1`.

**UI yang sesuai: Diagram alur LambdaInvoke kerja/\$1nn/ aws/lambda-invoke @v1 label**

## DependsOn
<a name="lam.invoke.dependson"></a>

(*LambdaInvoke*/**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="lam.invoke.computename"></a>

(*LambdaInvoke*/**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="lam.invoke.computetype"></a>

(*LambdaInvoke*/Compute/**Type**)

(Diperlukan [Compute](#lam.invoke.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="lam.invoke.computefleet"></a>

(*LambdaInvoke*/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: Tab konfigurasi/Armada **komputasi**

## Timeout
<a name="lam.invoke.timeout"></a>

(*LambdaInvoke*/**Timeout**)

(Diperlukan)

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

## Inputs
<a name="lam.invoke.inputs"></a>

(*LambdaInvoke*/**Inputs**)

(Diperlukan)

`Inputs`Bagian ini mendefinisikan data yang dibutuhkan tindakan **AWS Lambda pemanggilan selama menjalankan** alur kerja.

**catatan**  
Hanya satu input (baik sumber atau artefak) yang diizinkan per tindakan **AWS Lambda pemanggilan.** Variabel tidak dihitung terhadap total ini.

UI yang sesuai: **Tab input**

## Sources
<a name="lam.invoke.inputs.sources"></a>

(*LambdaInvoke*/Inputs/**Sources**)

(Diperlukan jika [RequestPayloadFile](#lam.invoke.request.payload.file)disediakan)

Jika Anda ingin meneruskan file JSON payload permintaan **AWS Lambda ke tindakan pemanggilan**, dan file payload ini disimpan dalam repositori sumber, tentukan label repositori sumber tersebut. Saat ini, satu-satunya label yang didukung adalah`WorkflowSource`.

Jika file payload permintaan Anda tidak terkandung dalam repositori sumber, file tersebut harus berada dalam artefak yang dihasilkan oleh tindakan lain.

Untuk informasi selengkapnya tentang file payload, lihat[RequestPayloadFile](#lam.invoke.request.payload.file).

**catatan**  
Alih-alih menentukan file payload, Anda dapat menambahkan kode JSON payload langsung ke tindakan menggunakan properti. `RequestPayload` Untuk informasi selengkapnya, lihat [RequestPayload](#lam.invoke.request.payload). 

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="lam.invoke.inputs.artifacts"></a>

(*LambdaInvoke*/Inputs/**Artifacts**)

(Diperlukan jika [RequestPayloadFile](#lam.invoke.request.payload.file)disediakan)

Jika Anda ingin meneruskan file JSON payload permintaan **AWS Lambda ke tindakan pemanggilan**, dan file payload ini terkandung dalam [artefak keluaran dari tindakan sebelumnya, tentukan artefak](build-action-ref.md#build.outputs.artifacts) tersebut di sini.

Untuk informasi selengkapnya tentang file payload, lihat[RequestPayloadFile](#lam.invoke.request.payload.file).

**catatan**  
Alih-alih menentukan file payload, Anda dapat menambahkan kode JSON payload langsung ke tindakan menggunakan properti. `RequestPayload` Untuk informasi selengkapnya, lihat [RequestPayload](#lam.invoke.request.payload). 

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="lam.invoke.inputs.variables"></a>

(*LambdaInvoke*/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="lam.invoke.environment"></a>

(*LambdaInvoke*/**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="lam.invoke.environment.name"></a>

(*LambdaInvoke*/Environment/**Name**)

(Diperlukan [Environment](#lam.invoke.environment) jika disertakan)

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

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

## Connections
<a name="lam.invoke.environment.connections"></a>

(*LambdaInvoke*/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="lam.invoke.environment.connections.name"></a>

(*LambdaInvoke*/Environment/Connections/**Name**)

(Diperlukan [Connections](#lam.invoke.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="lam.invoke.environment.connections.role"></a>

(*LambdaInvoke*/Environment/Connections/**Role**)

(Diperlukan [Connections](#lam.invoke.environment.connections) jika disertakan)

Tentukan nama peran IAM yang digunakan tindakan **AWS Lambda pemanggilan untuk** mengakses AWS dan menjalankan fungsi Lambda Anda. 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.
+ 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="lam.invoke.configuration"></a>

(*LambdaInvoke*/**Configuration**)

(Diperlukan)

Bagian di mana Anda dapat menentukan properti konfigurasi tindakan.

UI yang sesuai: Tab **konfigurasi**

## Function
<a name="lam.invoke.function"></a>

(*LambdaInvoke*/Configuration/**Function**)

(Diperlukan)

Tentukan AWS Lambda fungsi yang akan dipanggil tindakan ini. Anda dapat menentukan nama fungsi, atau Nama Sumber Daya Amazon (ARN). Anda dapat menemukan nama atau ARN di konsol Lambda.

**catatan**  
 AWS Akun tempat fungsi Lambda berada dapat berbeda dari akun yang ditentukan di bawah. `Connections:`

**UI yang sesuai: Tab/Fungsi Konfigurasi**

## AWSRegion
<a name="lam.invoke.region"></a>

(*LambdaInvoke*/Configuration/**AWSRegion**)

(Diperlukan)

Tentukan AWS Wilayah tempat AWS Lambda fungsi 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/ember Tujuan -** opsional

## RequestPayload
<a name="lam.invoke.request.payload"></a>

(*LambdaInvoke*/Configuration/**RequestPayload**)

(Opsional)

Jika Anda ingin meneruskan payload permintaan **AWS Lambda ke tindakan pemanggilan**, tentukan payload permintaan di sini, dalam format JSON.

Contoh permintaan payload:

```
'{ "key": "value" }'
```

Jika Anda tidak ingin meneruskan payload permintaan ke fungsi Lambda Anda, maka hilangkan properti ini.

**catatan**  
Anda dapat menentukan salah satu dari `RequestPayload` atau `RequestPayloadFile`, bukan keduanya.

Untuk informasi selengkapnya tentang payload permintaan, lihat topik [Memanggil di](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html) Referensi *AWS Lambda API*.

UI yang sesuai: Tab **konfigurasi/Minta muatan** - opsional

## RequestPayloadFile
<a name="lam.invoke.request.payload.file"></a>

(*LambdaInvoke*/Configuration/**RequestPayloadFile**)

(Opsional)

Jika Anda ingin meneruskan payload permintaan **AWS Lambda ke tindakan pemanggilan, tentukan jalur ke** file payload permintaan ini di sini. File harus dalam format JSON.

File payload permintaan dapat berada di repositori sumber atau artefak dari tindakan sebelumnya. Jalur file relatif terhadap repositori sumber atau root artefak.

Jika Anda tidak ingin meneruskan payload permintaan ke fungsi Lambda Anda, maka hilangkan properti ini.

**catatan**  
Anda dapat menentukan salah satu dari `RequestPayload` atau `RequestPayloadFile`, bukan keduanya.

Untuk informasi selengkapnya tentang file payload permintaan, lihat topik [Memanggil di](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html) Referensi *AWS Lambda API*.

UI yang sesuai: Tab **konfigurasi/Minta file payload** - opsional

## ContinueOnError
<a name="lam.invoke.continue"></a>

(*LambdaInvoke*/Configuration/**RequestPayloadFile**)

(Opsional)

Tentukan apakah Anda ingin menandai tindakan **AWS Lambda pemanggilan** sebagai berhasil meskipun fungsi yang dipanggil AWS Lambda gagal. Pertimbangkan untuk menyetel properti ini `true` agar tindakan selanjutnya dalam alur kerja Anda dimulai meskipun Lambda gagal.

Defaultnya adalah gagal tindakan jika fungsi Lambda gagal (“mati” di editor visual atau `false` di editor YAMAL).

UI yang sesuai: Tab **konfigurasi/Lanjutkan kesalahan**

## LogType
<a name="lam.invoke.log.type"></a>

(*LambdaInvoke*/Configuration/**LogType**)

(Opsional)

Tentukan apakah Anda ingin menyertakan log kesalahan dalam respons dari fungsi Lambda setelah dipanggil. Anda dapat melihat log ini di tab **Log** aksi **pemanggilan Lambda** di konsol. CodeCatalyst Kemungkinan nilainya adalah:
+ `Tail`— kembalikan log
+ `None`— jangan kembalikan log

Defaultnya adalah **Tail**.

Untuk informasi selengkapnya tentang jenis log, lihat topik [Memanggil](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html) di *Referensi AWS Lambda API*.

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

UI yang sesuai: Tab konfigurasi/Jenis **log**

## ResponseFilters
<a name="lam.invoke.response.filters"></a>

(*LambdaInvoke*/Configuration/**ResponseFilters**)

(Opsional)

Tentukan kunci mana di payload respons Lambda yang ingin Anda konversi ke variabel keluaran. Anda kemudian dapat mereferensikan variabel output 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 payload respons Anda terlihat seperti ini:

```
responsePayload = {
  "name": "Saanvi",
  "location": "Seattle",
  "department": {
    "company": "Amazon",
    "team": "AWS"
  }
}
```

... dan filter respons Anda terlihat seperti ini:

```
Configuration:
  ...
  ResponseFilters: '{"name": ".name", "company": ".department.company"}'
```

... maka tindakan menghasilkan variabel output berikut:


| Key | Nilai | 
| --- | --- | 
|  name  |  Saanvi  | 
|  perusahaan  |  Amazon  | 

Anda kemudian dapat mereferensikan `company` variabel `name` dan dalam tindakan selanjutnya.

Jika Anda tidak menentukan kunci apa pun`ResponseFilters`, maka tindakan akan mengubah setiap kunci tingkat atas dalam respons Lambda menjadi variabel keluaran. Untuk informasi selengkapnya, lihat [variabel 'AWS Lambda pemanggilan'](lam-invoke-action-variables.md).

Pertimbangkan untuk menggunakan filter respons untuk membatasi variabel keluaran yang dihasilkan hanya untuk variabel yang benar-benar ingin Anda gunakan.

UI yang sesuai: Tab **konfigurasi/Filter respons -** opsional

## Outputs
<a name="lam.invoke.outputs"></a>

(*LambdaInvoke*/**Outputs**)

(Opsional)

Mendefinisikan data yang dihasilkan oleh tindakan selama menjalankan alur kerja.

UI yang sesuai: **Tab keluaran**

## Artifacts
<a name="lam.invoke.outputs.artifacts"></a>

(*LambdaInvoke*/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/Bangun nama artefak**

## Name
<a name="lam.invoke.outputs.artifacts.name"></a>

(*LambdaInvoke*/Outputs/Artifacts/**Name**)

(Opsional)

Tentukan nama artefak yang akan berisi muatan respons Lambda yang dikembalikan oleh fungsi Lambda. Nilai default-nya adalah `lambda_artifacts`. **Jika Anda tidak menentukan artefak, maka payload respons Lambda dapat dilihat di log tindakan, yang tersedia di tab Log untuk tindakan di konsol.** CodeCatalyst Untuk informasi selengkapnya tentang melihat log, lihat [Melihat status dan detail alur kerja](workflows-view-run.md).

**UI yang sesuai: Tab Keluaran/Artefak/Bangun nama artefak**

## Files
<a name="lam.invoke.outputs.artifacts.files"></a>

(*LambdaInvoke*/Outputs/Artifacts/**Files**)

(Opsional)

Tentukan file yang akan disertakan dalam artefak. Anda harus menentukan `lambda-response.json` sehingga file payload respons Lambda akan disertakan.

**UI yang sesuai: Mengeluarkan Tab/Artefak/File yang dihasilkan oleh build**

# Memodifikasi definisi tugas Amazon ECS
<a name="render-ecs-action"></a>

Bagian ini menjelaskan cara memperbarui `image` bidang dalam file [definisi tugas Amazon Elastic Container Service (Amazon ECS) Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) menggunakan alur kerja. CodeCatalyst Untuk mencapai ini, Anda harus menambahkan tindakan **definisi tugas Render Amazon ECS** ke alur kerja Anda. Tindakan ini memperbarui bidang gambar dalam file definisi tugas dengan nama gambar Docker yang disediakan oleh alur kerja Anda saat runtime.

**catatan**  
Anda juga dapat menggunakan tindakan ini untuk memperbarui `environment` bidang definisi tugas dengan variabel lingkungan.

**Topics**
+ [Kapan menggunakan tindakan ini](#render-ecs-action-when-to-use)
+ [Cara kerja tindakan 'Render Amazon ECS task definition'](#render-ecs-action-how-it-works)
+ [Gambar runtime yang digunakan oleh tindakan 'Render Amazon ECS task definition'](#render-ecs-action-runtime)
+ [Contoh: Memodifikasi taskdef Amazon ECS](render-ecs-action-example-workflow.md)
+ [Menambahkan tindakan 'Render Amazon ECS task definition'](render-ecs-action-add.md)
+ [Melihat file definisi tugas yang diperbarui](render-ecs-action-view.md)
+ [Variabel 'Render definisi tugas Amazon ECS'](render-ecs-action-variables.md)
+ [Tindakan 'Render definisi tugas Amazon ECS' YAMAL](render-ecs-action-ref.md)

## Kapan menggunakan tindakan ini
<a name="render-ecs-action-when-to-use"></a>

Gunakan ini jika Anda memiliki alur kerja yang membangun dan menandai image Docker dengan konten dinamis, seperti ID komit atau stempel waktu. 

Jangan gunakan tindakan ini jika file definisi tugas Anda berisi nilai gambar yang selalu tetap sama. Dalam hal ini, Anda dapat memasukkan nama gambar Anda secara manual ke dalam file definisi tugas.

## Cara kerja tindakan 'Render Amazon ECS task definition'
<a name="render-ecs-action-how-it-works"></a>

Anda harus menggunakan tindakan **definisi tugas Render Amazon ECS** dengan tindakan **build** dan **Deploy ke Amazon ECS** di alur kerja Anda. Bersama-sama, tindakan ini bekerja sebagai berikut:

1. Tindakan **build membangun** image Docker Anda dan menandainya dengan nama, ID komit, stempel waktu, atau konten dinamis lainnya. Misalnya, tindakan build Anda mungkin terlihat seperti ini:

   ```
   MyECSWorkflow
     Actions:
       BuildAction:
         Identifier: aws/build@v1
         ...
         Configuration:
           Steps:
           # Build, tag, and push the Docker image...
             - Run: docker build -t MyDockerImage:${WorkflowSource.CommitId} .
             ...
   ```

   Dalam kode sebelumnya, `docker build -t` arahan menunjukkan untuk membangun image Docker dan menandainya dengan ID komit saat runtime tindakan. Nama gambar yang dihasilkan mungkin terlihat seperti ini:

   `MyDockerImage:a37bd7e`

1. Tindakan **definisi tugas Render Amazon ECS** menambahkan nama gambar yang dihasilkan secara dinamis`MyDockerImage:a37bd7e`, ke file definisi tugas Anda, seperti ini:

   ```
   {
       "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role",
       "containerDefinitions": [
           {
               "name": "codecatalyst-ecs-container",
               "image":  MyDockerImage:a37bd7e, 
               "essential": true,
               ...
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ]
           }
       ],
   ...
   }
   ```

   Secara opsional, Anda juga dapat meminta tindakan **definisi tugas Render Amazon ECS** menambahkan variabel lingkungan ke definisi tugas, seperti ini:

   ```
   {
     "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role",
     "containerDefinitions": [
       {
         "name": "codecatalyst-ecs-container",
         "image":  MyDockerImage:a37bd7e,
         ...
         "environment": [
           {
             name": "ECS_LOGLEVEL",
             value": "info"
           }
         ]
       }
     ],
   ...
   }
   ```

   Untuk informasi selengkapnya tentang variabel lingkungan, lihat [Menentukan variabel lingkungan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) di *Panduan Pengembang Layanan Amazon Elastic Container*.

1. Tindakan **Deploy to Amazon ECS** mendaftarkan file definisi tugas yang diperbarui dengan Amazon ECS. Mendaftarkan file definisi tugas yang diperbarui menyebarkan gambar baru, `MyDockerImage:a37bd7e` ke Amazon ECS.

## Gambar runtime yang digunakan oleh tindakan 'Render Amazon ECS task definition'
<a name="render-ecs-action-runtime"></a>

Tindakan **definisi tugas Render 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).

# Contoh: Memodifikasi taskdef Amazon ECS
<a name="render-ecs-action-example-workflow"></a>

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

```
Name: codecatalyst-ecs-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  BuildDocker:
    Identifier: aws/build@v1
    Environment:
      Name: codecatalyst-ecs-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-ecs-build-role
    Inputs:
      Variables:
        - Name: REPOSITORY_URI
          Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo
        - Name: IMAGE_TAG
          Value: ${WorkflowSource.CommitId}
    Configuration:
      Steps:
        #pre_build:
        - Run: echo Logging in to Amazon ECR...
        - Run: aws --version
        - Run: aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-2.amazonaws.com
        #build:
        - Run: echo Build started on `date`
        - Run: echo Building the Docker image...
        - Run: docker build -t $REPOSITORY_URI:latest .
        - Run: docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
        #post_build:
        - Run: echo Build completed on `date`
        - Run: echo Pushing the Docker images...
        - Run: docker push $REPOSITORY_URI:latest
        - Run: docker push $REPOSITORY_URI:$IMAGE_TAG
        
  RenderTaskDef:
    DependsOn: 
      - BuildDocker
    Identifier: aws/ecs-render-task-definition@v1
    Inputs:
      Variables:
        - Name: REPOSITORY_URI
          Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo
        - Name: IMAGE_TAG
          Value: ${WorkflowSource.CommitId}
    Configuration:      
      task-definition: taskdef.json
      container-definition-name: codecatalyst-ecs-container
      image: $REPOSITORY_URI:$IMAGE_TAG 
    # The output artifact contains the updated task definition file. 
    # The new file is prefixed with 'task-definition'.
    # The output variable is set to the name of the updated task definition file. 
    Outputs:
      Artifacts:
        - Name: TaskDefArtifact
          Files: 
            - "task-definition*"
      Variables:
        - task-definition
        
  DeployToECS:
    Identifier: aws/ecs-deploy@v1
    Environment:
      Name: codecatalyst-ecs-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-ecs-deploy-role
    #Input artifact contains the updated task definition file.
    Inputs:
      Sources: []
      Artifacts:
        - TaskDefArtifact
    Configuration:
      region: us-east-2
      cluster: codecatalyst-ecs-cluster
      service: codecatalyst-ecs-service
      task-definition: ${RenderTaskDef.task-definition}
```

# Menambahkan tindakan 'Render Amazon ECS task definition'
<a name="render-ecs-action-add"></a>

 Gunakan petunjuk berikut untuk menambahkan tindakan **definisi tugas Render Amazon ECS** ke alur kerja Anda. 

**Prasyarat**  
Sebelum memulai, pastikan Anda memiliki alur kerja yang menyertakan tindakan build yang menghasilkan image Docker secara dinamis. Lihat [alur kerja contoh sebelumnya untuk detailnya](render-ecs-action-example-workflow.md).

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

**Untuk menambahkan tindakan 'Render Amazon ECS task definition' 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 **definisi tugas Render 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 **Render definisi tugas Amazon ECS**. 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** dan **Konfigurasi**, lengkapi bidang sesuai dengan kebutuhan Anda. Untuk deskripsi setiap bidang, lihat[Tindakan 'Render definisi tugas Amazon ECS' YAMAL](render-ecs-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, dan pilih **Komit** lagi.

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

**Untuk menambahkan tindakan 'Render Amazon ECS task definition' 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 **definisi tugas Render 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 **Render definisi tugas Amazon ECS**. 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 'Render definisi tugas Amazon ECS' YAMAL](render-ecs-action-ref.md).

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

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

------

**Langkah selanjutnya**

Setelah menambahkan tindakan render, tambahkan tindakan **Deploy ke Amazon ECS** ke alur kerja Anda mengikuti petunjuk di. [Menyebarkan ke Amazon ECS dengan alur kerja](deploy-action-ecs.md) Saat menambahkan tindakan penerapan, lakukan hal berikut:

1. Di tab **Input** dari tindakan penerapan, di **Artefak - opsional**, pilih artefak yang dihasilkan oleh tindakan render. Ini berisi file definisi tugas yang diperbarui.

   Untuk informasi lebih lanjut tentang artifact, lihat [Berbagi artefak dan file antar tindakan](workflows-working-artifacts.md).

1. Di tab **Konfigurasi** tindakan penerapan, di bidang **Definisi tugas**, tentukan variabel tindakan berikut: `${action-name.task-definition}` di *action-name* mana nama tindakan render Anda, misalnya,`RenderTaskDef`. Tindakan render menetapkan variabel ini ke nama baru dari file definisi tugas.

   Untuk informasi lebih lanjut tentang variabel, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

   [Untuk informasi selengkapnya tentang cara mengonfigurasi tindakan penerapan, lihat alur kerja contoh sebelumnya.](render-ecs-action-example-workflow.md)

# Melihat file definisi tugas yang diperbarui
<a name="render-ecs-action-view"></a>

Anda dapat melihat nama dan isi file definisi tugas yang diperbarui.

**Untuk melihat nama file definisi tugas yang diperbarui, setelah tindakan **definisi tugas Render Amazon ECS** memprosesnya.**

1. Temukan proses yang menyertakan tindakan render yang telah selesai:

   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 run yang menyertakan tindakan render selesai.

1. Dalam diagram alur kerja, pilih tindakan render.

1. Pilih **Output**.

1. Pilih **Variabel**.

1. Nama file definisi tugas ditampilkan. Ini terlihat mirip dengan`task-definition--259-0a2r7gxlTF5X-.json`.

**Untuk melihat isi file definisi tugas yang diperbarui**

1. Temukan proses yang menyertakan tindakan render yang telah selesai:

   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 run yang menyertakan tindakan render selesai.

1. Dalam alur kerja berjalan, di bagian atas, di samping **Visual** dan **YAMAL, pilih Output** **alur kerja**.

1. Di bagian **Artefak**, pilih **Unduh** di samping artefak yang berisi file definisi tugas yang diperbarui. Artefak ini akan memiliki kolom **Diproduksi oleh** disetel ke nama tindakan render Anda.

1. Buka file.zip untuk melihat file definisi tugas .json.

# Variabel 'Render definisi tugas Amazon ECS'
<a name="render-ecs-action-variables"></a>

Tindakan **definisi tugas Render Amazon ECS** 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 | 
| --- | --- | 
|  definisi tugas  |  Nama yang diberikan ke file definisi tugas yang diperbarui oleh tindakan **definisi tugas Amazon ECS Render**. Nama mengikuti format`task-definition-random-string.json`. Contoh: `task-definition--259-0a2r7gxlTF5Xr.json`  | 

# Tindakan 'Render definisi tugas Amazon ECS' YAMAL
<a name="render-ecs-action-ref"></a>

Berikut ini adalah definisi YAMAL dari tindakan **definisi tugas Render Amazon ECS**. Untuk mempelajari cara menggunakan tindakan ini, lihat[Memodifikasi definisi tugas Amazon ECS](render-ecs-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 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.   
  ECSRenderTaskDefinition\$1nn: 
    Identifier: aws/ecs-render-task-definition@v1
    DependsOn:
      - build-action
    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:
        - task-definition-artifact
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2
    Configuration 
      task-definition: task-definition-path
      container-definition-name: container-definition-name
      image: docker-image-name
      environment-variables:
        - variable-name-1=variable-value-1
        - variable-name-2=variable-value-2
    Outputs:
      Artifacts:
        - Name: TaskDefArtifact
          Files: "task-definition*"
      Variables:
        - task-definition
```

## ECSRenderTaskDefinition
<a name="render.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: `ECSRenderTaskDefinition_nn`.

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

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

(*ECSRenderTaskDefinition*/**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-render-task-definition@v1`.

**UI yang sesuai: Diagram alur ECSRenderTaskDefinition kerja/\$1nn/ aws/ @v1 label ecs-render-task-definition**

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

(*ECSRenderTaskDefinition*/**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="render.ecs.computename"></a>

(*ECSRenderTaskDefinition*/**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="render.ecs.computetype"></a>

(*ECSRenderTaskDefinition*/Compute/**Type**)

(Diperlukan [Compute](#render.ecs.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 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: Tab konfigurasi/Jenis **komputasi**

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

(*ECSRenderTaskDefinition*/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="render.ecs.timeout"></a>

(*ECSRenderTaskDefinition*/**Timeout**)

(Opsional)

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="render.ecs.inputs"></a>

(*ECSRenderTaskDefinition*/**Inputs**)

(Opsional)

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

**catatan**  
Hanya satu input (baik sumber atau artefak) yang diizinkan per tindakan **definisi tugas Amazon ECS Render**. Variabel tidak dihitung terhadap total ini.

UI yang sesuai: **Tab input**

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

(*ECSRenderTaskDefinition*/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="render.ecs.inputs.artifacts"></a>

(*ECSRenderTaskDefinition*/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

## Variables - input
<a name="render.ecs.inputs.variables"></a>

(*ECSRenderTaskDefinition*/Inputs/**Variables**)

(Diperlukan)

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

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

(*ECSRenderTaskDefinition*/**Configuration**)

(Diperlukan)

Bagian di mana Anda dapat menentukan properti konfigurasi tindakan.

UI yang sesuai: Tab **konfigurasi**

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

(*ECSRenderTaskDefinition*/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**

## container-definition-name
<a name="render.ecs.container.name"></a>

(*ECSRenderTaskDefinition*/Configuration/**container-definition-name**)

(Diperlukan)

Tentukan nama wadah tempat image Docker Anda akan berjalan. Anda dapat menemukan nama ini di `name` bidang`containerDefinitions`, di file definisi tugas Anda. Untuk informasi selengkapnya, lihat [Nama](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_name) di *Panduan Pengembang Layanan Kontainer Elastis Amazon*.

UI yang sesuai: Tab konfigurasi/Nama **kontainer**

## image
<a name="render.ecs.image"></a>

(*ECSRenderTaskDefinition*/Configuration/**image**)

(Diperlukan)

Tentukan nama gambar Docker yang ingin ditambahkan tindakan **definisi tugas Render Amazon ECS** ke file definisi tugas Anda. Tindakan menambahkan nama ini ke `image` bidang`containerDefinitions`, dalam file definisi tugas Anda. Jika nilai sudah ada di `image` bidang, maka tindakan menimpa itu. Anda dapat memasukkan variabel dalam nama gambar.

Contoh:

Jika Anda menentukan`MyDockerImage:${WorkflowSource.CommitId}`, tindakan akan ditambahkan `MyDockerImage:commit-id` ke file definisi tugas, di mana *commit-id* adalah ID komit yang dihasilkan saat runtime oleh alur kerja.

Jika Anda menentukan`my-ecr-repo/image-repo:$(date +%m-%d-%y-%H-%m-%s)`, tindakan menambahkan *my-ecr-repo* /image-repo: *date \$1%m-%d-%y-%H-%m-%s* ke file definisi tugas, di mana *my-ecr-repo* URI dari Amazon Elastic Container Registry (ECR) dan *date \$1%m-%d-%y-%H-%m-%s* merupakan stempel waktu dalam format `month-day-year-hour-minute-second` yang dihasilkan saat runtime oleh alur kerja.

Untuk informasi selengkapnya tentang `image` bidang ini, lihat [Gambar](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_image) di *Panduan Pengembang Layanan Kontainer Elastis Amazon*. Untuk informasi lebih lanjut tentang variabel, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

UI yang sesuai: Tab konfigurasi/Nama **gambar**

## environment-variables
<a name="render.ecs.environment.variables"></a>

(*ECSRenderTaskDefinition*/Configuration/**environment-variables**)

(Diperlukan)

Tentukan variabel lingkungan yang Anda inginkan tindakan **definisi tugas Render Amazon ECS** untuk ditambahkan ke file definisi tugas Anda. Tindakan menambahkan variabel ke `environment` bidang`containerDefinitions`, dalam file definisi tugas Anda. Jika variabel sudah ada dalam file, tindakan menimpa nilai variabel yang ada dan menambahkan variabel baru. Untuk informasi selengkapnya tentang variabel lingkungan Amazon ECS, lihat [Menentukan variabel lingkungan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) di Panduan *Pengembang Layanan Amazon Elastic Container*.

UI yang sesuai: Tab **konfigurasi/Variabel lingkungan -** opsional

## Outputs
<a name="render.ecs.outputs"></a>

(*ECSRenderTaskDefinition*/**Outputs**)

(Diperlukan)

Mendefinisikan data yang dihasilkan oleh tindakan selama menjalankan alur kerja.

UI yang sesuai: **Tab keluaran**

## Artifacts
<a name="render.ecs.outputs.artifacts"></a>

(*ECSRenderTaskDefinition*/Outputs/**Artifacts**)

(Diperlukan)

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="render.ecs.outputs.artifacts.name"></a>

(*ECSRenderTaskDefinition*/Outputs/Artifacts/**Name**)

(Diperlukan)

Tentukan nama artefak yang akan berisi file definisi tugas yang diperbarui. Nilai default-nya adalah `MyTaskDefinitionArtifact`. Anda kemudian harus menentukan artefak ini sebagai input ke dalam tindakan **Deploy to Amazon ECS**. Untuk memahami cara menambahkan artefak ini sebagai masukan ke tindakan **Deploy to Amazon ECS**, lihat. [Contoh: Memodifikasi taskdef Amazon ECS](render-ecs-action-example-workflow.md)

**UI yang sesuai: Tab Keluaran/Artefak/Nama**

## Files
<a name="render.ecs.outputs.artifacts.files"></a>

(*ECSRenderTaskDefinition*/Outputs/Artifacts/**Files**)

(Diperlukan)

Tentukan file yang akan disertakan dalam artefak. Anda harus menentukan `task-definition-*` sehingga file definisi tugas yang diperbarui, yang dimulai dengan`task-definition-`, akan disertakan.

**UI yang sesuai: Tab Keluaran/Artefak/File**

## Variables
<a name="render.ecs.outputs.variables"></a>

(*ECSRenderTaskDefinition*/Outputs/**Variables**)

(Diperlukan)

Tentukan nama variabel yang akan diatur oleh tindakan render. Tindakan render akan mengatur nilai variabel ini ke nama file definisi tugas yang diperbarui (misalnya,`task-definition-random-string.json`). Anda kemudian harus menentukan variabel ini di properti **Definisi tugas** (editor visual) atau `task-definition` (editor yaml) tindakan **Deploy to Amazon ECS**. Untuk memahami cara menambahkan variabel ini ke tindakan **Deploy ke Amazon ECS**, lihat. [Contoh: Memodifikasi taskdef Amazon ECS](render-ecs-action-example-workflow.md)

Default: `task-definition`

**UI yang sesuai: Tab Keluaran/Variabel/Bidang nama**

# Menggunakan variabel dalam alur kerja
<a name="workflows-working-with-variables"></a>

 *Variabel* adalah pasangan kunci-nilai yang berisi informasi yang dapat Anda referensikan dalam alur kerja Amazon CodeCatalyst Anda. Bagian nilai variabel diganti dengan nilai aktual ketika alur kerja berjalan.

Ada dua jenis variabel yang dapat Anda gunakan dalam alur kerja:
+ **Variabel yang ditentukan pengguna** - Ini adalah pasangan nilai kunci yang Anda tentukan.
+ **Variabel yang telah ditentukan** - Ini adalah pasangan kunci-nilai yang dipancarkan oleh alur kerja secara otomatis. Tidak perlu bagi Anda untuk mendefinisikannya.

Untuk informasi lebih lanjut tentang alur kerja, lihat [Bangun, uji, dan terapkan dengan alur kerjaBangun, uji, dan terapkan dengan alur kerja](workflow.md).

**catatan**  
CodeCatalyst juga mendukung [parameter GitHub output](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter), yang berperilaku seperti variabel dan dapat direferensikan dalam tindakan lain. Untuk informasi selengkapnya, lihat [Mengekspor parameter GitHub output](integrations-github-action-export.md) dan [Merujuk parameter GitHub keluaran](integrations-github-action-referencing.md)

**Topics**
+ [Menggunakan variabel yang ditentukan pengguna](workflows-using-variables.md)
+ [Menggunakan variabel yang telah ditentukan](workflows-using-predefined-variables.md)

# Menggunakan variabel yang ditentukan pengguna
<a name="workflows-using-variables"></a>

*Variabel yang ditentukan pengguna* adalah pasangan nilai kunci yang Anda tentukan. Ada dua jenis:
+ **Variabel teks biasa**, atau hanya **variabel** - Ini adalah pasangan nilai kunci yang Anda tentukan dalam teks biasa dalam file definisi alur kerja.
+ **Rahasia** — Ini adalah pasangan nilai kunci yang Anda tentukan di halaman **Rahasia** terpisah di konsol Amazon CodeCatalyst . *Kunci* (nama) adalah label publik, dan *nilainya* berisi informasi yang ingin Anda jaga kerahasiaannya. Anda hanya menentukan kunci dalam file definisi alur kerja. Gunakan rahasia sebagai pengganti kata sandi dan informasi sensitif lainnya dalam file definisi alur kerja.

**catatan**  
Untuk singkatnya, panduan ini menggunakan istilah *variabel untuk berarti variabel* *plaintext*.

Untuk informasi lebih lanjut tentang variabel, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

**Topics**
+ [Contoh variabel](workflows-working-with-variables-ex.md)
+ [Mendefinisikan variabel](workflows-working-with-variables-define-input.md)
+ [Mendefinisikan rahasia](workflows-working-with-variables-define-secret.md)
+ [Mengekspor variabel sehingga tindakan lain dapat menggunakannya](workflows-working-with-variables-export-input.md)
+ [Merujuk variabel dalam tindakan yang mendefinisikannya](workflows-working-with-variables-reference-input.md)
+ [Mereferensikan output variabel dengan tindakan lain](workflows-working-with-variables-reference-action.md)
+ [Mereferensikan rahasia](workflows-working-with-variables-reference-secret.md)

# Contoh variabel
<a name="workflows-working-with-variables-ex"></a>

Contoh berikut menunjukkan bagaimana mendefinisikan dan referensi variabel dalam file definisi alur kerja.

Untuk informasi lebih lanjut tentang variabel, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

**Topics**
+ [Contoh: Mendefinisikan variabel menggunakan properti Input](#workflows-working-with-variables-ex-define-inputs)
+ [Contoh: Mendefinisikan variabel menggunakan properti Steps](#workflows-working-with-variables-ex-define-steps)
+ [Contoh: Mengekspor variabel menggunakan properti Output](#workflows-working-with-variables-ex-export-outputs)
+ [Contoh: Mereferensikan variabel yang didefinisikan dalam tindakan yang sama](#workflows-working-with-variables-ex-refer-current)
+ [Contoh: Mereferensikan variabel yang didefinisikan dalam tindakan lain](#workflows-working-with-variables-ex-refer-other)
+ [Contoh: Mereferensikan rahasia](#workflows-working-with-variables-ex-refer-secret)

## Contoh: Mendefinisikan variabel menggunakan properti Input
<a name="workflows-working-with-variables-ex-define-inputs"></a>

Contoh berikut menunjukkan kepada Anda bagaimana mendefinisikan dua variabel, `VAR1` dan`VAR2`, di `Inputs` bagian.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Variables:
      - Name: VAR1
        Value: "My variable 1"
      - Name: VAR2
        Value: "My variable 2"
```

## Contoh: Mendefinisikan variabel menggunakan properti Steps
<a name="workflows-working-with-variables-ex-define-steps"></a>

Contoh berikut menunjukkan kepada Anda bagaimana mendefinisikan `DATE` variabel di `Steps` bagian secara eksplisit.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: DATE=$(date +%m-%d-%y)
```

## Contoh: Mengekspor variabel menggunakan properti Output
<a name="workflows-working-with-variables-ex-export-outputs"></a>

Contoh berikut menunjukkan kepada Anda bagaimana mendefinisikan dua variabel, `REPOSITORY-URI` dan`TIMESTAMP`, dan mengekspornya menggunakan `Outputs` bagian.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Variables:
        - Name: REPOSITORY-URI
          Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo
    Configuration:
      Steps:
        - Run: TIMESTAMP=$(date +%m-%d-%y-%H-%m-%s) 
    Outputs:
      Variables:
        - REPOSITORY-URI
        - TIMESTAMP
```

## Contoh: Mereferensikan variabel yang didefinisikan dalam tindakan yang sama
<a name="workflows-working-with-variables-ex-refer-current"></a>

Contoh berikut menunjukkan cara menentukan `VAR1` variabel dalam`MyBuildAction`, dan kemudian referensi dalam tindakan yang sama menggunakan`$VAR1`.

```
Actions:
  MyBuildAction:
    Identifier: aws/build@v1
    Inputs:
      Variables:
        - Name: VAR1
          Value: my-value
    Configuration:
      Steps:
        - Run: $VAR1
```

## Contoh: Mereferensikan variabel yang didefinisikan dalam tindakan lain
<a name="workflows-working-with-variables-ex-refer-other"></a>

Contoh berikut menunjukkan cara menentukan `TIMESTAMP` variabel`BuildActionA`, mengekspornya menggunakan `Outputs` properti, dan kemudian mereferensikannya dalam `BuildActionB` menggunakan`${BuildActionA.TIMESTAMP}`.

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: TIMESTAMP=$(date +%m-%d-%y-%H-%m-%s) 
    Outputs:
      Variables:
        - TIMESTAMP
  BuildActionB:
    Identifier: aws/build@v1
    Configuration:
      Steps:
        - Run: docker build -t my-ecr-repo/image-repo:latest .      
        - Run: docker tag my-ecr-repo/image-repo:${BuildActionA.TIMESTAMP}
        
        # Specifying just '$TIMESTAMP' here will not work 
        # because TIMESTAMP is not a variable 
        # in the BuildActionB action.
```

## Contoh: Mereferensikan rahasia
<a name="workflows-working-with-variables-ex-refer-secret"></a>

Contoh berikut menunjukkan kepada Anda cara mereferensikan `my-password` rahasia. `my-password`Itu adalah kunci rahasianya. Kunci rahasia ini dan nilai kata sandi yang sesuai harus ditentukan pada halaman **Rahasia** CodeCatalyst konsol sebelum digunakan dalam file definisi alur kerja. Lihat informasi yang lebih lengkap di [Menyembunyikan data menggunakan rahasia](workflows-secrets.md).

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: curl -u LiJuan:${Secrets.my-password} https://example.com
```

# Mendefinisikan variabel
<a name="workflows-working-with-variables-define-input"></a>

Anda dapat menentukan variabel dengan dua cara:
+ Di `Inputs` bagian tindakan alur kerja - lihat [Untuk menentukan variabel di bagian 'Input](#workflows-to-define-variable-input)'
+ Di `Steps` bagian tindakan alur kerja - lihat [Untuk menentukan variabel di bagian 'Langkah-langkah'](#workflows-to-define-variable-steps)
**catatan**  
`Steps`Metode ini hanya berfungsi dengan **GitHub tindakan CodeCatalyst ** build, test, dan Actions, karena ini adalah satu-satunya tindakan yang menyertakan `Steps` bagian.

Sebagai contoh, lihat [Contoh variabel](workflows-working-with-variables-ex.md).

Untuk informasi lebih lanjut tentang variabel, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

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

**Untuk menentukan variabel di bagian 'Input' (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 di mana Anda ingin mengatur variabel.

1. Pilih **Input**.

1. Dalam **Variabel - opsional**, pilih **Tambahkan variabel**, dan kemudian lakukan hal berikut:

   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).

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

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

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

**Untuk menentukan variabel di bagian 'Input' (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, tambahkan kode yang mirip dengan berikut ini:

   ```
   action-name:
     Inputs:
       Variables:
         - Name: variable-name
           Value: variable-value
   ```

   Untuk contoh lainnya, lihat [Contoh variabel](workflows-working-with-variables-ex.md). Untuk informasi selengkapnya, lihat [Alur kerja definisi YAMAL](workflow-reference.md) untuk tindakan Anda.

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

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

------

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

**Untuk menentukan variabel di bagian 'Langkah' (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 di mana Anda ingin mengatur variabel.

1. Pilih **Konfigurasi**.

1. Dalam **perintah Shell** atau **GitHubActions YAMAL**, mana pun yang tersedia, tentukan variabel dalam tindakan, baik secara eksplisit maupun `Steps` implisit.
   + Untuk mendefinisikan variabel secara eksplisit, sertakan dalam perintah bash langsung ke bagian. `Steps`
   + Untuk mendefinisikan variabel secara implisit, tentukan dalam file yang direferensikan di bagian tindakan. `Steps`

     Sebagai contoh, lihat [Contoh variabel](workflows-working-with-variables-ex.md). Untuk informasi lebih lanjut, lihat [Alur kerja definisi YAMAL](workflow-reference.md) untuk tindakan.

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

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

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

**Untuk menentukan variabel di bagian 'Langkah' (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, tentukan variabel di `Steps` bagian tindakan, baik secara eksplisit maupun implisit.
   + Untuk mendefinisikan variabel secara eksplisit, sertakan dalam perintah bash langsung ke bagian. `Steps`
   + Untuk mendefinisikan variabel secara implisit, tentukan dalam file yang direferensikan di bagian tindakan. `Steps`

     Sebagai contoh, lihat [Contoh variabel](workflows-working-with-variables-ex.md). Untuk informasi lebih lanjut, lihat [Alur kerja definisi YAMAL](workflow-reference.md) untuk tindakan.

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

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

------

# Mendefinisikan rahasia
<a name="workflows-working-with-variables-define-secret"></a>

Anda mendefinisikan rahasia di halaman **Rahasia** CodeCatalyst konsol. Untuk informasi selengkapnya, lihat [Menyembunyikan data menggunakan rahasia](workflows-secrets.md).

Misalnya, Anda mungkin mendefinisikan rahasia yang terlihat seperti ini:
+ Nama (kunci): **my-password**
+ Nilai: **^\$1H3\$1\$1b9**

Setelah rahasia didefinisikan, Anda dapat menentukan kunci rahasia (**my-password**) dalam file definisi alur kerja. Untuk contoh cara melakukannya, lihat [Contoh: Mereferensikan rahasia](workflows-working-with-variables-ex.md#workflows-working-with-variables-ex-refer-secret).

# Mengekspor variabel sehingga tindakan lain dapat menggunakannya
<a name="workflows-working-with-variables-export-input"></a>

Gunakan petunjuk berikut untuk mengekspor variabel dari tindakan sehingga Anda dapat mereferensikannya dalam tindakan lain.

Sebelum Anda mengekspor variabel, perhatikan hal berikut:
+ Jika Anda hanya perlu mereferensikan variabel dalam tindakan yang ditentukan, maka Anda tidak perlu mengekspornya.
+ Tidak semua tindakan mendukung variabel ekspor. Untuk menentukan apakah tindakan Anda mendukung fitur ini, jalankan melalui instruksi editor visual yang mengikuti, dan lihat apakah tindakan menyertakan tombol **Variabel** pada tab **Output**. Jika ya, variabel ekspor didukung. 
+ Untuk mengekspor variabel dari GitHub Action, lihat[Mengekspor parameter GitHub output](integrations-github-action-export.md).

Untuk informasi lebih lanjut tentang variabel, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

**Prasyarat**  
Pastikan Anda telah menentukan variabel yang ingin Anda ekspor. Untuk informasi selengkapnya, lihat [Mendefinisikan variabel](workflows-working-with-variables-define-input.md).

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

**Untuk mengekspor variabel (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 ingin Anda ekspor variabelnya.

1. Pilih **Output**.

1. Dalam **Variabel - opsional**, pilih **Tambahkan variabel**, dan kemudian lakukan hal berikut:

   Tentukan nama variabel yang ingin Anda ekspor tindakan. Variabel ini harus sudah didefinisikan dalam `Inputs` atau `Steps` bagian dari tindakan yang sama.

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

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

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

**Untuk mengekspor variabel (editor YAMM)**

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 yang ingin Anda ekspor variabel dari, tambahkan kode yang mirip dengan berikut ini:

   ```
   action-name:
     Outputs:
       Variables:
         - Name: variable-name
   ```

   Untuk contoh lainnya, lihat [Contoh variabel](workflows-working-with-variables-ex.md).

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

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

------

# Merujuk variabel dalam tindakan yang mendefinisikannya
<a name="workflows-working-with-variables-reference-input"></a>

Gunakan instruksi berikut untuk mereferensikan variabel dalam tindakan yang mendefinisikannya.

**catatan**  
Untuk mereferensikan variabel yang dihasilkan oleh GitHub Action, lihat[Merujuk parameter GitHub keluaran](integrations-github-action-referencing.md).

Untuk informasi lebih lanjut tentang variabel, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

**Prasyarat**  
Pastikan Anda telah menentukan variabel yang ingin Anda referensikan. Untuk informasi selengkapnya, lihat [Mendefinisikan variabel](workflows-working-with-variables-define-input.md).

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

*Tidak tersedia. Pilih YAMAL untuk melihat instruksi YAMAL.*

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

**Untuk mereferensikan variabel dalam tindakan yang mendefinisikannya**

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 CodeCatalyst tindakan yang mendefinisikan variabel yang ingin Anda rujuk, tambahkan variabel menggunakan sintaks bash berikut:

   ```
   $variable-name
   ```

   Contoh:

   ```
   MyAction:
       Configuration:
         Steps:
           - Run: $variable-name
   ```

   Untuk contoh lainnya, lihat [Contoh variabel](workflows-working-with-variables-ex.md). Untuk informasi selengkapnya, lihat informasi referensi untuk tindakan Anda di[Alur kerja definisi YAMAL](workflow-reference.md).

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

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

------

# Mereferensikan output variabel dengan tindakan lain
<a name="workflows-working-with-variables-reference-action"></a>

Gunakan instruksi berikut untuk referensi variabel output oleh tindakan lain.

**catatan**  
 Untuk mereferensikan output variabel dari GitHub Action, lihat[Merujuk parameter GitHub keluaran](integrations-github-action-referencing.md).

Untuk informasi lebih lanjut tentang variabel, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

**Prasyarat**  
Pastikan Anda telah mengekspor variabel yang ingin Anda referensikan. Untuk informasi selengkapnya, lihat [Mengekspor variabel sehingga tindakan lain dapat menggunakannya](workflows-working-with-variables-export-input.md).

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

*Tidak tersedia. Pilih YAMG untuk melihat instruksi YAMG.*

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

**Untuk mereferensikan output variabel dengan tindakan lain (editor YAMG)**

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 CodeCatalyst tindakan, tambahkan referensi ke variabel menggunakan sintaks berikut:

   ```
   ${action-group-name.action-name.variable-name}
   ```

   Ganti:
   + *action-group-name*dengan nama grup aksi yang berisi tindakan yang menghasilkan variabel.
**catatan**  
Anda dapat menghilangkan *action-group-name* jika tidak ada grup tindakan, atau jika variabel dihasilkan oleh tindakan dalam grup tindakan yang sama.
   + *action-name*dengan nama tindakan yang mengeluarkan variabel.
   + *variable-name*dengan nama variabel.

   Contoh:

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: ${MyFirstAction.TIMESTAMP}
   ```

   Untuk contoh lainnya, lihat [Contoh variabel](workflows-working-with-variables-ex.md). Untuk informasi selengkapnya, lihat [Alur kerja definisi YAMAL](workflow-reference.md) untuk tindakan Anda.

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

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

------

# Mereferensikan rahasia
<a name="workflows-working-with-variables-reference-secret"></a>

Untuk petunjuk tentang mereferensikan rahasia dalam file definisi alur kerja, lihat. [Menggunakan rahasia](workflows-secrets.using.md)

Sebagai contoh, lihat [Contoh: Mereferensikan rahasia](workflows-working-with-variables-ex.md#workflows-working-with-variables-ex-refer-secret).

# Menggunakan variabel yang telah ditentukan
<a name="workflows-using-predefined-variables"></a>

*Variabel yang telah ditentukan* adalah pasangan nilai kunci yang dipancarkan oleh alur kerja secara otomatis, dan tersedia untuk Anda gunakan dalam tindakan alur kerja. 

Untuk informasi lebih lanjut tentang variabel, lihat[Menggunakan variabel dalam alur kerja](workflows-working-with-variables.md).

**Topics**
+ [Contoh referensi variabel yang telah ditentukan](workflows-predefined-examples.md)
+ [Merujuk variabel yang telah ditentukan](workflows-working-with-variables-reference-output-vars.md)
+ [Menentukan variabel standar mana yang dipancarkan alur kerja Anda](workflows-working-with-variables-determine-output-vars.md)
+ [Daftar variabel yang telah ditentukan](workflow-ref-action-variables.md)

# Contoh referensi variabel yang telah ditentukan
<a name="workflows-predefined-examples"></a>

Contoh berikut menunjukkan cara mereferensikan variabel yang telah ditentukan dalam file definisi alur kerja.

Untuk informasi selengkapnya tentang variabel yang telah ditentukan, lihat[Menggunakan variabel yang telah ditentukan](workflows-using-predefined-variables.md).

**Topics**
+ [Contoh: Mereferensikan variabel CommitId standar ""](#workflows-working-with-variables-ex-refer-action)
+ [Contoh: Mereferensikan variabel BranchName standar ""](#workflows-working-with-variables-ex-branch)

## Contoh: Mereferensikan variabel CommitId standar ""
<a name="workflows-working-with-variables-ex-refer-action"></a>

Contoh berikut menunjukkan kepada Anda bagaimana merujuk ke variabel yang `CommitId` telah ditentukan dalam `MyBuildAction` tindakan. `CommitId`Variabel adalah output secara otomatis oleh CodeCatalyst. Untuk informasi selengkapnya, lihat [Daftar variabel yang telah ditentukan](workflow-ref-action-variables.md).

Meskipun contoh menunjukkan variabel yang digunakan dalam aksi build, Anda dapat menggunakannya `CommitId` dalam tindakan apa pun.

```
MyBuildAction:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
      #Build Docker image and tag it with a commit ID
        - Run: docker build -t image-repo/my-docker-image:latest .
        - Run: docker tag image-repo/my-docker-image:${WorkflowSource.CommitId}
```

## Contoh: Mereferensikan variabel BranchName standar ""
<a name="workflows-working-with-variables-ex-branch"></a>

Contoh berikut menunjukkan kepada Anda bagaimana merujuk ke variabel yang `BranchName` telah ditentukan dalam `CDKDeploy` tindakan. `BranchName`Variabel adalah output secara otomatis oleh CodeCatalyst. Untuk informasi selengkapnya, lihat [Daftar variabel yang telah ditentukan](workflow-ref-action-variables.md).

Meskipun contoh menunjukkan variabel yang digunakan dalam tindakan **AWS CDK penerapan**, Anda dapat menggunakan `BranchName` dalam tindakan apa pun.

```
CDKDeploy:
    Identifier: aws/cdk-deploy@v2
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      StackName: app-stack-${WorkflowSource.BranchName}
```

# Merujuk variabel yang telah ditentukan
<a name="workflows-working-with-variables-reference-output-vars"></a>

Anda dapat mereferensikan variabel yang telah ditentukan dalam tindakan apa pun dalam CodeCatalyst alur kerja Amazon.

Gunakan petunjuk berikut untuk referensi variabel yang telah ditentukan dalam alur kerja.

Untuk informasi selengkapnya tentang variabel yang telah ditentukan, lihat[Menggunakan variabel yang telah ditentukan](workflows-using-predefined-variables.md).

**Prasyarat**  
Tentukan nama variabel standar yang ingin Anda referensikan, seperti`CommitId`. Untuk informasi selengkapnya, lihat [Menentukan variabel standar mana yang dipancarkan alur kerja Anda](workflows-working-with-variables-determine-output-vars.md).

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

*Tidak tersedia. Pilih YAMG untuk melihat instruksi YAMG.*

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

**Untuk mereferensikan variabel yang telah ditentukan (editor YAMG)**

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 **YAMG.**

1. Dalam CodeCatalyst tindakan, tambahkan referensi variabel yang telah ditentukan menggunakan sintaks berikut:

   ```
   ${action-group-name.action-name-or-WorkflowSource.variable-name}
   ```

   Ganti:
   + *action-group-name*dengan nama grup aksi.
**catatan**  
Anda dapat menghilangkan *action-group-name* jika tidak ada grup tindakan, atau jika variabel dihasilkan oleh tindakan dalam grup tindakan yang sama.
   + *action-name-or-WorkflowSource*dengan:

     Nama tindakan yang mengeluarkan variabel.

     atau

     `WorkflowSource`, jika variabelnya adalah `BranchName` atau `CommitId` variabel.
   + *variable-name*dengan nama variabel.

   Contoh:

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: echo ${MyFirstECSAction.cluster}
   ```

   Contoh lain:

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: echo ${WorkflowSource.CommitId}
   ```

   Untuk contoh lainnya, lihat [Contoh referensi variabel yang telah ditentukan](workflows-predefined-examples.md). Untuk informasi selengkapnya, lihat [Alur kerja definisi YAMAL](workflow-reference.md) untuk tindakan Anda.

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

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

------

# Menentukan variabel standar mana yang dipancarkan alur kerja Anda
<a name="workflows-working-with-variables-determine-output-vars"></a>

Gunakan prosedur berikut untuk menentukan variabel standar mana yang dipancarkan alur kerja saat dijalankan. Anda kemudian dapat mereferensikan variabel-variabel ini dalam alur kerja yang sama. 

Untuk informasi selengkapnya tentang variabel yang telah ditentukan, lihat[Menggunakan variabel yang telah ditentukan](workflows-using-predefined-variables.md).

**Untuk menentukan variabel yang telah ditentukan yang dipancarkan alur kerja Anda**
+ Lakukan salah satu tindakan berikut:
  + **Jalankan alur kerja sekali**. Setelah proses selesai, variabel yang dipancarkan oleh alur kerja ditampilkan pada tab **Variabel pada halaman** rincian jalankan. Untuk informasi selengkapnya, lihat [Melihat status dan detail alur kerja](workflows-view-run.md).
  + **Konsultasikan [Daftar variabel yang telah ditentukan](workflow-ref-action-variables.md)**. Referensi ini mencantumkan nama variabel (kunci) dan nilai untuk setiap variabel yang telah ditentukan.

**catatan**  
Ukuran total maksimum variabel alur kerja tercantum dalam[Kuota untuk alur kerja di CodeCatalyst](workflows-quotas.md). Jika ukuran total melebihi maksimum, tindakan yang terjadi setelah maksimum tercapai mungkin gagal.

# Daftar variabel yang telah ditentukan
<a name="workflow-ref-action-variables"></a>

Konsultasikan bagian berikut untuk melihat variabel yang telah ditentukan yang dihasilkan secara otomatis oleh CodeCatalyst tindakan sebagai bagian dari alur kerja yang dijalankan.

Untuk informasi selengkapnya tentang variabel yang telah ditentukan, lihat[Menggunakan variabel yang telah ditentukan](workflows-using-predefined-variables.md).

**catatan**  
[Daftar ini hanya mencakup variabel standar yang dipancarkan oleh CodeCatalyst sumber dan tindakan. CodeCatalyst ](workflows-actions.md#workflows-actions-types) Jika Anda menggunakan jenis tindakan lain, seperti Tindakan atau GitHub tindakan CodeCatalyst Labs, lihat sebagai gantinya[Menentukan variabel standar mana yang dipancarkan alur kerja Anda](workflows-working-with-variables-determine-output-vars.md).

**Daftar**

**catatan**  
Tidak semua CodeCatalyst tindakan menghasilkan variabel yang telah ditentukan. Jika tindakan tidak ada dalam daftar, maka itu tidak menghasilkan variabel.
+ [Variabel BranchName '' dan CommitId ''](workflows-sources-variables.md)
+ [Variabel 'Menyebarkan tumpukan' CloudFormation](deploy-action-cfn-variables.md)
+ [Variabel 'Terapkan ke Amazon ECS'](deploy-action-ecs-variables.md)
+ [Variabel 'Terapkan ke klaster Kubernetes'](deploy-action-eks-variables.md)
+ [variabel 'AWS CDK penyebaran'](cdk-dep-action-variables.md)
+ [Variabel 'AWS CDK bootstrap'](cdk-boot-action-variables.md)
+ [variabel 'AWS Lambda pemanggilan'](lam-invoke-action-variables.md)
+ [Variabel 'Render definisi tugas Amazon ECS'](render-ecs-action-variables.md)

# Menyembunyikan data menggunakan rahasia
<a name="workflows-secrets"></a>

Mungkin ada saat-saat ketika Anda perlu menggunakan data sensitif, seperti kredensi otentikasi, dalam alur kerja Anda. Menyimpan nilai-nilai ini dalam plaintext di mana saja di repositori Anda harus dihindari karena siapa pun yang memiliki akses ke repositori yang berisi rahasia dapat melihatnya. Demikian pula, nilai-nilai ini tidak boleh digunakan secara langsung dalam definisi alur kerja apa pun karena akan terlihat sebagai file di repositori Anda. Dengan CodeCatalyst, Anda dapat melindungi nilai-nilai ini dengan menambahkan rahasia ke proyek Anda, dan kemudian mereferensikan rahasia dalam file definisi alur kerja Anda. Perhatikan bahwa Anda dapat memiliki maksimal lima rahasia per tindakan.

**catatan**  
Rahasia hanya dapat digunakan untuk mengganti kata sandi dan informasi sensitif dalam file definisi alur kerja.

**Topics**
+ [Menciptakan rahasia](workflows-secrets.creating.md)
+ [Mengedit rahasia](workflows-secrets.editing.md)
+ [Menggunakan rahasia](workflows-secrets.using.md)
+ [Menghapus rahasia](workflows-secrets.deleting.md)

# Menciptakan rahasia
<a name="workflows-secrets.creating"></a>

Gunakan prosedur berikut untuk membuat rahasia. Rahasianya berisi informasi sensitif yang ingin Anda sembunyikan dari pandangan.

**catatan**  
Rahasia terlihat oleh tindakan dan tidak disamarkan saat ditulis ke file.

**Untuk membuat rahasia**

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

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

1. Pilih **Buat rahasia**.

1. Masukkan informasi berikut:  
**Nama**  
Masukkan nama untuk rahasia Anda.  
**Nilai**  
Masukkan nilai untuk rahasianya. Ini adalah informasi sensitif yang ingin Anda sembunyikan dari pandangan. Secara default, nilainya tidak ditampilkan. Untuk menampilkan nilai, pilih **Tampilkan nilai**.  
**Deskripsi**  
(Opsional) Masukkan deskripsi untuk rahasia Anda.

1. Pilih **Buat**.

# Mengedit rahasia
<a name="workflows-secrets.editing"></a>

Gunakan prosedur berikut untuk mengedit rahasia.

**Untuk mengedit rahasia**

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

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

1. Dalam daftar rahasia, pilih rahasia yang ingin Anda edit.

1. Pilih **Edit**.

1. Edit properti berikut:  
**Nilai**  
Masukkan nilai untuk rahasianya. Ini adalah nilai yang ingin Anda sembunyikan dari tampilan. Secara default, nilainya tidak ditampilkan.  
**Deskripsi**  
(Opsional) Masukkan deskripsi untuk rahasia Anda.

1. Pilih **Simpan**.

# Menggunakan rahasia
<a name="workflows-secrets.using"></a>

Untuk menggunakan rahasia dalam tindakan alur kerja, Anda harus mendapatkan pengenal referensi rahasia dan menggunakan pengenal itu dalam tindakan alur kerja.

**Topics**
+ [Memperoleh pengenal rahasia](#workflows-using-secrets.get-identifier)
+ [Mereferensikan rahasia dalam alur kerja](#workflows-using-secrets.using-identifier)

## Memperoleh pengenal rahasia
<a name="workflows-using-secrets.get-identifier"></a>

Gunakan prosedur berikut untuk mendapatkan pengenal referensi rahasia. Anda akan menambahkan pengenal ini ke alur kerja Anda.

**Untuk mendapatkan pengenal referensi rahasia**

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

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

1. Dalam daftar rahasia, temukan rahasia yang ingin Anda gunakan.

1. Di kolom **ID Referensi**, salin pengenal rahasia. Berikut ini adalah sintaks untuk **ID Referensi**:

   ```
   ${Secrets.<name>}
   ```

## Mereferensikan rahasia dalam alur kerja
<a name="workflows-using-secrets.using-identifier"></a>

Gunakan prosedur berikut untuk mereferensikan rahasia dalam alur kerja.

**Untuk mereferensikan rahasia**

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. Ubah YAMAL untuk menggunakan pengenal rahasia. Misalnya, untuk menggunakan nama pengguna dan kata sandi yang disimpan sebagai rahasia dengan `curl` perintah, Anda akan menggunakan `Run` perintah yang mirip dengan berikut ini:

   ```
   - Run: curl -u <username-secret-identifier>:<password-secret-identifier> https://example.com
   ```

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

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

# Menghapus rahasia
<a name="workflows-secrets.deleting"></a>

Gunakan prosedur berikut untuk menghapus rahasia dan pengenal referensi rahasia.

**catatan**  
Sebelum menghapus rahasia, kami sarankan Anda menghapus pengenal referensi rahasia dari semua tindakan alur kerja. Jika Anda menghapus rahasia tanpa menghapus pengenal referensi, tindakan akan gagal saat berikutnya dijalankan. 

**Untuk menghapus pengenal referensi rahasia dari alur kerja**

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

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. Cari alur kerja untuk string berikut:

   ```
   ${Secrets.
   ```

   Ini menemukan semua pengidentifikasi referensi dari semua rahasia.

1. Hapus pengenal referensi dari rahasia yang dipilih, atau ganti dengan nilai teks biasa.

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

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

**Untuk menghapus rahasia**

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

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

1. Dalam daftar rahasia, pilih rahasia yang ingin Anda hapus.

1. Pilih **Hapus**.

1. Masukkan **delete** untuk mengonfirmasi penghapusan.

1. Pilih **Hapus**.

# Melihat status alur kerja
<a name="workflows-view-status"></a>

Anda mungkin ingin melihat status alur kerja untuk melihat apakah ada masalah konfigurasi alur kerja yang perlu Anda atasi, atau untuk memecahkan masalah yang gagal untuk memulai. CodeCatalystmengevaluasi status alur kerja setiap kali Anda membuat atau memperbarui file definisi alur kerja yang mendasari [alur kerja](workflows-concepts.md#workflows-concepts-workflows-def). 

**catatan**  
Anda juga dapat melihat status *run* alur kerja, yang berbeda dari status alur kerja. Untuk informasi selengkapnya, lihat [Melihat status dan detail alur kerja](workflows-view-run.md).

Untuk daftar kemungkinan status alur kerja, lihat[Alur kerja menyatakan di CodeCatalyst](workflows-workflow-status.md).

**Untuk melihat status 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.

   Status ditampilkan dengan alur kerja dalam daftar.

1. (Opsional) Pilih nama alur kerja, dan temukan bidang **Definisi alur kerja**. Ini menunjukkan status alur kerja.

# Kuota untuk alur kerja di CodeCatalyst
<a name="workflows-quotas"></a>

Tabel berikut menjelaskan kuota dan batas untuk alur kerja di Amazon. CodeCatalyst

Untuk informasi selengkapnya tentang kuota di Amazon CodeCatalyst, lihat[Kuota untuk CodeCatalyst](quotas.md).


|  |  | 
| --- |--- |
| Jumlah maksimum alur kerja per ruang |  800  | 
| Ukuran file definisi alur kerja maksimum |  256 KB  | 
| Jumlah maksimum file alur kerja yang diproses dalam satu peristiwa sumber |  50  | 
| Jumlah maksimum file yang diproses dalam satu peristiwa sumber |  4.000  | 
| Jumlah maksimum armada aktif per ruang |  10  | 
| Jumlah maksimum instans komputasi aktif per armada |  20  | 
| Jumlah maksimum artefak masukan per tindakan |  10  | 
| Jumlah maksimum artefak keluaran per tindakan |  10  | 
| Ukuran total maksimum dari variabel keluaran tindakan tunggal |  120 KB  | 
| Panjang maksimum nilai variabel keluaran  |  500 karakter atau lebih, tergantung pada tindakan yang memancarkan nilai.   Nilai dapat dipotong jika melebihi batas tindakan.   | 
| Jumlah hari maksimum untuk menyimpan artefak yang dihasilkan selama alur kerja berjalan |  30  | 
| Jumlah maksimum laporan per tindakan |  50  | 
| Jumlah maksimum kasus uji per laporan pengujian |  20.000  | 
| Jumlah maksimum file per laporan cakupan kode |  20.000  | 
| Jumlah maksimum temuan analisis komposisi perangkat lunak per laporan |  20.000  | 
| Jumlah maksimum file per laporan analisis statis |  20.000  | 
| Jumlah maksimum alur kerja bersamaan berjalan per ruang |  100  | 
| Jumlah maksimum tindakan per alur kerja |  50  | 
| Jumlah maksimum tindakan yang berjalan bersamaan per alur kerja |  50  | 
| Jumlah maksimum tindakan yang berjalan secara bersamaan per ruang |  200  | 
| Jumlah maksimum waktu suatu tindakan dapat dijalankan |  Untuk tindakan build dan test, batas waktu adalah 8 jam. Untuk semua tindakan lainnya, batas waktu adalah 1 jam.  | 
| Jumlah maksimum lingkungan yang terkait dengan Akun AWS per ruang |  5.000  | 
| Jumlah maksimum rahasia per tindakan |  5  | 
| Jumlah maksimum rahasia per ruang |  500.000  | 

# Alur kerja menjalankan status
<a name="workflows-view-run-status"></a>

Jalankan alur kerja dapat berada di salah satu status berikut:
+ **Berhasil** - Alur kerja berjalan berhasil diproses.
+ **Gagal** - Satu atau beberapa tindakan dalam alur kerja berjalan gagal.
+ **Sedang berlangsung** - Alur kerja sedang diproses.
+ **Berhenti** — Seseorang menghentikan alur kerja saat sedang berlangsung.
+ **Berhenti** - Proses alur kerja saat ini sedang dihentikan.
+ **Dibatalkan** - Proses alur kerja dibatalkan CodeCatalyst karena alur kerja terkait telah dihapus atau diperbarui saat proses sedang berlangsung.
+ **Digantikan** - Hanya terjadi jika Anda telah mengonfigurasi mode lari yang [digantikan](workflows-configure-runs.md#workflows-configure-runs-superseded). Proses alur kerja dibatalkan oleh CodeCatalyst karena alur kerja selanjutnya menggantikannya.

# Alur kerja menyatakan di CodeCatalyst
<a name="workflows-workflow-status"></a>

Alur kerja dapat memiliki salah satu status berikut:
+ **Valid** [- Alur kerja dapat dijalankan dan dapat diaktifkan oleh pemicu.](workflows-add-trigger.md#workflows-add-trigger.title)

  Agar alur kerja ditandai sebagai valid, kedua kondisi berikut harus benar:
  + File definisi alur kerja harus valid.
  + Alur kerja harus tidak memiliki pemicu, tidak ada pemicu push, atau pemicu push yang berjalan menggunakan file di cabang saat ini. Untuk informasi selengkapnya, lihat [Pedoman penggunaan untuk pemicu dan cabang](workflows-add-trigger-considerations.md).
+ **Tidak valid** - File definisi alur kerja tidak valid. Alur kerja tidak dapat dijalankan secara manual, atau secara otomatis melalui pemicu. Alur kerja yang tidak valid muncul dengan **definisi Alur Kerja memiliki pesan *n* kesalahan** (atau serupa) di CodeCatalyst konsol.

  Agar alur kerja ditandai sebagai tidak valid, kondisi berikut harus benar:
  + File definisi alur kerja harus salah dikonfigurasi.

    Untuk memperbaiki file definisi alur kerja yang salah konfigurasi, lihat. [Bagaimana cara memperbaiki kesalahan “Definisi alur kerja memiliki *n* kesalahan”?](troubleshooting-workflows.md#troubleshooting-workflows-asterisks)
+ **Tidak aktif** — Definisi alur kerja valid tetapi tidak dapat dijalankan secara manual, atau secara otomatis melalui pemicu.

  Agar alur kerja ditandai sebagai tidak aktif, kedua kondisi berikut harus benar:
  + File definisi alur kerja harus valid.
  + File definisi alur kerja harus menyertakan pemicu push yang menentukan cabang yang berbeda dari cabang tempat file definisi alur kerja saat ini aktif. Untuk informasi selengkapnya, lihat [Pedoman penggunaan untuk pemicu dan cabang](workflows-add-trigger-considerations.md).

    Untuk mengalihkan alur kerja dari **Tidak Aktif ke Aktif****, lihat**. [Bagaimana cara memperbaiki pesan “Alur kerja tidak aktif”?](troubleshooting-workflows.md#troubleshooting-workflows-inactive)
**catatan**  
Jika ada banyak alur kerja dalam keadaan **Tidak aktif**, Anda dapat memfilternya dari tampilan. **Untuk menyaring alur kerja yang tidak aktif, pilih bidang **Filter alur kerja** di bagian atas halaman **Alur Kerja**, pilih Status, pilih **Status\$1** = Tidak sama**, dan pilih **TIDAK AKTIF**.

**catatan**  
Jika alur kerja menentukan sumber daya yang kemudian Anda hapus (misalnya, repositori paket), tidak CodeCatalyst akan mendeteksi perubahan ini dan akan terus menandai alur kerja sebagai valid. Jenis masalah ini akan tertangkap saat alur kerja berjalan.

# Alur kerja definisi YAMAL
<a name="workflow-reference"></a>

Berikut ini adalah dokumentasi referensi untuk file definisi alur kerja.

*File definisi alur kerja adalah file* YAMAL yang menjelaskan alur kerja Anda. Secara default, file disimpan dalam `~/.codecatalyst/workflows/` folder di root [repositori sumber](source-repositories.md) Anda. File dapat memiliki ekstensi.yml.yaml, dan ekstensi harus huruf kecil.

Untuk membuat dan mengedit file definisi alur kerja, Anda dapat menggunakan editor seperti vim, atau Anda dapat menggunakan editor visual CodeCatalyst konsol atau editor YAMM. Untuk informasi selengkapnya, lihat [Menggunakan editor visual dan YAMAL CodeCatalyst konsol](workflow.md#workflow.editors).

**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.

**Topics**
+ [Contoh file definisi alur kerja](#workflow.anatomy)
+ [Pedoman dan konvensi sintaks](#workflow.terms.syntax.conv)
+ [Properti tingkat atas](#workflow.top.level)

## Contoh file definisi alur kerja
<a name="workflow.anatomy"></a>

Berikut ini adalah contoh file definisi alur kerja sederhana. Ini mencakup beberapa properti tingkat atas, `Triggers` bagian, dan `Actions` bagian dengan dua tindakan: `Build` dan`Test`. Untuk informasi selengkapnya, lihat [Tentang file definisi alur kerja](workflow.md#workflow.example).

```
Name: MyWorkflow
SchemaVersion: 1.0
RunMode: QUEUED
Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:     
      Steps:
        - Run: docker build -t MyApp:latest .
  Test:
    Identifier: aws/managed-test@v1
    DependsOn: 
      - Build
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
        - Run: npm install
        - Run: npm run test
```

## Pedoman dan konvensi sintaks
<a name="workflow.terms.syntax.conv"></a>

Bagian ini menjelaskan aturan sintaks untuk file definisi alur kerja, serta konvensi penamaan yang digunakan dalam dokumentasi referensi ini.

### Pedoman sintaks YAMAL
<a name="workflow.syntax.conv"></a>

File definisi alur kerja ditulis dalam YAMG dan mengikuti [spesifikasi YAMM 1.1,](https://yaml.org/spec/) jadi apa pun yang diizinkan dalam spesifikasi itu juga diperbolehkan dalam alur kerja YAMM. Jika Anda baru mengenal YAMAL, berikut adalah beberapa panduan cepat untuk memastikan Anda menyediakan kode YAMAL yang valid.
+ **Case-sensitivity**: File definisi alur kerja peka huruf besar/kecil, jadi pastikan Anda menggunakan casing yang ditunjukkan dalam dokumentasi ini.
+ **Karakter khusus**: Sebaiknya gunakan tanda kutip atau tanda kutip ganda di sekitar nilai properti yang menyertakan salah satu karakter khusus berikut: `{` `}` `[``]`,,,`*`,`#`,`?`,`|`,`-`,,,,,,`=`,`!`,`%`,`@`,`:`, ``` `,` 

  Jika Anda tidak menyertakan tanda kutip, karakter khusus yang tercantum sebelumnya dapat ditafsirkan dengan cara yang tidak terduga.
+ **Nama properti: *Nama*** properti (sebagai lawan dari *nilai* properti) 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 atau tanda kutip ganda untuk mengaktifkan karakter dan spasi khusus dalam nama properti.

  Tidak diizinkan:

  `'My#Build@action'`

  `My#Build@action`

  `My Build Action`

  Diizinkan:

  `My-Build-Action_1`
+ **Kode Escape**: Jika nilai properti Anda menyertakan kode escape (misalnya, `\n` atau`\t`), ikuti panduan berikut:
  + Gunakan tanda kutip tunggal untuk mengembalikan kode escape sebagai string. Misalnya`'my string \n my string'`, mengembalikan string`my string \n my string`.
  + Gunakan tanda kutip ganda untuk mengurai kode escape. Misalnya,`"my string \n my new line"`, mengembalikan:

    ```
    my string
    my new line
    ```
+ **Komentar**: Kata pengantar komentar dengan`#`. 

  Contoh:

  ```
  Name: MyWorkflow
  # This is a comment.
  SchemaVersion: 1.0
  ```
+ **Triple dash (`---`)**: Jangan gunakan `---` dalam kode YAMAL Anda. CodeCatalyst mengabaikan segalanya setelah. `---`

### Konvensi penamaan
<a name="workflow.terms"></a>

Dalam panduan ini, kami menggunakan *properti* dan *bagian* istilah untuk merujuk ke item utama dalam file definisi alur kerja.
+ *Properti* adalah item apa pun yang menyertakan titik dua (`:`). Misalnya, dalam cuplikan kode berikut, semua yang berikut adalah properti:`Name`,,`SchemaVersion`, `RunMode` `Triggers``Type`, dan. `Branches`
+ *Bagian* adalah properti apa pun yang memiliki sub-properti. Dalam cuplikan kode berikut, ada satu `Triggers` bagian.
**catatan**  
Dalam panduan ini, 'bagian' kadang-kadang disebut sebagai 'properti', dan sebaliknya, tergantung pada konteksnya.

  ```
  Name: MyWorkflow
  SchemaVersion: 1.0
  RunMode: QUEUED
  Triggers:
    - Type: PUSH
      Branches:
        - main
  ```

## Properti tingkat atas
<a name="workflow.top.level"></a>

Berikut ini adalah dokumentasi referensi untuk properti tingkat atas dalam file definisi alur kerja.

```
# Name
Name: workflow-name
        
# Schema version
SchemaVersion: 1.0
        
# Run mode
RunMode: QUEUED|SUPERSEDED|PARALLEL

# Compute
Compute:  
...
            
# Triggers
Triggers:
...

# Actions
Actions:
...
```

### Name
<a name="workflow.name"></a>

(Diperlukan)

Nama alur kerja. Nama alur kerja ditampilkan dalam daftar alur kerja dan disebutkan dalam notifikasi dan log. Nama alur kerja dan nama file definisi alur kerja dapat cocok, atau Anda dapat menamainya secara berbeda. Nama alur kerja tidak harus unik. Nama alur kerja 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 alur kerja.

**UI yang sesuai: editor/Workflow properti visual/nama Alur Kerja**

### SchemaVersion
<a name="workflow.schemaversion"></a>

(Diperlukan)

Versi skema definisi alur kerja. Saat ini, satu-satunya nilai yang valid adalah`1.0`.

UI yang sesuai: *tidak ada*

### RunMode
<a name="workflow.runmode"></a>

(Opsional)

Bagaimana CodeCatalyst menangani beberapa proses. Anda dapat menggunakan salah satu nilai berikut:
+ `QUEUED`— Beberapa run diantrian dan dijalankan satu demi satu. Anda dapat memiliki hingga 50 run dalam antrian.
+ `SUPERSEDED`— Beberapa run diantrian dan dijalankan satu demi satu. Antrian hanya dapat memiliki satu run, jadi jika dua run berakhir bersama dalam antrian yang sama, run selanjutnya menggantikan (mengambil alih dari) run sebelumnya, dan run sebelumnya dibatalkan.
+ `PARALLEL`— Beberapa run terjadi secara bersamaan.

Jika properti ini dihilangkan, defaultnya adalah. `QUEUED`

Untuk informasi selengkapnya, lihat [Mengonfigurasi perilaku antrian run](workflows-configure-runs.md).

**UI yang sesuai: editor/Workflow properti visual/mode Lanjutan/Jalankan**

### Compute
<a name="compute-reference"></a>

(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).

Untuk informasi selengkapnya tentang komputasi, lihat[Mengkonfigurasi gambar komputasi dan runtime](workflows-working-compute.md).

UI yang sesuai: *tidak ada*

```
Name: MyWorkflow
SchemaVersion: 1.0
...
Compute:  
  Type: EC2 | Lambda
  Fleet: fleet-name
  SharedInstance: true | false
```

#### Type
<a name="workflow.compute.type"></a>

(Compute/**Type**)

(Diperlukan `Compute` jika diatur)

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: editor/Workflow properti visual/Lanjutan/Jenis komputasi**

#### Fleet
<a name="workflow.compute.fleet"></a>

(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`

Untuk informasi selengkapnya tentang armada komputasi, lihat. [Hitung armada](workflows-working-compute.md#compute.fleets)

**UI yang sesuai: editor/Workflow properti visual/Advanced/Compute fleet**

#### SharedInstance
<a name="workflow.compute.sharedinstance"></a>

(Compute/**SharedInstance**)

(Opsional)

Tentukan kemampuan berbagi komputasi untuk tindakan Anda. Dengan berbagi komputasi, tindakan dalam alur kerja berjalan pada instance yang sama (gambar lingkungan runtime). Anda dapat menggunakan salah satu nilai berikut:
+ `TRUE`berarti bahwa citra lingkungan runtime dibagikan di antara tindakan alur kerja.
+ `FALSE`berarti bahwa image lingkungan runtime terpisah dimulai dan digunakan untuk setiap tindakan dalam alur kerja, sehingga Anda tidak dapat berbagi sumber daya seperti artefak dan variabel tanpa konfigurasi tambahan.

Untuk informasi selengkapnya tentang berbagi komputasi, lihat[Berbagi komputasi di seluruh tindakan](compute-sharing.md).

UI yang sesuai: *tidak ada*

### Triggers
<a name="triggers-reference"></a>

(Opsional)

Urutan satu atau lebih pemicu untuk alur kerja ini. Jika pemicu tidak ditentukan, maka Anda harus memulai alur kerja Anda secara manual.

Untuk informasi lebih lanjut tentang menggunakan pemicu, lihat [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md).

**UI yang sesuai: editor/workflow diagram visual/Pemicu**

```
Name: MyWorkflow
SchemaVersion: 1.0
...
Triggers:
  - Type: PUSH
    Branches:
      - branch-name
    FilesChanged:
      - folder1/file
      - folder2/
 
  - Type: PULLREQUEST
    Events:
      - OPEN
      - CLOSED
      - REVISION
    Branches:
      - branch-name
    FilesChanged:
      - file1.txt
      
  - Type: SCHEDULE
    # Run the workflow at 10:15 am (UTC+0) every Saturday
    Expression: "15 10 ? * 7 *"
    Branches:
      - branch-name
```

#### Type
<a name="workflow.triggers.type"></a>

(Triggers/**Type**)

(Diperlukan `Triggers` jika diatur)

Tentukan jenis pemicu. Anda dapat menggunakan salah satu nilai berikut:
+ **Dorong** (editor visual) atau `PUSH` (editor YAMG)

  Pemicu push memulai alur kerja saat perubahan didorong ke repositori sumber Anda. *Jalankan alur kerja akan menggunakan file di cabang yang Anda dorong (yaitu, cabang tujuan).*
+ **Permintaan tarik** (editor visual) atau `PULLREQUEST` (editor YAMAL)

  Pemicu permintaan tarik memulai alur kerja saat permintaan tarik dibuka, diperbarui, atau ditutup di repositori sumber Anda. Workflow run akan menggunakan file di cabang yang Anda tarik *dari* (yaitu, cabang sumber).
+ **Jadwal** (editor visual) atau `SCHEDULE` (editor YAMG)

  Pemicu jadwal memulai alur kerja berjalan pada jadwal yang ditentukan oleh ekspresi cron yang Anda tentukan. Jalankan alur kerja terpisah akan dimulai untuk setiap cabang di repositori sumber Anda menggunakan file cabang. (Untuk membatasi cabang tempat pemicu diaktifkan, gunakan bidang **Cabang** (editor visual) atau `Branches` properti (editor YAMM).)

  Saat mengonfigurasi pemicu jadwal, ikuti panduan ini:
  + Hanya gunakan satu pemicu jadwal per alur kerja.
  + Jika Anda telah menentukan beberapa alur kerja di CodeCatalyst ruang Anda, sebaiknya Anda menjadwalkan tidak lebih dari 10 alur kerja untuk memulai secara bersamaan.
  + Pastikan Anda mengonfigurasi ekspresi cron pemicu dengan waktu yang cukup di antara proses. Untuk informasi selengkapnya, lihat [Expression](#workflow.triggers.expression).

Sebagai contoh, silakan lihat [Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md).

**UI yang sesuai: editor/workflow diagram visual/pemicu/tipe pemicu**

#### Events
<a name="workflow.triggers.events"></a>

(Triggers/**Events**)

(Diperlukan jika pemicu `Type` diatur ke`PULLREQUEST`)

Tentukan jenis peristiwa permintaan tarik yang akan memulai alur kerja. Berikut ini adalah nilai yang valid:
+ **Permintaan tarik dibuat** (editor visual) atau `OPEN` (editor YAMAL)

  Proses alur kerja dimulai saat permintaan tarik dibuat.
+ **Permintaan tarik ditutup** (editor visual) atau `CLOSED` (editor YAMAL)

  Proses alur kerja dimulai saat permintaan tarik ditutup. Perilaku `CLOSED` acara itu rumit, dan paling baik dipahami melalui sebuah contoh. Untuk informasi selengkapnya, lihat [Contoh: Pemicu dengan tarikan, cabang, dan acara 'CLOSED'](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-pull-close).
+ **Revisi baru dibuat untuk menarik permintaan** (editor visual) atau `REVISION` (editor YAMAL)

  Alur kerja dijalankan ketika revisi ke permintaan tarik dibuat. Revisi pertama dibuat saat permintaan tarik dibuat. Setelah itu, revisi baru dibuat setiap kali seseorang mendorong komit baru ke cabang sumber yang ditentukan dalam permintaan tarik. Jika Anda menyertakan `REVISION` peristiwa dalam pemicu permintaan tarik Anda, Anda dapat menghilangkan `OPEN` acara tersebut, karena `REVISION` merupakan superset dari. `OPEN`

Anda dapat menentukan beberapa peristiwa dalam pemicu permintaan tarik yang sama.

Sebagai contoh, lihat [Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md).

**UI yang sesuai: editor/workflow diagram visual/pemicu/Acara untuk permintaan tarik**

#### Branches
<a name="workflow.triggers.branches"></a>

(Triggers/**Branches**)

(Opsional)

Tentukan cabang di repositori sumber Anda yang dipantau pemicu untuk mengetahui kapan harus memulai alur kerja. Anda dapat menggunakan pola regex untuk menentukan nama cabang Anda. Misalnya, gunakan `main.*` untuk mencocokkan semua cabang yang dimulai dengan`main`.

Cabang yang akan ditentukan berbeda tergantung pada jenis pemicu:
+ *Untuk pemicu dorong, tentukan cabang yang Anda dorong, yaitu cabang *tujuan*.* Satu alur kerja akan dimulai per cabang yang cocok, menggunakan file di cabang yang cocok.

  Contoh:`main.*`, `mainline`
+ *Untuk pemicu permintaan tarik, tentukan cabang yang Anda dorong, yaitu cabang *tujuan*.* Satu alur kerja akan dimulai per cabang yang cocok, menggunakan file definisi alur kerja dan file sumber di cabang **sumber** (*bukan* cabang yang cocok).

  Contoh:`main.*`,`mainline`, `v1\-.*` (cocok dengan cabang yang dimulai dengan`v1-`)
+ Untuk pemicu jadwal, tentukan cabang yang berisi file yang ingin Anda jalankan terjadwal untuk digunakan. Satu alur kerja akan dimulai per cabang yang cocok, menggunakan file definisi alur kerja dan file sumber di cabang yang cocok.

  Contoh:`main.*`, `version\-1\.0`

**catatan**  
Jika Anda *tidak* menentukan cabang, pemicu memantau semua cabang di repositori sumber Anda, dan akan memulai alur kerja menggunakan file definisi alur kerja dan file sumber di:  
Cabang yang Anda dorong (*untuk* pemicu push). Untuk informasi selengkapnya, lihat [Contoh: Pemicu push kode sederhana](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-simple).
*Cabang yang Anda tarik (untuk pemicu permintaan tarik).* Untuk informasi selengkapnya, lihat [Contoh: Pemicu permintaan tarik sederhana](workflows-add-trigger-examples.md#workflows-add-trigger-examples-pull-simple).
Semua cabang (untuk pemicu jadwal). Satu alur kerja akan dimulai per cabang di repositori sumber Anda. Untuk informasi selengkapnya, lihat [Contoh: Pemicu jadwal sederhana](workflows-add-trigger-examples.md#workflows-add-trigger-examples-schedule-simple).

Untuk informasi lebih lanjut tentang cabang dan pemicu, lihat[Pedoman penggunaan untuk pemicu dan cabang](workflows-add-trigger-considerations.md).

Untuk contoh lainnya, lihat [Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md).

UI yang sesuai: editor/workflow diagram/Triggers **visual/Cabang**

#### FilesChanged
<a name="workflow.triggers.files-changed"></a>

(Triggers/**FilesChanged**)

(Opsional jika pemicu `Type` diatur ke`PUSH`, atau`PULLREQUEST`. Tidak didukung jika pemicu `Type` disetel ke`SCHEDULE`.)

Tentukan file atau folder di repositori sumber Anda yang dipantau pemicu untuk mengetahui kapan harus memulai alur kerja. Anda dapat menggunakan ekspresi reguler untuk mencocokkan nama file atau jalur.

Sebagai contoh, lihat [Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md).

**UI yang sesuai: editor/workflow diagram visual/pemicu/File diubah**

#### Expression
<a name="workflow.triggers.expression"></a>

(Triggers/**Expression**)

(Diperlukan jika pemicu `Type` diatur ke`SCHEDULE`)

Tentukan ekspresi cron yang menjelaskan kapan Anda ingin alur kerja terjadwal Anda berjalan terjadi.

Ekspresi cron CodeCatalyst menggunakan sintaks enam bidang berikut, di mana setiap bidang dipisahkan oleh spasi:

*minutes* *hours* *days-of-month* *month* *days-of-week* *year*

**Contoh ekspresi cron**


| Menit | Jam | Hari dalam sebulan | Bulan | Hari dalam seminggu | Tahun | Arti | 
| --- | --- | --- | --- | --- | --- | --- | 
|  0  |  0  |  ?  |  \$1  |  MON-FRI  |  \$1  |  Menjalankan alur kerja pada tengah malam (UTC\$10) setiap Senin sampai Jumat.  | 
|  0  |  2  |  \$1  |  \$1  |  ?  |  \$1  |  Menjalankan alur kerja pada pukul 2:00 pagi (UTC\$10) setiap hari.  | 
|  15  |  22  |  \$1  |  \$1  |  ?  |  \$1  |  Menjalankan alur kerja pada pukul 10:15 malam (UTC\$10) setiap hari.  | 
|  0/30  |  22-2  |  ?  |  \$1  |  SAT-MATAHARI  |  \$1  |  Menjalankan alur kerja setiap 30 menit Sabtu hingga Minggu antara pukul 10:00 malam pada hari mulai dan 2:00 pagi pada hari berikutnya (UTC\$10).  | 
|  45  |  13  |  L  |  \$1  |  ?  |  2023-2027  |  Menjalankan alur kerja pada pukul 1:45 siang (UTC\$10) pada hari terakhir bulan antara tahun 2023 dan 2027 inklusif.  | 

Saat menentukan ekspresi cron di CodeCatalyst, pastikan Anda mengikuti panduan ini:
+ Tentukan ekspresi cron tunggal per `SCHEDULE` pemicu.
+ Lampirkan ekspresi cron dalam tanda kutip ganda (`"`) di editor YAMAL.
+ Tentukan waktu di Coordinated Universal Time (UTC). Zona waktu lain tidak didukung.
+ Konfigurasikan setidaknya 30 menit di antara proses. Irama yang lebih cepat tidak didukung.
+ Tentukan *days-of-week* bidang *days-of-month* atau, tetapi tidak keduanya. Jika Anda menentukan nilai atau tanda bintang (`*`) di salah satu bidang, Anda harus menggunakan tanda tanya (`?`) di bidang lainnya. Tanda bintang berarti 'semua' dan tanda tanya berarti 'apa saja'.

 Untuk lebih banyak contoh ekspresi cron dan informasi tentang wildcard seperti`?`,`*`, dan`L`, lihat [referensi ekspresi Cron di Panduan](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html) Pengguna *Amazon EventBridge *. Ekspresi cron masuk EventBridge dan CodeCatalyst bekerja dengan cara yang persis sama.

Untuk contoh pemicu jadwal, lihat[Contoh: Pemicu dalam alur kerja](workflows-add-trigger-examples.md).

UI yang sesuai: editor/workflow diagram/Triggers **visual/Jadwal**

### Tindakan
<a name="actions-reference"></a>

Urutan satu atau lebih tindakan untuk alur kerja ini. CodeCatalyst mendukung beberapa jenis tindakan, seperti membangun dan menguji tindakan, yang menawarkan berbagai jenis fungsionalitas. Setiap jenis tindakan memiliki:
+ `Identifier`properti yang menunjukkan ID unik dan hard-code tindakan. Misalnya, `aws/build@v1` mengidentifikasi tindakan build.
+ `Configuration`bagian yang berisi properti yang spesifik untuk tindakan.

Untuk informasi selengkapnya tentang setiap jenis tindakan, lihat[Jenis tindakan](workflows-actions.md#workflows-actions-types). [Jenis tindakan](workflows-actions.md#workflows-actions-types)Topik memiliki tautan ke dokumentasi untuk setiap tindakan.

Berikut ini adalah referensi YAMAL untuk tindakan dan kelompok tindakan dalam file definisi alur kerja.

```
Name: MyWorkflow
SchemaVersion: 1.0
...
Actions:
  action-or-gate-name:
    Identifier: identifier
    Configuration:
    ...
  #Action groups
  action-group-name:
    Actions:
      ...
```

#### action-or-gate-name
<a name="workflow.actions.name"></a>

(Actions/*action-or-gate-name*)

(Diperlukan)

Ganti *action-name* dengan nama yang ingin Anda berikan tindakan. Nama tindakan harus unik dalam alur kerja, dan hanya boleh menyertakan karakter alfanumerik, tanda hubung, dan garis bawah. Untuk informasi selengkapnya tentang aturan sintaks, lihat[Pedoman sintaks YAMAL](#workflow.syntax.conv).

Untuk informasi selengkapnya tentang praktik penamaan untuk tindakan, termasuk pembatasan, lihat[action-or-gate-name](#workflow.actions.name). 

**UI yang sesuai: editor *action-name* visual//tab Konfigurasi/Nama tindakan atau **nama tampilan Tindakan****

#### action-group-name
<a name="workflow.action-groups"></a>

(Actions/*action-group-name*)

(Opsional)

*Grup aksi* berisi satu atau lebih tindakan. Mengelompokkan tindakan ke dalam grup tindakan membantu Anda menjaga alur kerja tetap teratur, dan juga memungkinkan Anda mengonfigurasi dependensi di antara grup yang berbeda.

Ganti *action-group-name* dengan nama yang ingin Anda berikan pada grup aksi. Nama grup tindakan harus unik dalam alur kerja, dan hanya boleh menyertakan karakter alfanumerik, tanda hubung, dan garis bawah. Untuk informasi selengkapnya tentang aturan sintaks, lihat[Pedoman sintaks YAMAL](#workflow.syntax.conv).

Untuk informasi selengkapnya tentang grup aksi, lihat[Mengelompokkan tindakan ke dalam kelompok aksi](workflows-group-actions.md).

UI yang sesuai: *tidak ada*