

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

# Menyediakan AWS Service Catalog produk berdasarkan AWS CloudFormation template dengan menggunakan GitHub Actions
<a name="provision-aws-service-catalog-products-using-github-actions"></a>

*Ashish Bhatt dan Ruchika Modi, Amazon Web Services*

## Ringkasan
<a name="provision-aws-service-catalog-products-using-github-actions-summary"></a>

Pola ini memberi organisasi pendekatan yang efisien menggunakan [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html)produk dan portofolio untuk penyediaan standar dan kepatuhan di seluruh tim. Layanan AWS [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)membantu menggabungkan komponen penting dalam produk dan portofolio Service Catalog untuk penyediaan infrastruktur jaringan dasar. AWS Cloud[Pola ini juga mempromosikan DevOps praktik dengan mengintegrasikan infrastruktur sebagai kode (IAc) ke dalam alur kerja pengembangan otomatis dengan menggunakan Tindakan. GitHub ](https://github.com/features/actions)

AWS Service Catalog memungkinkan organisasi untuk membuat dan mengelola layanan TI yang disetujui AWS, menawarkan manfaat seperti standardisasi, kontrol terpusat, penyediaan layanan mandiri, dan manajemen biaya. Dengan mengotomatiskan penyebaran portofolio dan produk Service Catalog melalui GitHub Actions, perusahaan dapat melakukan hal berikut:
+ Mencapai penerapan yang konsisten dan berulang. 
+ Gunakan kontrol versi untuk IAc. 
+ Integrasikan manajemen sumber daya cloud dengan alur kerja pengembangan yang ada. 

Kombinasi ini merampingkan operasi cloud, menegakkan kepatuhan, dan mempercepat pengiriman layanan yang disetujui sekaligus mengurangi kesalahan manual dan meningkatkan efisiensi secara keseluruhan.

## Prasyarat dan batasan
<a name="provision-aws-service-catalog-products-using-github-actions-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS 
+ Akses ke [GitHub repositori](https://docs.github.com/en/get-started/quickstart/create-a-repo)
+ Pemahaman dasar AWS CloudFormation dan AWS Service Catalog
+ Bucket Amazon Simple Storage Service (Amazon S3) untuk meng-host template CloudFormation 
+ Peran AWS Identity and Access Management (IAM) bernama `github-actions` yang digunakan untuk konektivitas antara dan GitHub AWS

**Keterbatasan**
+ Kode pola yang dapat digunakan kembali ini telah diuji hanya dengan GitHub Tindakan.
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [Layanan AWS berdasarkan Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat [Titik akhir dan kuota layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

**Versi produk**

Solusi pola ini dibuat dengan menggunakan tindakan [GitHub Marketplace](https://github.com/marketplace) berikut dan versinya masing-masing:
+ `actions/checkout@v4`
+ `aws-actions/configure-aws-credentials@v2`
+ `aws-actions/aws-cloudformation-github-deploy@v1.2.0`

## Arsitektur
<a name="provision-aws-service-catalog-products-using-github-actions-architecture"></a>

Diagram berikut menunjukkan arsitektur untuk solusi ini.

![Menggunakan GitHub Tindakan untuk menyediakan produk Service Catalog berdasarkan CloudFormation template.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/49f82fa7-0c74-4581-bf92-95505dca264c/images/a13c7b41-534e-4a9e-bdca-2974fa40a49a.png)


1. Administrator atau insinyur platform mendorong CloudFormation templat standar ke GitHub repositori, tempat templat dipertahankan. GitHub Repo juga berisi alur kerja yang mengotomatiskan penyediaan menggunakan Tindakan. AWS Service Catalog GitHub 

1. GitHub Tindakan memicu alur kerja yang terhubung ke penyedia AWS Cloud OpenID Connect (OIDC) untuk menyediakan Service Catalog.

1. Service Catalog berisi portofolio dan produk yang dapat langsung digunakan pengembang untuk menyediakan sumber daya standar AWS . Pola ini menggabungkan AWS sumber daya seperti virtual private cloud (VPCs), subnet, NAT dan gateway internet, dan tabel rute.

1. Setelah pengembang membuat produk Service Catalog, Service Catalog mengubahnya menjadi sumber daya yang telah dikonfigurasi sebelumnya dan terstandarisasi AWS . Akibatnya, pengembang menghemat waktu karena mereka tidak perlu menyediakan sumber daya individu dan mengonfigurasinya secara manual.

## Alat
<a name="provision-aws-service-catalog-products-using-github-actions-tools"></a>

**Layanan AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)membantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS Ini adalah layanan infrastruktur sebagai kode (IAc) yang dapat dengan mudah digunakan sebagai salah satu jenis produk dengan AWS Service Catalog.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted.html)membantu Anda mengelola katalog layanan TI secara terpusat yang disetujui. AWS Pengguna akhir dapat dengan cepat men-deploy hanya layanan IT yang disetujui yang mereka butuhkan, mengikuti batasan yang ditetapkan oleh organisasi Anda.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

**Lainnya**
+ [GitHub Actions](https://docs.github.com/en/actions) adalah platform integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) yang terintegrasi erat dengan GitHub repositori. Anda dapat menggunakan GitHub Actions untuk mengotomatiskan pipeline build, test, dan deployment.

**Repositori kode**

Kode untuk pola ini tersedia di repositori GitHub [service-catalog-with-github-actions](https://github.com/aws-samples/service-catalog-with-github-actions). Repo berisi file-file menarik berikut:
+ `github/workflows`:
  + `e2e-test.yaml`— Panggilan file ini`workflow.yaml`, yang merupakan [alur kerja yang dapat digunakan kembali](https://docs.github.com/en/actions/sharing-automations/reusing-workflows). Alur kerja ini dipicu segera setelah ada komit dan push pada cabang.
  + `workflow.yaml`— File ini berisi alur kerja yang dapat digunakan kembali untuk solusi ini dan dikonfigurasi `workflow_call` sebagai pemicunya. Sebagai alur kerja yang dapat digunakan kembali, `workflow.yaml` dapat dipanggil dari alur kerja lainnya.
+ `templates`:
  + `servicecatalog-portfolio.yaml`— CloudFormation Template ini mencakup sumber daya yang menyediakan portofolio Service Catalog dan produk Service Catalog. Template berisi serangkaian parameter yang digunakan saat menyediakan portofolio dan produk Service Catalog. Satu parameter menerima URL file Amazon S3 tempat `vpc.yaml` template diunggah. Meskipun pola ini menyertakan `vpc.yaml` file untuk menyediakan AWS sumber daya, Anda juga dapat menggunakan URL file parameter S3 untuk konfigurasi.
  + `vpc.yaml`— CloudFormation Template ini berisi AWS sumber daya yang akan ditambahkan dalam produk Service Catalog. AWS sumber daya termasuk VPCs, subnet, gateway internet, gateway NAT, dan tabel rute. `vpc.yaml`Template adalah contoh bagaimana Anda dapat menggunakan CloudFormation template apa pun dengan produk Service Catalog dan template portofolio.

## Praktik terbaik
<a name="provision-aws-service-catalog-products-using-github-actions-best-practices"></a>
+ Lihat [Praktik Terbaik Keamanan untuk AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/security-best-practices.html) dalam AWS Service Catalog dokumentasi. 
+ Lihat [Pengerasan keamanan untuk GitHub Tindakan](https://docs.github.com/en/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions) dalam GitHub dokumentasi.

## Epik
<a name="provision-aws-service-catalog-products-using-github-actions-epics"></a>

### Siapkan workstation lokal
<a name="set-up-local-workstation"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan Git di workstation lokal Anda. | Untuk menginstal dan mengkonfigurasi Git di workstation lokal Anda, gunakan instruksi [Memulai — Menginstal Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) dalam dokumentasi Git. | Pengembang aplikasi | 
| Kloning repo GitHub proyek. | Untuk mengkloning repo GitHub proyek, lakukan hal berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/provision-aws-service-catalog-products-using-github-actions.html) | DevOps insinyur | 

### Siapkan penyedia OIDC
<a name="set-up-the-oidc-provider"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan penyedia OIDC. | Buat penyedia OpenID Connect (OIDC) yang memungkinkan alur kerja GitHub Actions mengakses sumber daya AWS, tanpa perlu menyimpan kredensialnya sebagai rahasia yang berumur panjang. AWS GitHub Untuk petunjuk, lihat [Mengonfigurasi OpenID Connect di Amazon](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) Web Services GitHub dalam dokumentasi.<br />Setelah penyedia OIDC dikonfigurasi, kebijakan kepercayaan peran IAM`github-actions`, yang disebutkan sebelumnya dalam [Prasyarat](#provision-aws-service-catalog-products-using-github-actions-prereqs), akan diperbarui. | Administrator AWS, AWS DevOps, AWS Umum | 

### Pipeline Trigger GitHub Actions untuk menyebarkan portofolio dan produk Service Catalog
<a name="trigger-github-actions-pipeline-to-deploy-sc-portfolio-and-products"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui`e2e-test.yaml`. | `e2e-test.yaml`File memicu alur kerja yang dapat digunakan kembali di. `workflow.yaml` Perbarui dan validasi nilai untuk parameter input berikut di`e2e-test.yaml`:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/provision-aws-service-catalog-products-using-github-actions.html) | DevOps insinyur | 

### Validasi penerapan
<a name="validate-deployment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi sumber daya Service Catalog. | Untuk memvalidasi resource Service Catalog, lakukan hal berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/provision-aws-service-catalog-products-using-github-actions.html) | AWS DevOps | 

### Pembersihan sumber daya
<a name="clean-up-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus CloudFormation tumpukan. | Untuk menghapus CloudFormation tumpukan, lakukan hal berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/provision-aws-service-catalog-products-using-github-actions.html)<br />Untuk informasi selengkapnya, lihat [Menghapus tumpukan dari CloudFormation konsol](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) di CloudFormation dokumentasi | DevOps insinyur, administrator AWS | 

## Pemecahan masalah
<a name="provision-aws-service-catalog-products-using-github-actions-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| `e2e-test`<br />`Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under '*/home/runner/work/service-catalog-with-github-actions/service-catalog-with-github-actions`<br />`Did you forget to run actions/checkout before running your local action?` | Untuk memastikan bahwa Anda mengaktifkan pengaturan repositori yang benar, lakukan hal berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/provision-aws-service-catalog-products-using-github-actions.html) | 

## Sumber daya terkait
<a name="provision-aws-service-catalog-products-using-github-actions-resources"></a>

**AWS dokumentasi**
+ [Ikhtisar Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/what-is_concepts.html)

**Sumber daya lainnya**
+ [Tentang peristiwa yang memicu alur kerja](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#about-events-that-trigger-workflows) (GitHub dokumentasi)
+ [Menggunakan kembali alur kerja (dokumentasi](https://docs.github.com/en/actions/sharing-automations/reusing-workflows)) GitHub 

## Informasi tambahan
<a name="provision-aws-service-catalog-products-using-github-actions-additional"></a>

Untuk melihat tangkapan layar yang terkait dengan [Epik](#provision-aws-service-catalog-products-using-github-actions-epics), buka folder **Gambar** di repo pola ini. GitHub Tangkapan layar berikut tersedia:
+ [AWS Service Catalog portofolio, bagian Administrasi](https://github.com/aws-samples/service-catalog-with-github-actions/blob/main/images/SC_portfolio.png)
+ [AWS Service Catalog produk, bagian Administrasi](https://github.com/aws-samples/service-catalog-with-github-actions/blob/main/images/SC_Product.png)
+ [AWS Service Catalog produk, User/Provisioning bagian](https://github.com/aws-samples/service-catalog-with-github-actions/blob/main/images/SC_Product_User.png)