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
Ashish Bhatt dan Ruchika Modi, Amazon Web Services
Ringkasan
Pola ini memberi organisasi pendekatan yang efisien menggunakan AWS Service Catalogproduk dan portofolio untuk penyediaan standar dan kepatuhan di seluruh tim. Layanan AWS AWS CloudFormationmembantu menggabungkan komponen penting dalam produk dan portofolio Service Catalog untuk penyediaan infrastruktur jaringan dasar. AWS CloudPola ini juga mempromosikan DevOps praktik dengan mengintegrasikan infrastruktur sebagai kode (IAc) ke dalam alur kerja pengembangan otomatis dengan menggunakan Tindakan. GitHub
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
Prasyarat
Aktif Akun AWS
Akses ke GitHub repositori
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-actionsyang digunakan untuk konektivitas antara dan GitHub AWS
Keterbatasan
Kode pola yang dapat digunakan kembali ini telah diuji hanya dengan GitHub Actions.
Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat Layanan AWS berdasarkan Wilayah
. Untuk titik akhir tertentu, lihat Titik akhir dan kuota layanan, dan pilih tautan untuk layanan.
Versi produk
Solusi pola ini dibuat dengan menggunakan tindakan GitHub Marketplace
actions/checkout@v4aws-actions/configure-aws-credentials@v2aws-actions/aws-cloudformation-github-deploy@v1.2.0
Arsitektur
Diagram berikut menunjukkan arsitektur untuk solusi ini.

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
GitHub Tindakan memicu alur kerja yang terhubung ke penyedia AWS Cloud OpenID Connect (OIDC) untuk menyediakan Service Catalog.
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.
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
Layanan AWS
AWS CloudFormationmembantu 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) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
AWS Service Catalogmembantu 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) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
Lainnya
GitHub 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
github/workflows:e2e-test.yaml— Panggilan file iniworkflow.yaml, yang merupakan alur kerja yang dapat digunakan kembali. 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 dikonfigurasiworkflow_callsebagai pemicunya. Sebagai alur kerja yang dapat digunakan kembali,workflow.yamldapat 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 tempatvpc.yamltemplate diunggah. Meskipun pola ini menyertakanvpc.yamlfile 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.yamlTemplate adalah contoh bagaimana Anda dapat menggunakan CloudFormation template apa pun dengan produk Service Catalog dan template portofolio.
Praktik terbaik
Lihat Praktik Terbaik Keamanan untuk AWS Service Catalog dalam AWS Service Catalog dokumentasi.
Lihat Pengerasan keamanan untuk GitHub Tindakan
dalam GitHub dokumentasi.
Epik
| 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 | Pengembang aplikasi |
Kloning repo GitHub proyek. | Untuk mengkloning repo GitHub proyek, lakukan hal berikut:
| DevOps insinyur |
| 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 Setelah penyedia OIDC dikonfigurasi, kebijakan kepercayaan peran IAM | Administrator AWS, AWS DevOps, AWS Umum |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Perbarui |
| DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Validasi sumber daya Service Catalog. | Untuk memvalidasi sumber daya Service Catalog, lakukan hal berikut:
| AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Hapus CloudFormation tumpukan. | Untuk menghapus CloudFormation tumpukan, lakukan hal berikut:
Untuk informasi selengkapnya, lihat Menghapus tumpukan dari CloudFormation konsol di CloudFormation dokumentasi | DevOps insinyur, administrator AWS |
Pemecahan Masalah
| Isu | Solusi |
|---|---|
| Untuk memastikan bahwa Anda mengaktifkan pengaturan repositori yang benar, lakukan hal berikut:
|
Sumber daya terkait
AWS dokumentasi
Sumber daya lainnya
Tentang peristiwa yang memicu alur kerja
(GitHub dokumentasi)
Informasi tambahan
Untuk melihat tangkapan layar yang terkait dengan Epik, buka folder Gambar di repo pola ini. GitHub Tangkapan layar berikut tersedia: