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:
-
Untuk tutorial dengan variabel tingkat pipeline yang dilewatkan pada saat eksekusi pipeline, lihat. Tutorial: Gunakan variabel tingkat pipa
-
Untuk tutorial dengan tindakan Lambda yang menggunakan variabel dari tindakan upstream (CodeCommit) dan menghasilkan variabel keluaran, lihat. Tutorial: Menggunakan variabel dengan tindakan panggil Lambda
-
Untuk tutorial dengan CloudFormation tindakan yang mereferensikan variabel output tumpukan dari CloudFormation tindakan hulu, lihatTutorial: Membuat pipeline yang menggunakan variabel dari AWS CloudFormation tindakan penyebaran.
-
Untuk contoh tindakan persetujuan manual dengan teks pesan yang mereferensikan variabel keluaran yang diselesaikan ke ID CodeCommit komit dan pesan komit, lihatContoh: Gunakan variabel dalam persetujuan manual.
-
Untuk contoh CodeBuild tindakan dengan variabel lingkungan yang diselesaikan ke nama GitHub cabang, lihatContoh: Gunakan BranchName variabel dengan variabel CodeBuild lingkungan.
-
CodeBuild tindakan menghasilkan sebagai variabel semua variabel lingkungan yang diekspor sebagai bagian dari build. Untuk informasi selengkapnya, lihat CodeBuild variabel keluaran tindakan.
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.
Topik
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 mencakup
PipelineExecutionId, 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
outputVariablesbidang 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 adalah
variables. 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 dari
SourceVariables.#{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
namespaceparameter 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.
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
| Penyedia | Kunci variabel | Nilai contoh | Contoh sintaks variabel |
|---|---|---|---|
| Pipeline kode | PipelineExecutionId |
8ABC75F0-FBF8-4F4C-BFContoh | #{codepipeline.PipelineExecutionId} |
Variabel keluaran tindakan 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
| 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
| 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.
| 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)
| 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
| 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.
Topik
CloudFormation variabel keluaran tindakan
| Kunci variabel | Contoh sintaks variabel |
|---|---|
Untuk CloudFormation tindakan, variabel dihasilkan dari nilai apa pun yang ditetapkan di
|
#{DeployVariables.StackName} |
CodeBuild variabel keluaran tindakan
| 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. |
|
Variabel keluaran tindakan 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} |