AWS CloudFormation - AWS CodePipeline

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

AWS CloudFormation

Mengeksekusi operasi padaAWS CloudFormation stack. Tumpukan adalah kumpulan sumber daya AWS yang dapat Anda kelola sebagai unit tunggal. Sumber daya dalam tumpukan ditentukan olehAWS CloudFormation templat tumpukan. Set perubahan menciptakan perbandingan yang dapat dilihat tanpa mengubah tumpukan asli. Untuk informasi tentang jenisAWS CloudFormation tindakan yang dapat dilakukan pada tumpukan dan set perubahan, lihatActionMode parameter.

Tipe tindakan

  • Kategori:Deploy

  • Pemilik:AWS

  • Penyedia:CloudFormation

  • Versi:1

Parameter konfigurasi

ActionMode

Wajib: Ya

ActionModeadalah nama tindakanAWS CloudFormation melakukan pada tumpukan atau perubahan set. Mode tindakan berikut tersedia:

  • CHANGE_SET_EXECUTEmengeksekusi set perubahan untuk tumpukan sumber daya yang didasarkan pada satu set pembaruan sumber daya tertentu. Dengan tindakan ini,AWS CloudFormation mulai mengubah tumpukan.

  • CHANGE_SET_REPLACE membuat set perubahan, jika tidak ada, berdasarkan nama tumpukan dan templat yang Anda kirimkan. Jika set perubahan ada, AWS CloudFormation menghapusnya, lalu membuat yang baru.

  • CREATE_UPDATEmembuat tumpukan jika tidak ada. Jika tumpukan ada, AWS CloudFormation akan memperbarui tumpukan. Gunakan tindakan ini untuk memperbarui tumpukan yang ada. Tidak sepertiREPLACE_ON_FAILURE, jika tumpukan ada dan dalam keadaan gagal, CodePipeline tidak akan menghapus dan mengganti tumpukan.

  • DELETE_ONLY akan menghapus tumpukan. Jika Anda menentukan tumpukan yang tidak ada, tindakan berhasil diselesaikan tanpa menghapus tumpukan.

  • REPLACE_ON_FAILUREmembuat tumpukan, jika tidak ada. Jika stack ada dan dalam keadaan gagal,AWS CloudFormation menghapus stack, dan kemudian menciptakan tumpukan baru. Jika tumpukan tidak dalam keadaan gagal, AWS CloudFormation akan memperbaruinya.

    Tumpukan dalam keadaan gagal ketika salah satu jenis status berikut ditampilkan diAWS CloudFormation:

    • ROLLBACK_FAILED

    • CREATE_FAILED

    • DELETE_FAILED

    • UPDATE_ROLLBACK_FAILED

    Gunakan tindakan ini untuk secara otomatis mengganti tumpukan yang gagal tanpa memulihkan atau memecahkan masalahnya.

    penting

    Kami menyarankan Anda menggunakanREPLACE_ON_FAILURE untuk tujuan pengujian hanya karena mungkin menghapus tumpukan Anda.

StackName

Wajib: Ya

StackNameadalah nama tumpukan yang ada atau tumpukan yang ingin Anda buat.

Kemampuan

Diperlukan: Kondisional

PenggunaanCapabilities mengakui bahwa template mungkin memiliki kemampuan untuk membuat dan memperbarui beberapa sumber daya sendiri, dan bahwa kemampuan ini ditentukan berdasarkan jenis sumber daya dalam template.

Properti ini diperlukan jika Anda memiliki sumber daya IAM dalam template tumpukan Anda atau Anda membuat tumpukan langsung dari template yang berisi makro. AgarAWS CloudFormation tindakan berhasil beroperasi dengan cara ini, Anda harus secara eksplisit mengakui bahwa Anda ingin melakukannya dengan salah satu kemampuan berikut:

  • CAPABILITY_IAM

  • CAPABILITY_NAMED_IAM

  • CAPABILITY_AUTO_EXPAND

Anda dapat menentukan lebih dari satu kemampuan dengan menggunakan koma (tanpa spasi) di antara kemampuan. Contoh dalamDeklarasi tindakan menunjukkan entri dengan properti CAPABILITY_CAPABILITY_CAPABILITY_CAPABILITY_EXPAND.

Untuk informasi selengkapnyaCapabilities, lihat properti UpdateStackdi bawah ReferensiAWS CloudFormation API.

ChangeSetName

Diperlukan: Kondisional

ChangeSetNameadalah nama set perubahan yang ada atau set perubahan baru yang ingin Anda buat untuk tumpukan tertentu.

Properti ini diperlukan untuk mode tindakan berikut: CHANGE_SET_REPLACE dan CHANGE_SET_EXECUTE. Untuk semua mode tindakan lainnya, properti ini diabaikan.

RoleArn

Diperlukan: Kondisional

RoleArnAdalah ARN peran layanan IAM yangAWS CloudFormation mengasumsikan ketika beroperasi pada sumber daya dalam tumpukan tertentu. RoleArntidak diterapkan saat menjalankan set perubahan. Jika Anda tidak menggunakan CodePipeline untuk membuat perubahan set, pastikan bahwa perubahan set atau tumpukan memiliki peran yang terkait.

catatan

Peran ini harus dalam akun yang sama dengan peran untuk tindakan yang sedang berjalan, seperti yang dikonfigurasi dalam deklarasi tindakanRoleArn.

Properti ini diperlukan untuk mode tindakan berikut ini:

  • CREATE_UPDATE

  • REPLACE_ON_FAILURE

  • DELETE_ONLY

  • CHANGE_SET_REPLACE

catatan

AWS CloudFormationdiberi URL yang ditandatangani S3 ke template; oleh karena itu, iniRoleArn tidak memerlukan izin untuk mengakses bucket artefak. Namun, tindakan tersebutRoleArn memerlukan izin untuk mengakses bucket artefak, untuk menghasilkan URL yang ditandatangani.

TemplatePath

Diperlukan: Kondisional

TemplatePath mewakili file templat AWS CloudFormation. Anda menyertakan file dalam artefak input untuk tindakan ini. Nama file mengikuti format ini:

Artifactname::TemplateFileName

Artifactname adalah nama artefak input seperti yang muncul di CodePipeline. Sebagai contoh, tahap sumber dengan nama artefak SourceArtifact dan nama file template-export.json membuat nama TemplatePath seperti yang ditunjukkan dalam contoh ini:

"TemplatePath": "SourceArtifact::template-export.json"

Properti ini diperlukan untuk mode tindakan berikut ini:

  • CREATE_UPDATE

  • REPLACE_ON_FAILURE

  • CHANGE_SET_REPLACE

Untuk semua mode tindakan lainnya, properti ini diabaikan.

catatan

FileAWS CloudFormation templat yang berisi isi templat memiliki panjang minimal 1 byte dan panjang maksimum 1 MB. Untuk tindakanAWS CloudFormation penyebaran CodePipeline, ukuran artefak input maksimum selalu 256 MB. Untuk informasi lebih lanjut, lihatKuota di AWS CodePipeline dan AWS CloudFormationBatas.

OutputFileName

Wajib: Tidak

GunakanOutputFileName untuk menentukan nama file keluaran, sepertiCreateStackOutput.json, yang CodePipeline menambah artefak keluaran pipeline untuk tindakan ini. File JSON berisi isiOutputs bagian dariAWS CloudFormation tumpukan.

Jika Anda tidak menentukan nama, CodePipeline tidak menghasilkan file output atau artefak.

ParameterOverrides

Wajib: Tidak

Parameter ditetapkan dalam templat tumpukan Anda dan mengizinkan Anda untuk memberikan nilai untuk mereka pada saat pembuatan tumpukan atau pembaruan. Anda dapat menggunakan objek JSON untuk menetapkan nilai parameter dalam template Anda. (Nilai-nilai ini menimpa yang ditetapkan dalam file konfigurasi template.) Untuk informasi selengkapnya tentang penggunaan penggantian parameter, lihat Properti Konfigurasi (Objek JSON).

Kami merekomendasikan agar Anda menggunakan file konfigurasi templat untuk sebagian besar nilai parameter Anda. Gunakan penggantian parameter hanya untuk nilai yang tidak diketahui sampai pipeline berjalan. Untuk informasi selengkapnya, lihat Menggunakan Fungsi Override Parameter dengan CodePipeline Pipelines di PanduanAWS CloudFormation Pengguna.

catatan

Semua nama parameter harus ada dalam templat tumpukan.

TemplateConfiguration

Wajib: Tidak

TemplateConfiguration adalah file konfigurasi templat. Anda menyertakan file dalam artefak input untuk tindakan ini. Hal ini dapat berisi nilai parameter templat dan kebijakan tumpukan. Untuk informasi lebih lanjut tentang format file konfigurasi templat, lihat AWS CloudFormationartefak.

Nama file konfigurasi templat mengikuti format ini:

Artifactname::TemplateConfigurationFileName

Artifactname adalah nama artefak input seperti yang muncul di CodePipeline. Sebagai contoh, tahap sumber dengan nama artefak SourceArtifact dan nama file test-configuration.json membuat nama TemplateConfiguration seperti yang ditunjukkan dalam contoh ini:

"TemplateConfiguration": "SourceArtifact::test-configuration.json"

artefak

  • Jumlah artefak:0 to 10

  • Deskripsi: Sebagai masukan,AWS CloudFormation tindakan opsional menerima artefak untuk tujuan ini:

    • Untuk menyediakan file template stack untuk mengeksekusi. (LihatTemplatePath parameternya.)

    • Untuk menyediakan file konfigurasi templat yang akan digunakan. (LihatTemplateConfiguration parameternya.) Untuk informasi lebih lanjut tentang format file konfigurasi templat, lihat AWS CloudFormationartefak.

    • Untuk menyediakan artefak untuk fungsi Lambda yang akan digunakan sebagai bagian dariAWS CloudFormation tumpukan.

artefak output

  • Jumlah artefak:0 to 1

  • Deskripsi: JikaOutputFileName parameter ditentukan, ada artefak keluaran yang dihasilkan oleh tindakan ini yang berisi file JSON dengan nama yang ditentukan. File JSON berisi isi bagian Output dariAWS CloudFormation tumpukan.

    Untuk informasi selengkapnya tentang bagian output yang dapat Anda buat untukAWS CloudFormation tindakan Anda, lihat Keluaran.

Variabel output

Ketika dikonfigurasi, tindakan ini menghasilkan variabel yang dapat direferensikan oleh konfigurasi tindakan tindakan hilir dalam pipa. Anda mengkonfigurasi tindakan dengan namespace untuk membuat variabel tersebut tersedia untuk konfigurasi tindakan hilir.

UntukAWS CloudFormation tindakan, variabel dihasilkan dari nilai apa pun yang ditunjuk diOutputs bagian template tumpukan. Perhatikan bahwa satu-satunya mode CloudFormation tindakan yang menghasilkan output adalah mode yang menghasilkan pembuatan atau pembaruan tumpukan, seperti pembuatan tumpukan, pembaruan tumpukan, dan eksekusi set perubahan. Mode tindakan yang sesuai yang menghasilkan variabel adalah:

  • CHANGE_SET_EXECUTE

  • CHANGE_SET_REPLACE

  • CREATE_UPDATE

  • REPLACE_ON_FAILURE

Untuk informasi selengkapnya, lihat Variabel. Untuk tutorial yang menunjukkan kepada Anda cara membuat pipeline dengan tindakan CloudFormation penyebaran di pipeline yang menggunakan variabel CloudFormation keluaran, lihatTutorial: Membuat pipeline yang menggunakan variabel dari tindakanAWS CloudFormation penyebaran.

Deklarasi tindakan

YAML
Name: ExecuteChangeSet ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: '1' RunOrder: 2 Configuration: ActionMode: CHANGE_SET_EXECUTE Capabilities: CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND ChangeSetName: pipeline-changeset ParameterOverrides: '{"ProjectId": "my-project","CodeDeployRole": "CodeDeploy_Role_ARN"}' RoleArn: CloudFormation_Role_ARN StackName: my-project--lambda TemplateConfiguration: 'my-project--BuildArtifact::template-configuration.json' TemplatePath: 'my-project--BuildArtifact::template-export.yml' OutputArtifacts: [] InputArtifacts: - Name: my-project-BuildArtifact
JSON
{ "Name": "ExecuteChangeSet", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormation", "Version": "1" }, "RunOrder": 2, "Configuration": { "ActionMode": "CHANGE_SET_EXECUTE", "Capabilities": "CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND", "ChangeSetName": "pipeline-changeset", "ParameterOverrides": "{\"ProjectId\": \"my-project\",\"CodeDeployRole\": \"CodeDeploy_Role_ARN\"}", "RoleArn": "CloudFormation_Role_ARN", "StackName": "my-project--lambda", "TemplateConfiguration": "my-project--BuildArtifact::template-configuration.json", "TemplatePath": "my-project--BuildArtifact::template-export.yml" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "my-project-BuildArtifact" } ] },

Sumber daya terkait berikut dapat membantu Anda saat bekerja dengan tindakan ini.