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 CloudFormationtumpukan. Tumpukan adalah kumpulan sumber daya AWS yang dapat Anda kelola sebagai unit tunggal. Sumber daya dalam tumpukan ditentukan oleh tumpukanAWS CloudFormationtemplat. Sebuah set perubahan menciptakan perbandingan yang dapat dilihat tanpa mengubah tumpukan asli. Untuk informasi tentang jenisAWS CloudFormationtindakan yang dapat dilakukan pada tumpukan dan perubahan set, lihatActionModeparameter.

catatan

Tipe tindakan

  • Kategori:Deploy

  • Pemilik:AWS

  • Penyedia:CloudFormation

  • Versi:1

Parameter konfigurasi

ActionMode

Diperlukan: Ya

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

  • CHANGE_SET_EXECUTEmengeksekusi perubahan set untuk stack sumber daya yang didasarkan pada satu set pembaruan sumber daya yang ditentukan. Dengan tindakan ini,AWS CloudFormationmulai 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 stack 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 tumpukan ada dan berada dalam keadaan gagal,AWS CloudFormationmenghapus stack, dan kemudian membuat tumpukan baru. Jika tumpukan tidak dalam keadaan gagal, AWS CloudFormation akan memperbaruinya.

    Stack berada dalam keadaan gagal ketika salah satu jenis status berikut ditampilkan dalamAWS 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

    Sebaiknya Anda menggunakanREPLACE_ON_FAILUREuntuk tujuan pengujian hanya karena mungkin menghapus tumpukan Anda.

StackName

Diperlukan: Ya

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

Kemampuan

Diperlukan: Bersyarat

PenggunaanCapabilitiesmengakui 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 di template stack Anda atau Anda membuat tumpukan langsung dari template yang berisi makro. AgarAWS CloudFormationtindakan untuk 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. Contohnya diDeklarasi tindakanmenunjukkan entri dengan properti CAPABILITY_IAM dan CAPABILITY_EXPAND.

Untuk informasi lebih lanjut tentangCapabilities, lihat properti di bawahUpdateStackdi dalamAWS CloudFormationReferensi API.

ChangeSetName

Diperlukan: Bersyarat

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

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

RoleArn

Diperlukan: Bersyarat

ParameterRoleArnadalah ARN dari peran layanan IAM yangAWS CloudFormationmengasumsikan saat beroperasi pada sumber daya di tumpukan tertentu.RoleArntidak diterapkan saat mengeksekusi 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 berada dalam akun yang sama dengan peran tindakan yang sedang berjalan, seperti yang dikonfigurasi dalam deklarasi aksiRoleArn.

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, iniRoleArntidak memerlukan izin untuk mengakses ember artefak. Namun, tindakanRoleArn melakukanmemerlukan izin untuk mengakses ember artefak, untuk menghasilkan URL ditandatangani.

TemplatePath

Diperlukan: Bersyarat

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

Artifactname::TemplateFileName

Artifactnameadalah 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

ParameterAWS CloudFormationfile templat yang berisi isi templat memiliki panjang minimal 1 byte dan panjang maksimal 1 MB. UntukAWS CloudFormationtindakan penyebaran di CodePipeline, ukuran artefak masukan maksimum selalu 256 MB. Untuk informasi selengkapnya, lihatQuotaAWSCodePipelinedanAWS CloudFormationBatasan.

OutputFileName

Diperlukan: Tidak

GunakanOutputFileNameuntuk menentukan nama file output, sepertiCreateStackOutput.json, bahwa CodePipeline menambah artefak keluaran pipa untuk tindakan ini. File JSON berisi isi dariOutputsbagian dariAWS CloudFormationtumpukan.

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

ParameterOverrides

Diperlukan: Tidak

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

Kami merekomendasikan agar Anda menggunakan file konfigurasi templat untuk sebagian besar nilai parameter Anda. Gunakan parameter menimpa hanya untuk nilai-nilai yang tidak diketahui sampai pipa berjalan. Untuk informasi selengkapnya, lihatMenggunakan Parameter Override Fungsi dengan CodePipeline Alurdi dalamAWS CloudFormationPanduan Pengguna.

catatan

Semua nama parameter harus ada dalam templat tumpukan.

TemplateConfiguration

Diperlukan: Tidak

TemplateConfiguration adalah file konfigurasi templat. Anda menyertakan file dalam artefak input untuk tindakan ini. Ini dapat berisi nilai parameter templat dan kebijakan tumpukan. Untuk informasi selengkapnya tentang format file konfigurasi templat, lihatAWS CloudFormation Artifact.

Nama file konfigurasi templat mengikuti format ini:

Artifactname::TemplateConfigurationFileName

Artifactnameadalah 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 masukan

  • Jumlah artefak: 0 to 10

  • Deskripsi: Sebagai input,AWS CloudFormationtindakan opsional menerima artefak untuk tujuan ini:

    • Untuk menyediakan file template stack untuk mengeksekusi. (LihatTemplatePathparameter.)

    • Untuk menyediakan file konfigurasi templat yang akan digunakan. (LihatTemplateConfigurationparameter.) Untuk informasi selengkapnya tentang format file konfigurasi templat, lihatAWS CloudFormation Artifact.

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

artefak keluaran

  • Jumlah artefak: 0 to 1

  • Deskripsi: JikaOutputFileNameparameter ditentukan, ada artefak output yang dihasilkan oleh tindakan ini yang berisi file JSON dengan nama yang ditentukan. File JSON berisi isi bagian Output dariAWS CloudFormationtumpukan.

    Untuk informasi lebih lanjut tentang bagian output yang dapat Anda buat untukAWS CloudFormationtindakan, lihatKeluaran.

Variabel output

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

UntukAWS CloudFormationtindakan, variabel yang dihasilkan dari nilai-nilai yang ditunjuk dalamOutputsdari templat tumpukan. Perhatikan bahwa satu-satunya mode tindakan CloudFormation yang menghasilkan output adalah yang menghasilkan membuat atau memperbarui tumpukan, seperti pembuatan tumpukan, pembaruan tumpukan, dan mengubah eksekusi set. Mode aksi 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 cara membuat pipa dengan CloudFormation aksi penyebaran dalam pipeline yang menggunakan variabel output CloudFormation, lihatTutorial: Buat pipeline yang menggunakan variabel dariAWS CloudFormationtindakan deployment.

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.