

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.

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