

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

# Menyinkronkan tumpukan dengan kode sumber yang disimpan dalam repositori Git dengan sinkronisasi Git
<a name="git-sync"></a>

Dengan sinkronisasi Git, Anda dapat mengelola CloudFormation tumpukan Anda dengan kontrol sumber. Anda melakukan ini dengan mengkonfigurasi CloudFormation untuk memantau repositori Git. Repositori dipantau untuk perubahan pada dua file:
+ File CloudFormation template yang mendefinisikan tumpukan
+ File penyebaran tumpukan yang berisi parameter yang mengonfigurasi tumpukan

Dengan sinkronisasi Git, Anda dapat menggunakan permintaan tarik dan pelacakan versi untuk mengonfigurasi, menyebarkan, dan memperbarui CloudFormation tumpukan Anda dari lokasi terpusat. Saat Anda melakukan perubahan pada template atau file penerapan, CloudFormation secara otomatis memperbarui tumpukan. Jika Anda menggunakan permintaan tarik, CloudFormation dapat meninggalkan komentar pada permintaan tarik yang menjelaskan perubahan apa yang akan dilakukan pada tumpukan Anda sebelum benar-benar memperbaruinya. Namun, Anda harus mengaktifkan fitur ini terlebih dahulu. 

Git sync menyediakan antarmuka konsol yang dapat Anda gunakan untuk menautkan ke repositori, menghasilkan file penyebaran tumpukan, memperbarui CloudFormation template, dan mengirimkan permintaan tarik ke repositori Anda. Sinkronisasi Git juga menyediakan dasbor status yang dapat Anda gunakan untuk memantau, mengedit, dan memecahkan masalah penerapan tumpukan sinkronisasi Git yang aktif. Sinkronisasi Git diakses melalui [CloudFormation konsol](https://console.aws.amazon.com/cloudformation/) saat Anda [membuat tumpukan](cfn-console-create-stack.md). Anda juga dapat mengakses sinkronisasi Git menggunakan CodeConnections. Untuk informasi selengkapnya, lihat [Bekerja dengan konfigurasi sinkronisasi untuk repositori tertaut di Panduan](https://docs.aws.amazon.com/dtconsole/latest/userguide/configurations.html) Pengguna *Konsol Alat Pengembang*.

Git sync mendukung [GitHub](https://github.com/), [GitHub Enterprise](https://github.com/enterprise),, [Bitbucket [GitLab](https://about.gitlab.com/)](https://bitbucket.org), dan repositori yang [GitLab dikelola sendiri](https://docs.gitlab.com/subscriptions/self_managed/).

**catatan**  
Git sync tersedia di wilayah berikut: AS Timur (Virginia N.), AS Timur (Ohio), AS Barat (California N.), AS Barat (Oregon), Kanada (Tengah), Asia Pasifik (Mumbai), Asia Pasifik (Tokyo), Asia Pasifik (Seoul), Asia Pasifik (Singapura), Asia Pasifik (Sydney), Eropa (Irlandia), Eropa (London), Eropa (London), Eropa (Paris), Eropa (Stockholm), Eropa (Frankfurt), Eropa (Milan), dan Amerika Selatan (São Paulo).

Untuk informasi tentang penggunaan sinkronisasi Git dengan strategi multi-akun, lihat posting blog berikut [Gunakan sinkronisasi CloudFormation Git untuk mengonfigurasi sumber daya di akun pelanggan](https://aws.amazon.com/blogs/devops/use-aws-cloudformation-git-sync-to-configure-resources-in-customer-accounts/). 

**Topics**
+ [Cara kerja sinkronisasi Git](git-sync-concepts-terms.md)
+ [Prasyarat](git-sync-prereq.md)
+ [Buat tumpukan dari kode sumber repositori](git-sync-create-stack-from-repository-source-code.md)
+ [Aktifkan komentar pada permintaan tarik](gitsync-enable-comments-on-pull-requests.md)
+ [Dasbor status](git-sync-status.md)

# Bagaimana sinkronisasi Git bekerja dengan CloudFormation
<a name="git-sync-concepts-terms"></a>

Topik ini menjelaskan cara kerja sinkronisasi Git dan memperkenalkan konsep-konsep kunci yang diperlukan untuk bekerja dengannya.

**Topics**
+ [Cara kerja sinkronisasi Git](#git-sync-concepts-terms-how)
+ [Komentar pada permintaan tarik](#git-sync-comments-on-pull-requests)
+ [File penyebaran tumpukan](#git-sync-concepts-terms-depoyment-file)
+ [CloudFormation berkas templat](#git-sync-concepts-terms-template-file)
+ [Repositori definisi templat](#git-sync-concepts-terms-template-definition-repository)

## Cara kerja sinkronisasi Git
<a name="git-sync-concepts-terms-how"></a>

Untuk menggunakan sinkronisasi Git, pertama-tama Anda harus menghubungkan penyedia Git untuk CloudFormation menggunakan [CodeConnections](https://docs.aws.amazon.com/codeconnections/latest/APIReference/Welcome.html)layanan. Dalam prosedur dalam panduan ini, koneksi dibuat melalui CodeConnections konsol. Atau, Anda dapat membuat koneksi dengan AWS CLI. Anda dapat menggunakan salah satu penyedia Git berikut:
+ [GitHub](https://github.com/)
+ [GitHub Perusahaan](https://github.com/enterprise/)
+ [GitLab](https://about.gitlab.com/)
+ [Bitbucket](https://bitbucket.org)
+ [GitLabdikelola sendiri](https://docs.gitlab.com/subscriptions/self_managed/)

Selanjutnya, Anda membuat CloudFormation template yang mendefinisikan tumpukan Anda dan menambahkannya ke repositori Anda. File template ini dipantau. CloudFormation memperbarui tumpukan secara otomatis saat perubahan dilakukan padanya.

Di CloudFormation konsol, Anda membuat tumpukan baru dan memilih **Sinkronkan dari Git** untuk memberitahu CloudFormation agar menggunakan sinkronisasi Git. Anda akan menentukan repositori dan cabang yang CloudFormation ingin Anda pantau, dan menentukan CloudFormation template di repositori Anda yang mendefinisikan tumpukan.

Selama konfigurasi, Anda dapat menyediakan file penyebaran tumpukan Anda sendiri dari repositori Anda, atau membuat sinkronisasi Git untuk Anda. File penyebaran tumpukan berisi parameter dan nilai yang mengonfigurasi sumber daya di tumpukan Anda. File penyebaran tumpukan ini dipantau. CloudFormation memperbarui tumpukan secara otomatis saat perubahan dilakukan padanya.

Sinkronisasi Git membuat permintaan tarik di repositori Anda untuk menyinkronkan tumpukan Anda dengan file CloudFormation template dan file penyebaran tumpukan. Jika Git sync menghasilkan file penyebaran tumpukan untuk Anda, itu dikirimkan ke repositori Anda oleh sinkronisasi Git.

Anda kemudian menggabungkan permintaan tarik ke repositori Anda sehingga CloudFormation menyediakan tumpukan, mengonfigurasinya dengan parameter penerapan Anda, dan mulai memantau repositori Anda untuk perubahan.

Sejak saat itu, setiap kali Anda membuat perubahan pada file template atau file penyebaran tumpukan dan memasukkannya ke repositori Anda, CloudFormation akan secara otomatis mendeteksi perubahan. Jika tim Anda menggunakan permintaan tarik, anggota tim Anda kemudian dapat meninjau dan menyetujui perubahan sebelum diterapkan. Setelah permintaan tarik diterima, CloudFormation gunakan perubahan Anda.

Anda dapat memantau status konfigurasi sinkronisasi Git Anda untuk tumpukan dan melihat riwayat komit yang diterapkan ke tumpukan di CloudFormation konsol. Konsol ini juga menyediakan alat untuk mengonfigurasi ulang masalah sinkronisasi Git dan pemecahan masalah. 

## Komentar pada permintaan tarik
<a name="git-sync-comments-on-pull-requests"></a>

Anda dapat memilih untuk CloudFormation membuat ringkasan perubahan kode dalam permintaan tarik melalui CodeConnections layanan dengan mengaktifkan opsi **Aktifkan komentar pada permintaan tarik** di konsol. Memberikan ringkasan perubahan permintaan tarik berarti anggota tim dapat dengan mudah meninjau dan memahami dampak modifikasi yang diusulkan sebelum menggabungkan permintaan tarik. Untuk informasi selengkapnya, lihat [Aktifkan CloudFormation untuk memposting ringkasan perubahan tumpukan dalam permintaan tarik](gitsync-enable-comments-on-pull-requests.md).

## File penyebaran tumpukan
<a name="git-sync-concepts-terms-depoyment-file"></a>

File penyebaran tumpukan adalah file berformat standar JavaScript Object Notation (JSON) atau YAMAL yang berisi parameter dan nilai yang mengelola tumpukan Anda. CloudFormation Itu dipantau untuk perubahan. Ketika perubahan pada file berkomitmen ke repositori, tumpukan terkait diperbarui secara otomatis.

File penyebaran tumpukan berisi pasangan kunci-nilai dan dua kamus:
+ `template-file-path`

  Ini adalah jalur repositori lengkap untuk file CloudFormation template. File template mendeklarasikan sumber daya untuk CloudFormation tumpukan yang terkait dengan file penerapan ini.
+ `parameters`

  Kamus parameter berisi pasangan kunci-nilai yang mengonfigurasi sumber daya dalam tumpukan. File penyebaran tumpukan dapat memiliki hingga 50 parameter.
+ `tags`

  Kamus tag berisi pasangan nilai kunci opsional yang dapat Anda gunakan untuk mengidentifikasi dan mengkategorikan sumber daya dalam tumpukan. File penyebaran tumpukan dapat memiliki hingga 50 tag.

Anda dapat menyediakan file penyebaran tumpukan Anda sendiri, atau membuat sinkronisasi Git untuk Anda dan secara otomatis mengirimkan permintaan tarik ke repositori Anda. Anda dapat mengelola parameter dan tag dengan mengedit file penyebaran tumpukan dan melakukan perubahan pada repositori.

Berikut ini adalah contoh file penyebaran tumpukan sinkronisasi Git:

```
template-file-path: fargate-srvc/my-stack-template.yaml

parameters: 
    image: public.ecr.aws/lts/nginx:latest
    task_size: x-small
    max_capacity: 5
    port: 8080
    env: production
tags:
    cost-center: '123456'
    org: 'AWS'
```

## CloudFormation berkas templat
<a name="git-sync-concepts-terms-template-file"></a>

File template berisi deklarasi AWS sumber daya yang membentuk CloudFormation tumpukan. Dengan sinkronisasi Git, file template disimpan di repositori Git Anda dan direferensikan oleh file penyebaran tumpukan. Anda dapat mengelola tumpukan dengan mengedit file template dan melakukan perubahan pada repositori.

Untuk informasi selengkapnya, lihat [Bekerja dengan CloudFormation template](template-guide.md).

## Repositori definisi templat
<a name="git-sync-concepts-terms-template-definition-repository"></a>

Repositori definisi template adalah repositori Git yang ditautkan melalui CloudFormation sinkronisasi Git. Repositori dipantau untuk perubahan pada CloudFormation template dan file penyebaran tumpukan. Saat Anda melakukan perubahan pada file, tumpukan terkait diperbarui secara otomatis.

**penting**  
Saat Anda mengonfigurasi repositori definisi template di konsol sinkronisasi Git, pilih *repositori dan cabang yang benar *dari* koneksi Git*. Git sync hanya memantau repositori dan cabang yang dikonfigurasi untuk perubahan pada CloudFormation template dan file penyebaran tumpukan.

# Prasyarat untuk menyinkronkan tumpukan ke repositori Git menggunakan sinkronisasi Git
<a name="git-sync-prereq"></a>

Sebelum Anda menyinkronkan CloudFormation tumpukan ke repositori Git Anda, verifikasi bahwa persyaratan berikut terpenuhi.

**Topics**
+ [Repositori Git](#git-sync-prereq-repo)
+ [CloudFormation Template](#git-sync-prereq-template)
+ [Peran layanan sinkronisasi Git](#git-sync-prereq-iam)
+ [Izin IAM untuk pengguna konsol](#git-sync-prereq-user-permissions)

## Repositori Git
<a name="git-sync-prereq-repo"></a>

Anda harus memiliki repositori Git yang dihosting di salah satu platform berikut.
+ [GitHub](https://github.com/)
+ [GitHub Perusahaan](https://github.com/enterprise)
+ [GitLab](https://about.gitlab.com/)
+ [Bitbucket](https://bitbucket.org)
+ [GitLabdikelola sendiri](https://docs.gitlab.com/subscriptions/self_managed/)

Repositori dapat berupa publik atau pribadi. Anda harus menghubungkan repositori Git ini ke CloudFormation konsol [Connections](https://console.aws.amazon.com/codesuite/settings/connections).

## CloudFormation Template
<a name="git-sync-prereq-template"></a>

Repositori Git Anda harus berisi [file CloudFormation template](git-sync-concepts-terms.md#git-sync-concepts-terms-template-file) yang diperiksa ke cabang yang ingin Anda hubungkan dengan sinkronisasi Git. Template ini akan direferensikan oleh file [stack deployment](git-sync-concepts-terms.md#git-sync-concepts-terms-depoyment-file).

## Peran layanan sinkronisasi Git
<a name="git-sync-prereq-iam"></a>

Sinkronisasi Git membutuhkan peran IAM. Anda dapat memilih untuk memiliki peran IAM yang dibuat untuk tumpukan Anda ketika Anda mengkonfigurasi sinkronisasi Git, atau Anda dapat menggunakan peran yang ada.

**catatan**  
Peran IAM yang dihasilkan secara otomatis hanya menerapkan izin ke tumpukan tempat peran tersebut dihasilkan. Untuk menggunakan kembali peran IAM yang dibuat secara otomatis, Anda harus mengedit peran untuk tumpukan baru.

### Izin yang diperlukan untuk peran layanan sinkronisasi Git
<a name="git-sync-prereq-permissions"></a>

Peran IAM yang Anda berikan untuk sinkronisasi Git memerlukan izin berikut.
+ `cloudformation:CreateChangeSet`
+ `cloudformation:DeleteChangeSet`
+ `cloudformation:DescribeChangeSet`
+ `cloudformation:DescribeStackEvents`
+ `cloudformation:DescribeStacks`
+ `cloudformation:ExecuteChangeSet`
+ `cloudformation:ListChangeSets`
+ `cloudformation:ValidateTemplate`
+ `events:PutRule`
+ `events:PutTargets`

**catatan**  
Izin yang diperlukan sebelumnya secara otomatis ditambahkan ke peran IAM yang dihasilkan oleh sinkronisasi Git.

Contoh peran IAM berikut mencakup izin prasyarat untuk sinkronisasi Git.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SyncToCloudFormation",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateChangeSet",
                "cloudformation:DeleteChangeSet",
                "cloudformation:DescribeChangeSet",
                "cloudformation:DescribeStackEvents",
                "cloudformation:DescribeStacks",
                "cloudformation:ExecuteChangeSet",
                "cloudformation:GetTemplate",
                "cloudformation:ListChangeSets",
                "cloudformation:ListStacks",
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        },
        {
            "Sid": "PolicyForManagedRules",
            "Effect": "Allow",
            "Action": [
                "events:PutRule",
                "events:PutTargets"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                "events:ManagedBy": ["cloudformation.sync.codeconnections.amazonaws.com"]
                }
            }
        },
        {
            "Sid": "PolicyForDescribingRule",
            "Effect": "Allow",
            "Action": "events:DescribeRule",
            "Resource": "*"
        }
    ]
}
```

------

#### Kebijakan kepercayaan
<a name="git-sync-prereq-trust-policy"></a>

Anda harus memberikan kebijakan kepercayaan berikut ketika Anda membuat peran untuk menentukan hubungan kepercayaan.

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

****  

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

------

Kami menyarankan Anda menggunakan kunci `aws:SourceArn` dan `aws:SourceAccount` kondisi untuk melindungi diri Anda dari masalah wakil yang membingungkan. Akun sumber adalah ID akun Anda dan sumber ARN adalah ARN dari koneksi dalam [CodeConnections](https://docs.aws.amazon.com/codeconnections/latest/APIReference/Welcome.html)layanan yang memungkinkan CloudFormation untuk terhubung ke repositori Git Anda.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CfnGitSyncTrustPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudformation.sync.codeconnections.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:codeconnections:us-east-1:123456789012:connection/EXAMPLE64-8aad-4d5d-8878-dfcab0bc441f"
        }
      }
    }
  ]
}
```

------

Untuk informasi lebih lanjut tentang masalah wakil yang membingungkan, lihat[Pencegahan "confused deputy" lintas layanan](cross-service-confused-deputy-prevention.md).

## Izin IAM untuk pengguna konsol
<a name="git-sync-prereq-user-permissions"></a>

Agar berhasil mengatur sinkronisasi Git melalui CloudFormation konsol, pengguna akhir juga harus diberikan izin melalui IAM.

`codeconnections`Izin berikut diperlukan untuk membuat dan mengelola koneksi ke Git repositori Anda.
+ `codeconnections:CreateRepositoryLink`
+ `codeconnections:CreateSyncConfiguration`
+ `codeconnections:DeleteRepositoryLink`
+ `codeconnections:DeleteSyncConfiguration`
+ `codeconnections:GetRepositoryLink`
+ `codeconnections:GetSyncConfiguration`
+ `codeconnections:ListRepositoryLinks`
+ `codeconnections:ListSyncConfigurations`
+ `codeconnections:ListTagsForResource`
+ `codeconnections:TagResource`
+ `codeconnections:UntagResource`
+ `codeconnections:UpdateRepositoryLink`
+ `codeconnections:UpdateSyncBlocker`
+ `codeconnections:UpdateSyncConfiguration`
+ `codeconnections:UseConnection`

Pengguna konsol juga harus memiliki `cloudformation` izin berikut untuk melihat dan mengelola tumpukan selama proses penyiapan sinkronisasi Git.
+ `cloudformation:CreateChangeSet`
+ `cloudformation:DeleteChangeSet`
+ `cloudformation:DescribeChangeSet`
+ `cloudformation:DescribeStackEvents`
+ `cloudformation:DescribeStacks`
+ `cloudformation:ExecuteChangeSet`
+ `cloudformation:GetTemplate`
+ `cloudformation:ListChangeSets`
+ `cloudformation:ListStacks`
+ `cloudformation:ValidateTemplate`

**catatan**  
Meskipun izin set perubahan (`cloudformation:CreateChangeSet`,, `cloudformation:DeleteChangeSet``cloudformation:DescribeChangeSet`,`cloudformation:ExecuteChangeSet`) mungkin tidak sepenuhnya diperlukan untuk penggunaan khusus konsol, mereka disarankan untuk mengaktifkan inspeksi tumpukan penuh dan kemampuan manajemen.

Contoh berikut kebijakan IAM mencakup izin pengguna yang diperlukan untuk mengatur sinkronisasi Git melalui konsol.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeConnectionsPermissions",
            "Effect": "Allow",
            "Action": [
                "codeconnections:CreateRepositoryLink",
                "codeconnections:CreateSyncConfiguration",
                "codeconnections:DeleteRepositoryLink",
                "codeconnections:DeleteSyncConfiguration",
                "codeconnections:GetRepositoryLink",
                "codeconnections:GetSyncConfiguration",
                "codeconnections:ListRepositoryLinks",
                "codeconnections:ListSyncConfigurations",
                "codeconnections:ListTagsForResource",
                "codeconnections:TagResource",
                "codeconnections:UntagResource",
                "codeconnections:UpdateRepositoryLink",
                "codeconnections:UpdateSyncBlocker",
                "codeconnections:UpdateSyncConfiguration",
                "codeconnections:UseConnection",
                "codeconnections:CreateForcedTargetSync",
                "codeconnections:CreatePullRequestForResource"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CloudFormationConsolePermissions",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateChangeSet",
                "cloudformation:DeleteChangeSet",
                "cloudformation:DescribeChangeSet",
                "cloudformation:DescribeStackEvents",
                "cloudformation:DescribeStacks",
                "cloudformation:ExecuteChangeSet",
                "cloudformation:GetTemplate",
                "cloudformation:ListChangeSets",
                "cloudformation:ListStacks",
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**catatan**  
Saat membuat kebijakan IAM yang menyertakan izin `codeconnections:CreateForcedTargetSync` dan`codeconnections:CreatePullRequestForResource`, Anda mungkin melihat peringatan di konsol IAM yang menyatakan bahwa tindakan ini tidak ada. Peringatan ini dapat diabaikan, dan kebijakan akan tetap berhasil dibuat. Izin ini diperlukan untuk operasi sinkronisasi Git tertentu meskipun tidak dikenali oleh konsol IAM.

# Buat tumpukan dari kode sumber repositori dengan sinkronisasi Git
<a name="git-sync-create-stack-from-repository-source-code"></a>

Topik ini menjelaskan cara membuat CloudFormation tumpukan yang disinkronkan ke repositori Git dengan sinkronisasi Git.

**penting**  
Sebelum Anda melanjutkan, lengkapi semua [prasyarat di bagian](git-sync-prereq.md) sebelumnya. 

## Buat tumpukan dari kode sumber repositori
<a name="create-stack-from-repository-source-code"></a>

1. Masuk ke Konsol Manajemen AWS dan buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pada bilah navigasi di bagian atas layar, pilih Wilayah AWS untuk membuat tumpukan.

1. Pada halaman **Stacks**, pilih **Buat tumpukan**, lalu pilih **Dengan sumber daya baru (standar)**.

1. Pada halaman **Buat tumpukan**, lakukan hal berikut:

   1. Untuk **Prasyarat - Siapkan templat, simpan Pilih templat** **yang ada yang dipilih**.

   1. Untuk **template Tentukan**, pilih **Sinkronkan dari Git**, lalu pilih **Berikutnya**.

1. Pada halaman **Tentukan detail tumpukan**, untuk **nama Stack**, ketikkan nama untuk tumpukan Anda. Nama tumpukan dapat mencakup huruf (A-Z dan a-z), angka (0-9), dan tanda hubung (-).

1. Untuk **file penyebaran Stack, pembuatan file** **Deployment**:
   + Jika Anda *belum* membuat file penyebaran tumpukan dan menambahkannya ke repositori Anda, pilih **Buat file menggunakan parameter berikut dan letakkan di** repositori saya.
   + Jika Anda memiliki file penyebaran tumpukan di repositori Anda, pilih **Saya menyediakan file saya sendiri di repositori saya**.

1. Untuk **repositori definisi Template, pilih Pilih repositori** **Git tertaut untuk memilih repositori** Git yang sudah ditautkan ke, CloudFormation atau Tautkan repositori **Git untuk menautkan yang** baru. Jika Anda memilih **Tautkan repositori** Git, lakukan hal berikut:

   1. Untuk **Pilih penyedia repositori**, pilih salah satu dari berikut ini:
      + **GitHub**
      + **GitHub Server Perusahaan**
      + **GitLab**
      + **Bitbucket**
      + **GitLab dikelola sendiri**

   1. Untuk **Koneksi**, pilih koneksi dari daftar. Jika tidak ada opsi yang muncul di daftar **Koneksi**, pilih **tambahkan koneksi baru** untuk pergi ke [konsol Koneksi](https://console.aws.amazon.com/codesuite/settings/connections) dan buat koneksi ke repositori Anda.

1. Dalam daftar **Repositori**, pilih repositori Git yang berisi file template stack Anda.

1. Dalam daftar **Branch**, pilih cabang yang Anda ingin sinkronisasi Git untuk dipantau.
**catatan**  
Sinkronisasi Git hanya memantau cabang yang dipilih untuk perubahan pada CloudFormation template dan file penyebaran tumpukan. Setiap perubahan yang ingin Anda terapkan ke tumpukan Anda harus berkomitmen ke cabang ini.

1. Untuk **jalur file Deployment**, tentukan jalur lengkap termasuk nama file penyebaran tumpukan dari root cabang repositori Anda.

   Jika CloudFormation menghasilkan file untuk Anda, di sinilah file akan dikomit di repositori Anda. Jika Anda menyediakan file, ini adalah lokasi file di repositori Anda.

1. Tambahkan **peran IAM**. Peran IAM mencakup izin yang diperlukan untuk CloudFormation menyinkronkan tumpukan dari repositori Git Anda. Anda dapat memilih peran **IAM baru untuk menghasilkan peran** baru, atau memilih peran **IAM yang ada untuk memilih peran** yang ada dari peran Anda. Akun AWS Jika Anda memilih untuk membuat peran baru, izin yang diperlukan akan disertakan dalam peran.

1. Aktifkan atau matikan komentar pada permintaan tarik:
   + Agar informasi set perubahan CloudFormation posting dalam permintaan tarik untuk pembaruan tumpukan, aktifkan sakelar **Aktifkan komentar pada permintaan tarik**.
   + Jika Anda menonaktifkan sakelar ini, CloudFormation tidak akan menjelaskan perbedaan antara konfigurasi tumpukan saat ini dan perubahan yang diusulkan dalam permintaan tarik saat file repo diperbarui.

1. Untuk **path file Template**, tentukan path lengkap dari root repositori Anda untuk file template stack.

1. (Opsional) Untuk menentukan parameter tumpukan, pilih **Tambah parameter**, berikan kunci dan nilai untuk setiap parameter, lalu pilih **Berikutnya**. Untuk informasi selengkapnya, lihat [File penyebaran tumpukan](git-sync-concepts-terms.md#git-sync-concepts-terms-depoyment-file).

   Misalnya, untuk menentukan **port=8080** parameter dalam file penyebaran tumpukan Anda, lakukan hal berikut:

   1. Pilih **Add parameter** (Tambahkan parameter).

   1. Untuk **Kunci**, masukkan **port**.

   1. Untuk **Nilai**, masukkan **8080**.

1. (Opsional) Untuk menentukan tag tumpukan, pilih **Tambahkan tag baru**, berikan kunci tag dan nilai untuk setiap tag, lalu pilih **Berikutnya**. Untuk informasi selengkapnya, lihat [File penyebaran tumpukan](git-sync-concepts-terms.md#git-sync-concepts-terms-depoyment-file).

1. Pilih **Berikutnya** untuk melanjutkan ke **Configure stack options**. Untuk informasi tentang mengonfigurasi opsi tumpukan, lihat[Konfigurasikan opsi tumpukan](cfn-console-create-stack.md#configure-stack-options).

   Ketika Anda telah menyelesaikan konfigurasi tumpukan Anda, pilih **Berikutnya** untuk melanjutkan.

1. Tinjau pengaturan tumpukan Anda dan konfirmasikan hal berikut:
   + Template tumpukan dikonfigurasi dengan benar dan disetel ke **Sync dari Git**.
   + File penyebaran dikonfigurasi dengan benar.
   + Repositori definisi template dikonfigurasi dengan benar, khususnya, bahwa nama **Repositori** dan **Cabang** yang benar dipilih.
   + Pratinjau file penerapan sudah benar dan berisi parameter dan nilai yang diharapkan.

1. Pilih **Kirim** untuk membuat tumpukan.

   Setelah Anda memilih **Kirim**, permintaan tarik secara otomatis dibuat di repositori Git Anda. Anda harus menggabungkan permintaan tarik ini ke dalam repositori Git Anda untuk membuat tumpukan Anda. Setelah tumpukan dibuat, CloudFormation monitor repositori Git Anda untuk perubahan.

## Perbarui tumpukan Anda dari repositori Git Anda
<a name="update-stack-from-repository-source-code"></a>

Untuk memperbarui tumpukan, buat perubahan langsung ke file template Anda atau file penyebaran tumpukan di repositori Git Anda. Setelah Anda melakukan perubahan ke cabang yang dipantau, CloudFormation secara otomatis memperbarui tumpukan. Jika Anda menggunakan permintaan tarik, permintaan tarik secara otomatis dibuat di repositori Git Anda sebelum tumpukan diperbarui. Anda harus menggabungkan permintaan tarik ini ke dalam repositori Git Anda untuk memperbarui tumpukan Anda.

Di CloudFormation konsol, Anda dapat memilih tumpukan dan memilih tab **sinkronisasi Git** untuk melihat informasi tentang status tumpukan dan peristiwa sinkronisasi. Lihat informasi yang lebih lengkap di [Dasbor status sinkronisasi Git](git-sync-status.md).

# Aktifkan CloudFormation untuk memposting ringkasan perubahan tumpukan dalam permintaan tarik
<a name="gitsync-enable-comments-on-pull-requests"></a>

Topik ini menunjukkan kepada Anda cara mengaktifkan CloudFormation untuk memposting ringkasan perubahan tumpukan dalam permintaan tarik di repositori Git Anda.

Dengan mengaktifkan fitur komentar pada permintaan tarik, Anda mengizinkan CloudFormation untuk memposting komentar yang menjelaskan perbedaan antara konfigurasi tumpukan saat ini dan perubahan yang diusulkan saat file repo diperbarui. Komentar ini memberikan ringkasan sumber daya yang akan ditambahkan, dimodifikasi, atau dihapus, memungkinkan Anda untuk melakukan tinjauan kode menyeluruh sebelum menggabungkan permintaan tarik.

**Untuk mengaktifkan komentar pada permintaan tarik untuk tumpukan baru (konsol)**  
Saat Anda membuat tumpukan, pada halaman **Tentukan detail tumpukan**, di bawah **repositori definisi Template**, pastikan sakelar **Aktifkan komentar pada permintaan tarik** diaktifkan. Ini adalah pengaturan default untuk tumpukan baru. 

**Untuk mengaktifkan komentar pada permintaan tarik untuk tumpukan (konsol) yang ada**

1. Masuk ke Konsol Manajemen AWS dan buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pada bilah navigasi di bagian atas layar, pilih tempat Wilayah AWS Anda membuat tumpukan.

1. Pada halaman **Stacks**, pilih tumpukan berjalan yang ingin Anda perbarui.

1. Pilih tab **Git sync**, lalu pilih **Edit**.

1. Pada halaman **pengaturan sinkronisasi Edit Git**, di bawah **repositori definisi Template**, **aktifkan tombol Aktifkan komentar pada permintaan tarik**.

1. Pilih **Perbarui konfigurasi**.

# Dasbor status sinkronisasi Git
<a name="git-sync-status"></a>

Untuk melihat status penerapan sinkronisasi AWS CloudFormation Git, pilih tumpukan di CloudFormation konsol dan pilih tab **sinkronisasi Git**.

Tab sinkronisasi Git dibagi menjadi dua panel, **status sinkronisasi Git** dan **peristiwa sinkronisasi terbaru**.

## Status sinkronisasi Git
<a name="git-sync-status-info"></a>

Panel atas menyediakan informasi berikut tentang konfigurasi sinkronisasi Git untuk tumpukan.

****Repositori****  
 Tautan ke repositori yang terhubung ke sinkronisasi Git

****Penyedia repositori****  
Nama penyedia repositori

****Cabang****  
Nama cabang yang disinkronkan Git sedang dipantau

****Jalur file penyebaran****  
Jalur lengkap ke file penyebaran tumpukan untuk tumpukan ini

****Status sinkronisasi repositori****  
Status operasi sinkronisasi terbaru

****Pesan status sinkronisasi repositori****  
Pesan dari operasi sinkronisasi terbaru

****Status sinkronisasi Git****  
Status sinkronisasi Git untuk tumpukan ini

****Status penyediaan****  
Status operasi penyediaan

Di kanan atas panel, gunakan tombol berikut untuk memodifikasi atau memperbarui sinkronisasi Git:
+ **Edit** - Edit konfigurasi sinkronisasi Git.
+ **Coba lagi komit terbaru** - Perbarui tumpukan sesuai dengan komit terbaru ke repositori.
+ **Putuskan sambungan** - Putuskan sambungan Git sync dari tumpukan.
+ **Segarkan** - Segarkan kembali panel status sinkronisasi Git.

## Acara sinkronisasi terbaru
<a name="git-sync-status-sync-events"></a>

Panel **peristiwa sinkronisasi terbaru** menampilkan tabel komit yang telah diterapkan ke tumpukan.

Anda dapat mengurutkan tabel menggunakan panah di header setiap kolom. Tabel dapat diurutkan dalam urutan naik atau turun sesuai dengan yang berikut ini:
+ **Tanggal**
+ **ID Komit**
+ **Peristiwa**
+ **Tanggal**
+ **Tipe Acara**

## Status tumpukan yang didukung
<a name="git-sync-status-stack-state"></a>

Sinkronisasi Git hanya dapat dikonfigurasi untuk tumpukan jika tumpukan berada di salah satu status yang didukung berikut:
+ `CREATE_COMPLETE`
+ `UPDATE_COMPLETE`
+ `UPDATE_ROLLBACK_COMPLETE`
+ `IMPORT_COMPLETE`
+ `IMPORT_ROLLBACK_COMPLETE`

Tabel berikut berisi daftar lengkap kode status stack dengan deskripsi:


| Status tumpukan dan status rinci opsional | Deskripsi | 
| --- | --- | 
|  `CREATE_COMPLETE`  |  Pembuatan satu atau lebih tumpukan berhasil.  | 
|  `CREATE_IN_PROGRESS`  |  Pembuatan satu atau lebih tumpukan yang sedang berlangsung.  | 
|  `CREATE_FAILED`  |  Pembuatan satu atau lebih tumpukan gagal. Lihat peristiwa tumpukan untuk melihat pesan kesalahan yang terkait. Kemungkinan alasan pembuatan yang gagal termasuk izin yang tidak memadai untuk bekerja dengan semua sumber daya di tumpukan, nilai parameter yang ditolak oleh AWS layanan, atau batas waktu selama pembuatan sumber daya.  | 
|  `DELETE_COMPLETE`  |  Penghapusan satu atau lebih tumpukan berhasil. Tumpukan yang dihapus dipertahankan dan dapat dilihat selama 90 hari.  | 
|  `DELETE_FAILED`  |  Penghapusan satu atau lebih tumpukan gagal. Karena penghapusan gagal, Anda mungkin memiliki beberapa sumber daya yang masih berjalan; tetapi, Anda tidak dapat menggunakan atau memperbarui tumpukan tersebut. Hapus tumpukan lagi atau lihat peristiwa tumpukan untuk melihat pesan kesalahan yang terkait.  | 
|  `DELETE_IN_PROGRESS`  |  Penghapusan satu atau lebih tumpukan yang sedang berlangsung.  | 
| `REVIEW_IN_PROGRESS` | Pembuatan satu atau lebih tumpukan yang sedang berlangsung dengan StackId yang diharapkan tetapi tanpa templat atau sumber daya apa pun. Tumpukan dengan kode status ini dihitung terhadap [jumlah tumpukan maksimum yang memungkinkan](cloudformation-limits.md).  | 
|  `ROLLBACK_COMPLETE`  |  Penghapusan satu atau beberapa tumpukan berhasil setelah pembuatan tumpukan gagal atau setelah pembuatan tumpukan dibatalkan secara eksplisit. Tumpukan kembali ke status kerja sebelumnya. Semua sumber daya yang dibuat selama operasi pembuatan tumpukan akan dihapus. Status ini hanya ada setelah pembuatan tumpukan gagal. Ini menandakan bahwa semua operasi dari tumpukan yang dibuat sebagian telah dibersihkan dengan baik. Ketika dalam status ini, hanya operasi penghapusan yang dapat dilakukan.  | 
|  `ROLLBACK_FAILED`  |  Penghapusan satu atau beberapa tumpukan gagal setelah pembuatan tumpukan gagal atau setelah pembuatan tumpukan dibatalkan secara eksplisit. Hapus tumpukan atau lihat peristiwa tumpukan untuk melihat pesan kesalahan yang terkait.  | 
|  `ROLLBACK_IN_PROGRESS`  |  Penghapusan satu atau beberapa tumpukan yang sedang berlangsung setelah pembuatan tumpukan yang gagal atau setelah pembuatan tumpukan yang dibatalkan secara eksplisit.  | 
|  `UPDATE_COMPLETE`  | Pembaruan satu atau lebih tumpukan berhasil. | 
|  `UPDATE_COMPLETE_CLEANUP_IN_PROGRESS`  |  Penghapusan sumber daya lama yang sedang berlangsung untuk satu atau beberapa tumpukan setelah pembaruan tumpukan berhasil. Untuk pembaruan tumpukan yang membutuhkan sumber daya untuk diganti, CloudFormation buat sumber daya baru terlebih dahulu dan kemudian hapus sumber daya lama untuk membantu mengurangi gangguan apa pun dengan tumpukan Anda. Dalam keadaan ini, tumpukan telah diperbarui dan dapat digunakan, tetapi CloudFormation masih menghapus sumber daya lama.  | 
|  `UPDATE_FAILED`  | Pembaruan satu atau lebih tumpukan gagal. Lihat peristiwa tumpukan untuk melihat pesan kesalahan yang terkait. | 
|  `UPDATE_IN_PROGRESS`  |  Pembaruan dari satu atau lebih tumpukan yang sedang berlangsung.  | 
|  `UPDATE_ROLLBACK_COMPLETE`  |  Berhasil mengembalikan satu atau beberapa tumpukan ke status kerja sebelumnya setelah pembaruan tumpukan gagal.  | 
|  `UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS`  |  Penghapusan sumber daya baru yang sedang berlangsung untuk satu atau lebih tumpukan setelah pembaruan tumpukan gagal. Dalam keadaan ini, tumpukan telah digulung kembali ke status kerja sebelumnya dan dapat digunakan, tetapi CloudFormation masih menghapus sumber daya baru yang dibuatnya selama pembaruan tumpukan.  | 
|  `UPDATE_ROLLBACK_FAILED`  |  Gagal mengembalikan satu atau beberapa tumpukan ke status kerja sebelumnya setelah pembaruan tumpukan gagal. Saat dalam status ini, Anda dapat menghapus tumpukan atau [melanjutkan rollback](using-cfn-updating-stacks-continueupdaterollback.md). Anda mungkin perlu memperbaiki kesalahan sebelum tumpukan Anda dapat kembali ke status kerja. Atau, Anda dapat menghubungi Dukungan untuk mengembalikan tumpukan ke status yang dapat digunakan.  | 
|  `UPDATE_ROLLBACK_IN_PROGRESS`  |  Pengembalian yang sedang berlangsung dari satu atau lebih tumpukan ke status kerja sebelumnya setelah pembaruan tumpukan gagal.  | 
|  `IMPORT_IN_PROGRESS`  |  Operasi impor sedang berlangsung.  | 
|  `IMPORT_COMPLETE`  |  Operasi impor telah berhasil diselesaikan untuk semua sumber daya di tumpukan yang mendukung `resource import`.  | 
|  `IMPORT_ROLLBACK_IN_PROGRESS`  |  Impor akan kembali ke konfigurasi templat sebelumnya.  | 
|  `IMPORT_ROLLBACK_FAILED`  |  Operasi rollback impor gagal untuk setidaknya satu sumber daya di tumpukan. Hasil akan tersedia untuk sumber daya yang CloudFormation berhasil diimpor.  | 
|  `IMPORT_ROLLBACK_COMPLETE`  |  Impor berhasil dikembalikan ke konfigurasi templat sebelumnya.  | 