View a markdown version of this page

Referensi variabel - AWS CodePipeline

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

Referensi variabel

Bagian ini hanya referensi. Untuk informasi tentang membuat variabel, lihatBekerja dengan variabel.

Variabel memungkinkan Anda mengonfigurasi tindakan pipeline Anda dengan nilai yang ditentukan pada saat eksekusi pipeline atau eksekusi tindakan.

Beberapa penyedia tindakan menghasilkan serangkaian variabel yang ditentukan. Anda memilih dari kunci variabel default untuk penyedia tindakan tersebut, seperti Commit ID.

penting

Saat melewati parameter rahasia, jangan masukkan nilainya secara langsung. Nilai tersebut diberikan sebagai teks biasa dan karena itu dapat dibaca. Untuk alasan keamanan, jangan gunakan plaintext dengan rahasia. Kami sangat menyarankan Anda menggunakannya AWS Secrets Manager untuk menyimpan rahasia.

Untuk melihat contoh langkah demi langkah menggunakan variabel:

Batas Variabel

Untuk informasi batas, lihatKuota di AWS CodePipeline.

catatan

Saat Anda memasukkan sintaks variabel di bidang konfigurasi tindakan, jangan melebihi batas 1000 karakter untuk bidang konfigurasi. Kesalahan validasi dikembalikan ketika batas ini terlampaui.

Konsep

Bagian ini mencantumkan istilah dan konsep kunci yang terkait dengan variabel dan ruang nama.

Variabel

Variabel adalah pasangan kunci-nilai yang dapat digunakan untuk mengonfigurasi tindakan secara dinamis dalam pipeline Anda. Saat ini ada tiga cara variabel ini tersedia:

  • Ada satu set variabel yang secara implisit tersedia di awal setiap eksekusi pipeline. Set ini saat ini mencakupPipelineExecutionId, ID eksekusi pipeline saat ini.

  • Variabel pada tingkat pipeline ditentukan saat pipeline dibuat dan diselesaikan pada waktu proses pipeline.

    Anda menentukan variabel tingkat pipeline saat pipeline dibuat, dan Anda dapat memberikan nilai pada saat eksekusi pipeline.

  • Ada jenis tindakan yang menghasilkan set variabel ketika mereka dieksekusi. Anda dapat melihat variabel yang dihasilkan oleh tindakan dengan memeriksa outputVariables bidang yang merupakan bagian dari ListActionExecutions API. Untuk daftar nama kunci yang tersedia menurut penyedia tindakan, lihatVariabel yang tersedia untuk tindakan pipeline. Untuk melihat variabel mana yang dihasilkan setiap jenis tindakan, lihat CodePipeline Referensi struktur aksi.

Untuk mereferensikan variabel-variabel ini dalam konfigurasi tindakan Anda, Anda harus menggunakan sintaks referensi variabel dengan namespace yang benar.

Untuk contoh alur kerja variabel, lihatMengkonfigurasi variabel.

Namespace

Untuk memastikan bahwa variabel dapat direferensikan secara unik, mereka harus ditetapkan ke namespace. Setelah Anda memiliki sekumpulan variabel yang ditetapkan ke namespace, mereka dapat direferensikan dalam konfigurasi tindakan dengan menggunakan namespace dan kunci variabel dengan sintaks berikut:

#{namespace.variable_key}

Ada tiga jenis ruang nama di mana variabel dapat ditetapkan:

  • Namespace cadangan codepipeline

    Ini adalah namespace yang ditetapkan untuk kumpulan variabel implisit yang tersedia di awal setiap eksekusi pipeline. Namespace ini adalah codepipeline. Contoh referensi variabel:

    #{codepipeline.PipelineExecutionId}
  • Variabel namespace di tingkat pipeline

    Ini adalah namespace yang ditetapkan untuk variabel di tingkat pipeline. Namespace untuk semua variabel di tingkat pipeline adalahvariables. Contoh referensi variabel:

    #{variables.variable_name}
  • Tindakan yang ditetapkan namespace

    Ini adalah namespace yang Anda tetapkan untuk suatu tindakan. Semua variabel yang dihasilkan oleh tindakan berada di bawah namespace ini. Untuk membuat variabel yang dihasilkan oleh tindakan tersedia untuk digunakan dalam konfigurasi tindakan hilir, Anda harus mengonfigurasi tindakan produksi dengan namespace. Ruang nama harus unik di seluruh definisi pipeline dan tidak dapat bertentangan dengan nama artefak apa pun. Berikut adalah contoh referensi variabel untuk tindakan yang dikonfigurasi dengan namespace dariSourceVariables.

    #{SourceVariables.VersionId}

Gunakan kasus untuk variabel

Berikut ini adalah beberapa kasus penggunaan yang paling umum untuk variabel di tingkat pipeline, membantu Anda menentukan bagaimana Anda dapat menggunakan variabel untuk kebutuhan spesifik Anda.

  • Variabel di tingkat pipeline adalah untuk CodePipeline pelanggan yang ingin menggunakan pipeline yang sama setiap kali dengan variasi kecil dalam input ke konfigurasi tindakan. Setiap pengembang yang memulai pipeline menambahkan nilai variabel di UI saat pipeline dimulai. Dengan konfigurasi ini, Anda meneruskan parameter untuk eksekusi itu saja.

  • Dengan variabel tingkat pipeline, Anda dapat meneruskan input dinamis ke tindakan dalam pipeline. Anda dapat memigrasikan pipeline berparameter CodePipeline tanpa harus mempertahankan versi yang berbeda dari pipeline yang sama, atau membuat pipeline yang kompleks.

  • Anda dapat menggunakan variabel tingkat pipeline untuk meneruskan parameter input yang memungkinkan Anda menggunakan kembali pipeline dengan setiap eksekusi, seperti ketika Anda ingin menentukan versi mana yang ingin Anda terapkan ke lingkungan produksi, sehingga Anda tidak perlu menduplikasi pipeline.

  • Anda dapat menggunakan satu pipeline untuk menyebarkan sumber daya ke beberapa lingkungan build dan penerapan. Misalnya, untuk pipeline dengan CodeCommit repositori, penerapan dari cabang tertentu dan lingkungan penerapan target dapat dilakukan dengan CodeBuild dan CodeDeploy parameter dilewatkan pada tingkat pipeline.

catatan

Untuk Amazon ECR, Amazon S3, atau CodeCommit sumber, Anda juga dapat membuat penggantian sumber menggunakan entri transformasi input untuk menggunakan revisionValue in EventBridge untuk peristiwa pipeline Anda, di mana revisionValue ini berasal dari variabel peristiwa sumber untuk kunci objek, komit, atau ID gambar Anda. Untuk informasi selengkapnya, lihat langkah opsional untuk entri transformasi input yang disertakan dalam prosedur di bawah Tindakan dan sumber EventBridge daya sumber Amazon ECRMenghubungkan ke tindakan sumber Amazon S3 dengan sumber diaktifkan untuk acara,, atauCodeCommit Tindakan sumber dan EventBridge.

Mengkonfigurasi variabel

Anda dapat mengonfigurasi variabel pada tingkat pipeline atau tingkat tindakan dalam struktur pipeline.

Mengkonfigurasi variabel di tingkat pipeline

Anda dapat menambahkan satu atau lebih variabel di tingkat pipeline. Anda dapat mereferensikan nilai ini dalam konfigurasi CodePipeline tindakan. Anda dapat menambahkan nama variabel, nilai default, dan deskripsi saat Anda membuat pipeline. Variabel diselesaikan pada saat eksekusi.

catatan

Jika nilai default tidak ditentukan untuk variabel pada tingkat pipeline, variabel dianggap diperlukan. Anda harus menentukan penggantian untuk semua variabel yang diperlukan saat Anda memulai pipeline, jika tidak, eksekusi pipeline akan gagal dengan kesalahan validasi.

Anda menyediakan variabel pada tingkat pipeline menggunakan atribut variabel dalam struktur pipeline. Dalam contoh berikut, variabel Variable1 memiliki nilaiValue1.

"variables": [ { "name": "Variable1", "defaultValue": "Value1", "description": "description" } ]

Untuk contoh dalam struktur JSON pipeline, lihatBuat pipeline, tahapan, dan tindakan.

Untuk tutorial dengan variabel tingkat pipeline yang dilewatkan pada saat eksekusi pipeline, lihat. Tutorial: Gunakan variabel tingkat pipa

Perhatikan bahwa menggunakan variabel tingkat pipeline dalam segala jenis tindakan Sumber tidak didukung.

catatan

Jika variables namespace sudah digunakan dalam beberapa tindakan dalam pipeline, Anda harus memperbarui definisi tindakan dan memilih namespace lain untuk tindakan yang bertentangan.

Mengkonfigurasi variabel pada tingkat tindakan

Anda mengonfigurasi tindakan untuk menghasilkan variabel dengan mendeklarasikan namespace untuk tindakan tersebut. Tindakan harus sudah menjadi salah satu penyedia tindakan yang menghasilkan variabel. Jika tidak, variabel yang tersedia adalah variabel tingkat pipa.

Anda mendeklarasikan namespace dengan:

  • Pada halaman Edit tindakan konsol, memasukkan namespace di namespace Variable.

  • Memasukkan namespace di bidang namespace parameter dalam struktur pipeline JSON.

Dalam contoh ini, Anda menambahkan namespace parameter ke tindakan CodeCommit sumber dengan namaSourceVariables. Ini mengonfigurasi tindakan untuk menghasilkan variabel yang tersedia untuk penyedia tindakan tersebut, sepertiCommitId.

{ "name": "Source", "actions": [ { "outputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Source", "namespace": "SourceVariables", "configuration": { "RepositoryName": "MyRepo", "BranchName": "mainline", "PollForSourceChanges": "false" }, "inputArtifacts": [], "region": "us-west-2", "actionTypeId": { "provider": "CodeCommit", "category": "Source", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },

Selanjutnya, Anda mengonfigurasi tindakan hilir untuk menggunakan variabel yang dihasilkan oleh tindakan sebelumnya. Anda melakukan ini dengan:

  • Pada halaman Edit tindakan konsol, masukkan sintaks variabel (untuk tindakan hilir) di bidang konfigurasi tindakan.

  • Memasukkan sintaks variabel (untuk tindakan hilir) di bidang konfigurasi tindakan dalam struktur pipeline JSON

Dalam contoh ini, bidang konfigurasi tindakan build menunjukkan variabel lingkungan yang diperbarui pada eksekusi tindakan. Contoh menentukan namespace dan variabel untuk ID eksekusi dengan #{codepipeline.PipelineExecutionId} dan namespace dan variabel untuk commit ID dengan. #{SourceVariables.CommitId}

{ "name": "Build", "actions": [ { "outputArtifacts": [ { "name": "BuildArtifact" } ], "name": "Build", "configuration": { "EnvironmentVariables": "[{\"name\":\"Release_ID\",\"value\":\"#{codepipeline.PipelineExecutionId}\",\"type\":\"PLAINTEXT\"},{\"name\":\"Commit_ID\",\"value\":\"#{SourceVariables.CommitId}\",\"type\":\"PLAINTEXT\"}]", "ProjectName": "env-var-test" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-west-2", "actionTypeId": { "provider": "CodeBuild", "category": "Build", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },

Resolusi variabel

Setiap kali tindakan dijalankan sebagai bagian dari eksekusi pipeline, variabel yang dihasilkannya tersedia untuk digunakan dalam tindakan apa pun yang dijamin terjadi setelah tindakan produksi. Untuk menggunakan variabel-variabel ini dalam tindakan konsumsi, Anda dapat menambahkannya ke konfigurasi tindakan konsumsi menggunakan sintaks yang ditunjukkan pada contoh sebelumnya. Sebelum melakukan tindakan yang memakan waktu CodePipeline , menyelesaikan semua referensi variabel yang ada dalam konfigurasi sebelum memulai eksekusi tindakan.

Contoh: Variabel untuk beberapa tindakan

Aturan untuk variabel

Aturan berikut membantu Anda dengan konfigurasi variabel:

  • Anda menentukan namespace dan variabel untuk tindakan melalui properti tindakan baru atau dengan mengedit tindakan.

  • Saat Anda menggunakan wizard pembuatan pipeline, konsol menghasilkan namespace untuk setiap tindakan yang dibuat dengan wizard.

  • Jika namespace tidak ditentukan, variabel yang dihasilkan oleh tindakan itu tidak dapat direferensikan dalam konfigurasi tindakan apa pun.

  • Untuk mereferensikan variabel yang dihasilkan oleh suatu tindakan, tindakan referensi harus terjadi setelah tindakan yang menghasilkan variabel. Ini berarti itu pada tahap selanjutnya daripada tindakan yang menghasilkan variabel, atau pada tahap yang sama tetapi pada urutan berjalan yang lebih tinggi.

Variabel yang tersedia untuk tindakan pipeline

Penyedia tindakan menentukan variabel mana yang dapat dihasilkan oleh tindakan.

Untuk prosedur langkah demi langkah untuk mengelola variabel, lihatBekerja dengan variabel.

Tindakan dengan kunci variabel yang ditentukan

Tidak seperti namespace yang dapat Anda pilih, tindakan berikut menggunakan kunci variabel yang tidak dapat diedit. Misalnya, untuk penyedia tindakan Amazon S3, hanya kunci VersionId variabel ETag dan yang tersedia.

Setiap eksekusi juga memiliki satu set variabel CodePipeline-generated pipeline yang berisi data tentang eksekusi, seperti ID rilis pipeline. Variabel-variabel ini dapat dikonsumsi oleh tindakan apa pun dalam pipeline.

CodePipeline variabel ID eksekusi

CodePipeline variabel ID eksekusi
Penyedia Kunci variabel Nilai contoh Contoh sintaks variabel
Pipeline kode PipelineExecutionId 8ABC75F0-FBF8-4F4C-BFContoh #{codepipeline.PipelineExecutionId}

Variabel keluaran tindakan Amazon ECR

Variabel Amazon ECR
Kunci variabel Nilai contoh Contoh sintaks variabel
ImageDigest SHA256: Contoh1122334455 #{SourceVariables.ImageDigest}
ImageTag terbaru #{SourceVariables.ImageTag}
ImageURI 11111 EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest #{SourceVariables.ImageURI}
RegistryId CONTOH12233 #{SourceVariables.RegistryId}
RepositoryName repo gambar-saya #{SourceVariables.RepositoryName}

CloudFormation StackSets variabel keluaran tindakan

CloudFormation StackSets variabel
Kunci variabel Nilai contoh Contoh sintaks variabel
OperationId 11111111-2bbb-111-2bbb-11111contoh #{DeployVariables.OperationId}
StackSetId my-stackset: 1111aaaa-1111-2222-2bbb-11111contoh #{DeployVariables.StackSetId}

CodeCommit variabel keluaran tindakan

CodeCommit variabel
Kunci variabel Nilai contoh Contoh sintaks variabel
AuthorDate 2019-10-29 T03:32:21Z #{SourceVariables.AuthorDate}
BranchName pengembangan #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage Memperbaiki bug (ukuran maksimum 100 KB) #{SourceVariables.CommitMessage}
CommitterDate 2019-10-29 T03:32:21Z #{SourceVariables.CommitterDate}
RepositoryName milikku CodeCommitRepo #{SourceVariables.RepositoryName}

CodeStarSourceConnection variabel keluaran tindakan

Variabel output yang tersedia tergantung pada jenis pemicu (push, pull request, atau tag). Variabel dalam tabel berikut ditandai sebagai Semua diproduksi untuk setiap jenis pemicu. Variabel yang ditandai dengan jenis pemicu tertentu hanya dihasilkan ketika eksekusi pipeline dimulai oleh pemicu itu.

CodeStarSourceConnectionvariabel (Bitbucket Cloud, GitHub, Repositori GitHub Perusahaan, dan GitLab.com)
Kunci variabel Nilai contoh Contoh sintaks variabel Jenis pemicu
AuthorDate 2019-10-29 T03:32:21Z #{SourceVariables.AuthorDate} Semua
AuthorDisplayName Jane Doe #{SourceVariables.AuthorDisplayName} Semua
AuthorEmail jane.doe@example.com #{SourceVariables.AuthorEmail} Semua
AuthorId janedoe #{SourceVariables.AuthorId} Semua
BranchName pengembangan #{SourceVariables.BranchName} Dorong, Tag
CommitId exampleb01f91b31 #{SourceVariables.CommitId} Semua
CommitMessage Memperbaiki bug (ukuran maksimum 100 KB) #{SourceVariables.CommitMessage} Semua
ConnectionArn arn:aws:kode-star-connections:wilayah ::koneksi/account-idconnection-id #{SourceVariables.ConnectionArn} Semua
DestinationBranchName utama #{SourceVariables.DestinationBranchName} Permintaan tarik
FullRepositoryName username/GitHubRepo #{SourceVariables.FullRepositoryName} Semua
ProviderType GitHub #{SourceVariables.ProviderType} Semua
PullRequestId 1 #{SourceVariables.PullRequestId} Permintaan tarik
PullRequestTitle Tambahkan fitur baru #{SourceVariables.PullRequestTitle} Permintaan tarik
SourceBranchName cabang-fitur #{SourceVariables.SourceBranchName} Permintaan tarik
TagName v1.0.0 #{SourceVariables.TagName} Tag

GitHub variabel keluaran tindakan (GitHub (melalui aplikasi OAuth) tindakan)

GitHub variabel (GitHub (melalui aplikasi OAuth) tindakan)
Kunci variabel Nilai contoh Contoh sintaks variabel
AuthorDate 2019-10-29 T03:32:21Z #{SourceVariables.AuthorDate}
BranchName utama #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage

Memperbaiki bug (ukuran maksimum 100 KB)

#{SourceVariables.CommitMessage}
CommitterDate 2019-10-29 T03:32:21Z #{SourceVariables.CommitterDate}
CommitUrl #{SourceVariables.CommitUrl}
RepositoryName milikku GitHubRepo #{SourceVariables.RepositoryName}

Variabel keluaran tindakan S3

Variabel S3
Kunci variabel Nilai contoh Contoh sintaks variabel
ETag contoh28be1c3 #{SourceVariables.ETag}
VersionId Contoh_IUQCV #{SourceVariables.VersionId}

Tindakan dengan tombol variabel yang dikonfigurasi pengguna

Untuk tindakan CodeBuild CloudFormation,, dan Lambda, kunci variabel dikonfigurasi oleh pengguna.

CloudFormation variabel keluaran tindakan

CloudFormation variabel
Kunci variabel Contoh sintaks variabel

Untuk CloudFormation tindakan, variabel dihasilkan dari nilai apa pun yang ditetapkan di Outputs 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:

  • BUAT_PERBARUI

  • UBAH_SET_EKSEKUSI

  • UBAH_SET_GANTI

  • PENGGANTI_PADA_KEGAGALAN

Untuk informasi selengkapnya tentang mode tindakan ini, lihatCloudFormation menyebarkan referensi tindakan. Untuk tutorial yang menunjukkan cara membuat pipeline dengan tindakan CloudFormation penerapan dalam pipeline yang menggunakan variabel CloudFormation keluaran, lihatTutorial: Membuat pipeline yang menggunakan variabel dari AWS CloudFormation tindakan penyebaran.
#{DeployVariables.StackName}

CodeBuild variabel keluaran tindakan

CodeBuild variabel
Kunci variabel Contoh sintaks variabel

Untuk CodeBuild tindakan, variabel dihasilkan dari nilai yang dihasilkan oleh variabel lingkungan yang diekspor. Siapkan variabel CodeBuild lingkungan dengan mengedit CodeBuild tindakan Anda di CodePipeline atau dengan menambahkan variabel lingkungan ke buildspec.

Tambahkan instruksi ke CodeBuild buildspec Anda untuk menambahkan variabel lingkungan di bawah bagian variabel yang diekspor. Lihat env/exported -variable di Panduan AWS CodeBuild Pengguna.

#{BuildVariables.EnvVar}

Variabel keluaran tindakan lambda

Variabel lambda
Kunci variabel Contoh sintaks variabel
Tindakan Lambda akan menghasilkan sebagai variabel semua pasangan kunci-nilai yang disertakan dalam outputVariables bagian permintaan API. PutJobSuccessResult

Untuk tutorial dengan tindakan Lambda yang menggunakan variabel dari tindakan upstream (CodeCommit) dan menghasilkan variabel keluaran, lihat. Tutorial: Menggunakan variabel dengan tindakan panggil Lambda

#{TestVariables.testRunId}