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 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 ID komit.
penting
Saat melewati parameter rahasia, jangan masukkan nilai 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 menggunakan AWS Secrets Manager untuk menyimpan rahasia.
Untuk melihat step-by-step contoh penggunaan variabel:
-
Untuk tutorial dengan variabel tingkat pipa 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 panggilan Lambda
-
Untuk tutorial dengan AWS CloudFormation tindakan yang mereferensikan variabel keluaran tumpukan dari CloudFormation tindakan upstream, lihatTutorial: Buat pipeline yang menggunakan variabel dari AWS CloudFormation tindakan penerapan.
-
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 menyelesaikan ke nama GitHub cabang, lihat. Contoh: 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 aksi.
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 utama yang terkait dengan variabel dan ruang nama.
Variabel
Variabel adalah pasangan nilai kunci yang dapat digunakan untuk mengonfigurasi tindakan secara dinamis di pipeline Anda. Saat ini ada tiga cara variabel-variabel ini tersedia:
-
Ada satu set variabel yang secara implisit tersedia pada awal setiap eksekusi pipeline. Set ini saat ini termasuk
PipelineExecutionId
, ID dari eksekusi pipeline saat ini. -
Variabel pada tingkat pipa didefinisikan ketika pipa dibuat dan diselesaikan pada waktu proses pipa.
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 ListActionExecutionsAPI. Untuk daftar nama kunci yang tersedia menurut penyedia tindakan, lihatVariabel 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 satu set 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 ke kumpulan variabel implisit yang tersedia di awal setiap eksekusi pipeline. Namespace ini adalah
codepipeline
. Contoh referensi variabel:#{codepipeline.PipelineExecutionId}
-
Variabel namespace pada tingkat pipeline
Ini adalah namespace yang ditugaskan ke 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 tindakan. Semua variabel yang dihasilkan oleh aksi 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 pada 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 pipa, Anda dapat meneruskan input dinamis ke tindakan dalam pipeline. Anda dapat memigrasikan pipeline berparameter ke CodePipeline tanpa harus mempertahankan versi 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 saat 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 deployment. Misalnya, untuk pipeline dengan CodeCommit repositori, penerapan dari cabang tertentu dan lingkungan penyebaran target dapat dilakukan dengan CodeBuild dan CodeDeploy parameter diteruskan pada tingkat pipa.
Mengkonfigurasi variabel
Anda dapat mengonfigurasi variabel di tingkat pipa atau tingkat tindakan dalam struktur pipa.
Mengkonfigurasi variabel di tingkat pipa
Anda dapat menambahkan satu atau lebih variabel di tingkat pipa. Anda dapat mereferensikan nilai ini dalam konfigurasi CodePipeline tindakan. Anda dapat menambahkan nama variabel, nilai default, dan deskripsi saat membuat pipeline. Variabel diselesaikan pada saat eksekusi.
catatan
Jika nilai default tidak didefinisikan untuk variabel pada tingkat pipa, variabel dianggap sebagai 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 pipa. Dalam contoh berikut, variabel Variable1
memiliki nilaiValue1
.
"variables": [ { "name": "Variable1", "defaultValue": "Value1", "description": "description" } ]
Untuk contoh dalam JSON struktur pipa, lihatBuat pipeline, tahapan, dan tindakan.
Untuk tutorial dengan variabel tingkat pipa yang dilewatkan pada saat eksekusi pipeline, lihat. Tutorial: Gunakan variabel tingkat pipa
Perhatikan bahwa menggunakan variabel tingkat pipa 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 baik dengan:
-
Pada halaman Edit tindakan konsol, masukkan namespace di Namespace Variable.
-
Memasukkan namespace di bidang
namespace
parameter dalam struktur JSON pipa.
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 pipa JSON
Dalam contoh ini, bidang konfigurasi tindakan build menunjukkan variabel lingkungan yang diperbarui pada eksekusi tindakan. Contoh menentukan namespace dan variabel untuk eksekusi ID dengan dan namespace #{codepipeline.PipelineExecutionId}
dan variabel untuk komit 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, 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 panduan pembuatan pipeline, konsol akan 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 referensi variabel yang dihasilkan oleh suatu tindakan, tindakan referensi harus terjadi setelah tindakan yang menghasilkan variabel. Ini berarti berada di tahap selanjutnya dari tindakan yang menghasilkan variabel, atau pada tahap yang sama tetapi pada urutan lari yang lebih tinggi.
Variabel tersedia untuk tindakan pipeline
Penyedia tindakan menentukan variabel mana yang dapat dihasilkan oleh tindakan.
Untuk step-by-step prosedur 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 pipeline CodePipeline yang dihasilkan yang berisi data tentang eksekusi, seperti ID rilis pipeline. Variabel-variabel ini dapat dikonsumsi oleh tindakan apa pun dalam pipeline.
Topik
CodePipeline variabel ID eksekusi
Penyedia | Kunci variabel | Nilai contoh | Contoh sintaks variabel |
---|---|---|---|
codepipeline | PipelineExecutionId |
8abc75f0-fbf8-4f4c-bf EXAMPLE | #{codepipeline.PipelineExecutionId} |
Variabel keluaran ECR tindakan Amazon
Kunci variabel | Nilai contoh | Contoh sintaks variabel |
---|---|---|
ImageDigest |
sha256: EXAMPLE1122334455 | #{SourceVariables.ImageDigest} |
ImageTag |
terbaru | #{SourceVariables.ImageTag} |
ImageURI |
11111 EXAMPLE .dkr. ecr.us-west-2.amazonaws.com /ecs-repo:latest | #{SourceVariables.ImageURI} |
RegistryId |
EXAMPLE12233 | #{SourceVariables.RegistryId} |
RepositoryName |
my-image-repo | #{SourceVariables.RepositoryName} |
AWS CloudFormation StackSets variabel keluaran aksi
Kunci variabel | Nilai contoh | Contoh sintaks variabel |
---|---|---|
OperationId |
11111111-2bbb-111-2bbb-11111contoh | #{DeployVariables.OperationId} |
StackSetId |
set tumpukan saya:1111aaaa-1111-2222-2bbb-11111contoh | #{DeployVariables.StackSetId} |
CodeCommit variabel keluaran aksi
Kunci variabel | Nilai contoh | Contoh sintaks variabel |
---|---|---|
AuthorDate |
2019-10-29T 03:32:21 Z | #{SourceVariables.AuthorDate} |
BranchName |
Pengembangan | #{SourceVariables.BranchName} |
CommitId |
contoh01f91b31 |
#{SourceVariables.CommitId} |
CommitMessage |
Memperbaiki bug (ukuran maksimum 100 KB) | #{SourceVariables.CommitMessage} |
CommitterDate |
2019-10-29T 03:32:21 Z | #{SourceVariables.CommitterDate} |
RepositoryName |
myCodeCommitRepo | #{SourceVariables.RepositoryName} |
CodeStarSourceConnection variabel keluaran aksi
Kunci variabel | Nilai contoh | Contoh sintaks variabel |
---|---|---|
AuthorDate |
2019-10-29T 03:32:21 Z | #{SourceVariables.AuthorDate} |
BranchName |
Pengembangan | #{SourceVariables.BranchName} |
CommitId |
contoh01f91b31 |
#{SourceVariables.CommitId} |
CommitMessage |
Memperbaiki bug (ukuran maksimum 100 KB) | #{SourceVariables.CommitMessage} |
ConnectionArn |
arn:aws:codestar-koneksi:wilayah:account-id :koneksi/connection-id |
#{SourceVariables.ConnectionArn} |
FullRepositoryName |
nama pengguna/ GitHubRepo | #{SourceVariables.FullRepositoryName} |
GitHub variabel keluaran tindakan (versi GitHub tindakan 1)
Kunci variabel | Nilai contoh | Contoh sintaks variabel |
---|---|---|
AuthorDate |
2019-10-29T 03:32:21 Z | #{SourceVariables.AuthorDate} |
BranchName |
utama | #{SourceVariables.BranchName} |
CommitId |
contoh01f91b31 |
#{SourceVariables.CommitId} |
CommitMessage |
Memperbaiki bug (ukuran maksimum 100 KB) |
#{SourceVariables.CommitMessage} |
CommitterDate |
2019-10-29T 03:32:21 Z | #{SourceVariables.CommitterDate} |
CommitUrl |
#{SourceVariables.CommitUrl} |
|
RepositoryName |
myGitHubRepo | #{SourceVariables.RepositoryName} |
Variabel keluaran aksi S3
Kunci variabel | Nilai contoh | Contoh sintaks variabel |
---|---|---|
ETag |
contoh28be1c3 | #{SourceVariables.ETag} |
VersionId |
exampleta_ IUQCv | #{SourceVariables.VersionId} |
Tindakan dengan kunci variabel yang dikonfigurasi pengguna
Untuk CodeBuild, AWS CloudFormation, dan tindakan Lambda, kunci variabel dikonfigurasi oleh pengguna.
Topik
CloudFormation variabel keluaran aksi
Kunci variabel | Contoh sintaks variabel |
---|---|
Untuk AWS CloudFormation tindakan, variabel dihasilkan dari nilai apa pun yang ditunjuk di
|
#{DeployVariables.StackName} |
CodeBuild variabel keluaran aksi
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 spesifikasi build. Tambahkan instruksi ke spesifikasi CodeBuild build Anda untuk menambahkan variabel lingkungan di bawah bagian variabel yang diekspor. Lihat env/exported-variable di Panduan Pengguna.AWS CodeBuild |
|
Variabel keluaran aksi Lambda
Kunci variabel | Contoh sintaks variabel |
---|---|
Tindakan Lambda akan menghasilkan sebagai variabel semua pasangan kunci-nilai yang disertakan dalam outputVariables bagian permintaan. PutJobSuccessResult API Untuk tutorial dengan tindakan Lambda yang menggunakan variabel dari tindakan upstream (CodeCommit) dan menghasilkan variabel keluaran, lihat. Tutorial: Menggunakan variabel dengan tindakan panggilan Lambda |
#{TestVariables.testRunId} |