Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bekerja dengan tipe tindakan
Jenis tindakan adalah tindakan yang telah dikonfigurasi sebelumnya yang Anda buat sebagai penyedia untuk pelanggan dengan menggunakan salah satu model integrasi yang didukung. AWS CodePipeline
Anda dapat meminta, melihat, dan memperbarui jenis tindakan. Jika tipe tindakan dibuat untuk akun Anda sebagai pemilik, Anda dapat menggunakan AWS CLI untuk melihat atau memperbarui properti dan struktur tipe tindakan Anda. Jika Anda adalah penyedia atau pemilik tipe tindakan, pelanggan Anda dapat memilih tindakan dan menambahkannya ke saluran pipa mereka setelah tersedia di CodePipeline.
catatan
Anda membuat tindakan dengan custom
di owner
lapangan untuk dijalankan dengan pekerja kerja. Anda tidak membuatnya dengan model integrasi. Untuk informasi tentang tindakan kustom, lihatBuat dan tambahkan tindakan kustom di CodePipeline.
Komponen tipe aksi
Komponen berikut membentuk tipe tindakan.
-
ID tipe tindakan - ID terdiri dari kategori, pemilik, penyedia, dan versi. Contoh berikut menunjukkan ID tipe tindakan dengan pemilik
ThirdParty
, kategoriTest
, penyedia bernamaTestProvider
, dan versi1
.{ "Category": "Test", "Owner": "ThirdParty", "Provider": "TestProvider", "Version": "1" },
-
Konfigurasi pelaksana — Model integrasi, atau mesin tindakan, yang ditentukan saat tindakan dibuat. Saat Anda menentukan eksekutor untuk tipe tindakan, Anda memilih salah satu dari dua jenis:
-
Lambda: Pemilik tipe tindakan menulis integrasi sebagai fungsi Lambda, yang dipanggil oleh CodePipeline setiap kali ada pekerjaan yang tersedia untuk tindakan tersebut.
-
JobWorker: Pemilik tipe tindakan menulis integrasi sebagai pekerja kerja yang melakukan polling untuk pekerjaan yang tersedia di jaringan pipa pelanggan. Pekerja pekerjaan kemudian menjalankan pekerjaan dan mengirimkan hasil pekerjaan kembali CodePipeline dengan menggunakan CodePipeline API.
catatan
Model integrasi pekerja kerja bukanlah model integrasi yang disukai.
-
-
Artefak input dan output: Batas artefak yang ditentukan oleh pemilik tipe tindakan untuk pelanggan tindakan.
-
Izin: Strategi izin yang menunjuk pelanggan yang dapat mengakses jenis tindakan pihak ketiga. Strategi izin yang tersedia bergantung pada model integrasi yang dipilih untuk jenis tindakan.
-
URL: Tautan mendalam ke sumber daya yang dapat berinteraksi dengan pelanggan, seperti halaman konfigurasi pemilik tipe tindakan.
Topik
Meminta tipe tindakan
Jika jenis CodePipeline tindakan baru diminta oleh penyedia pihak ketiga, tipe tindakan akan dibuat untuk pemilik tipe tindakan CodePipeline, dan pemilik dapat mengelola dan melihat jenis tindakan.
Jenis tindakan dapat berupa tindakan pribadi atau publik. Ketika jenis tindakan Anda dibuat, itu bersifat pribadi. Untuk meminta jenis tindakan diubah menjadi tindakan publik, hubungi tim CodePipeline layanan.
Sebelum membuat file definisi tindakan, sumber daya pelaksana, dan permintaan tipe tindakan untuk CodePipeline tim, Anda harus memilih model integrasi.
Langkah 1: Pilih model integrasi Anda
Pilih model integrasi Anda dan kemudian buat konfigurasi untuk model itu. Setelah Anda memilih model integrasi, Anda harus mengonfigurasi sumber daya integrasi Anda.
-
Untuk model integrasi Lambda, Anda membuat fungsi Lambda dan menambahkan izin. Tambahkan izin ke fungsi Lambda integrator Anda untuk menyediakan CodePipeline layanan dengan izin untuk memanggilnya menggunakan prinsip layanan:. CodePipeline
codepipeline.amazonaws.com
Izin dapat ditambahkan menggunakan AWS CloudFormation atau baris perintah.-
Contoh untuk menambahkan izin menggunakan AWS CloudFormation:
CodePipelineLambdaBasedActionPermission: Type: 'AWS::Lambda::Permission' Properties: Action: 'lambda:invokeFunction' FunctionName: {"Fn::Sub": "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:
function-name
"} Principal: codepipeline.amazonaws.com
-
-
Untuk model integrasi pekerja pekerjaan, Anda membuat integrasi dengan daftar akun yang diizinkan tempat pekerja pekerjaan melakukan polling untuk pekerjaan dengan CodePipeline API.
Langkah 2: Buat file definisi tipe tindakan
Anda menentukan tipe tindakan dalam file definisi tipe tindakan menggunakan JSON. Dalam file, Anda menyertakan kategori tindakan, model integrasi yang digunakan untuk mengelola tipe tindakan, dan properti konfigurasi.
catatan
Setelah membuat tindakan publik, Anda tidak dapat mengubah properti tipe tindakan di bawah properties
dari optional
kerequired
. Anda juga tidak dapat mengubahowner
.
Untuk informasi selengkapnya tentang parameter file definisi tipe tindakan, lihat ActionTypeDeclarationdan UpdateActionTypedi Referensi CodePipeline API.
Ada delapan bagian dalam file definisi tipe tindakan:
-
description
: Deskripsi untuk jenis tindakan yang akan diperbarui. -
executor
: Informasi tentang pelaksana untuk tipe tindakan yang dibuat dengan model integrasi yang didukung, baikLambda
ataujob worker
. Anda hanya dapat memberikan salah satujobWorkerExecutorConfiguration
ataulambdaExecutorConfiguration
, berdasarkan jenis eksekutor Anda.-
configuration
: Sumber daya untuk konfigurasi tipe tindakan, berdasarkan model integrasi yang dipilih. Untuk model integrasi Lambda, gunakan fungsi Lambda ARN. Untuk model integrasi pekerja kerja, gunakan akun atau daftar akun dari tempat pekerja kerja berjalan. -
jobTimeout
: Batas waktu dalam hitungan detik untuk pekerjaan itu. Eksekusi tindakan dapat terdiri dari beberapa pekerjaan. Ini adalah batas waktu untuk satu pekerjaan, dan bukan untuk seluruh eksekusi tindakan.catatan
Untuk model integrasi Lambda, batas waktu maksimum adalah 15 menit.
-
policyStatementsTemplate
: Pernyataan kebijakan yang menentukan izin di akun CodePipeline pelanggan yang diperlukan untuk berhasil menjalankan eksekusi tindakan. -
type
: Model integrasi yang digunakan untuk membuat dan memperbarui tipe tindakan, baikLambda
atauJobWorker
.
-
-
id
: Kategori, pemilik, penyedia, dan ID versi untuk tipe tindakan:-
category
: Jenis tindakan dapat diambil dalam tahap: Sumber, Bangun, Deploy, Uji, Invoke, atau Persetujuan. -
provider
: Penyedia tipe tindakan yang dipanggil, seperti perusahaan penyedia atau nama produk. Nama penyedia diberikan saat tipe tindakan dibuat. -
owner
: Pencipta tipe tindakan yang disebut:AWS
atauThirdParty
. -
version
: String yang digunakan untuk versi tipe tindakan. Untuk versi pertama, atur nomor versi ke 1.
-
-
inputArtifactDetails
: Jumlah artefak yang diharapkan dari tahap sebelumnya dalam pipa. -
outputArtifactDetails
: Jumlah artefak yang diharapkan dari hasil dari tahap tipe aksi. -
permissions
: Detail mengidentifikasi akun dengan izin untuk menggunakan tipe tindakan. -
properties
: Parameter yang diperlukan untuk menyelesaikan tugas proyek Anda.-
description
: Deskripsi properti yang ditampilkan kepada pengguna. -
optional
: Apakah properti konfigurasi adalah opsional. -
noEcho
: Apakah nilai bidang yang dimasukkan oleh pelanggan dihilangkan dari log. Jikatrue
, maka nilainya disunting saat dikembalikan dengan permintaan GetPipeline API. -
key
: Apakah properti konfigurasi adalah kunci. -
queryable
: Apakah properti tersebut digunakan dengan polling. Tipe tindakan dapat memiliki hingga satu properti yang dapat dikueri. Jika ada, properti tersebut harus diperlukan dan bukan rahasia. -
name
: Nama properti yang ditampilkan kepada pengguna.
-
-
urls
: Daftar URL CodePipeline ditampilkan kepada pengguna Anda.-
entityUrlTemplate
: URL ke sumber daya eksternal untuk jenis tindakan, seperti halaman konfigurasi. -
executionUrlTemplate
: URL ke detail untuk menjalankan tindakan terbaru. -
revisionUrlTemplate
: URL ditampilkan di CodePipeline konsol ke halaman tempat pelanggan dapat memperbarui atau mengubah konfigurasi tindakan eksternal. -
thirdPartyConfigurationUrl
URL halaman tempat pengguna dapat mendaftar untuk layanan eksternal dan melakukan konfigurasi awal tindakan yang disediakan oleh layanan tersebut.
-
Kode berikut menunjukkan contoh file definisi tipe tindakan.
{ "actionType": { "description": "string", "executor": { "configuration": { "jobWorkerExecutorConfiguration": { "pollingAccounts": [ "string" ], "pollingServicePrincipals": [ "string" ] }, "lambdaExecutorConfiguration": { "lambdaFunctionArn": "string" } }, "jobTimeout": number, "policyStatementsTemplate": "string", "type": "string" }, "id": { "category": "string", "owner": "string", "provider": "string", "version": "string" }, "inputArtifactDetails": { "maximumCount": number, "minimumCount": number }, "outputArtifactDetails": { "maximumCount": number, "minimumCount": number }, "permissions": { "allowedAccounts": [ "string" ] }, "properties": [ { "description": "string", "key": boolean, "name": "string", "noEcho": boolean, "optional": boolean, "queryable": boolean } ], "urls": { "configurationUrl": "string", "entityUrlTemplate": "string", "executionUrlTemplate": "string", "revisionUrlTemplate": "string" } } }
Langkah 3: Daftarkan Integrasi Anda dengan CodePipeline
Untuk mendaftarkan jenis tindakan Anda CodePipeline, Anda menghubungi tim CodePipeline layanan dengan permintaan Anda.
Tim CodePipeline layanan mendaftarkan integrasi tipe tindakan baru dengan membuat perubahan dalam basis kode layanan. CodePipeline mencatat dua tindakan baru: tindakan publik dan tindakan pribadi. Anda menggunakan tindakan pribadi untuk pengujian, dan kemudian ketika siap, Anda mengaktifkan tindakan publik untuk melayani lalu lintas pelanggan.
Untuk mendaftarkan permintaan integrasi Lambda
-
Kirim permintaan ke tim CodePipeline layanan menggunakan formulir berikut.
This issue will track the onboarding of [Name] in CodePipeline. [Contact engineer] will be the primary point of contact for this integration. Name of the action type as you want it to appear to customers:
Example.com Testing
Initial onboard checklist: 1. Attach an action type definition file in JSON format. This includes the schema for the action type 2. A list of test accounts for the allowlist which can access the new action type [{account, account_name}] 3. The Lambda function ARN 4. List of Wilayah AWS where your action will be available 5. Will this be available as a public action?
Untuk mendaftarkan permintaan integrasi pekerja kerja
-
Kirim permintaan ke tim CodePipeline layanan menggunakan formulir berikut.
This issue will track the onboarding of [Name] in CodePipeline. [Contact engineer] will be the primary point of contact for this integration. Name of the action type as you want it to appear to customers:
Example.com Testing
Initial onboard checklist: 1. Attach an action type definition file in JSON format. This includes the schema for the action type. 2. A list of test accounts for the allowlist which can access the new action type [{account, account_name}] 3. URL information: Website URL:https://www.example.com/%TestThirdPartyName%/%TestVersionNumber%
Example URL pattern where customers will be able to review their configuration information for the action:https://www.example.com/%TestThirdPartyName%/%customer-ID%/%CustomerActionConfiguration%
Example runtime URL pattern:https://www.example.com/%TestThirdPartyName%/%customer-ID%/%TestRunId%
4. List of Wilayah AWS where your action will be available 5. Will this be available as a public action?
Langkah 4: Aktifkan Integrasi Baru Anda
Hubungi tim CodePipeline layanan ketika Anda siap untuk menggunakan integrasi baru secara publik.
Tambahkan tipe tindakan yang tersedia ke pipeline (konsol)
Anda menambahkan tipe tindakan Anda ke pipeline sehingga Anda dapat mengujinya. Anda dapat melakukan ini dengan membuat pipeline baru atau mengedit yang sudah ada.
catatan
Jika jenis tindakan Anda adalah tindakan kategori sumber, build, atau deploy, Anda dapat menambahkannya dengan membuat pipeline. Jika tipe tindakan Anda ada dalam kategori pengujian, Anda harus menambahkannya dengan mengedit pipeline yang ada.
Untuk menambahkan tipe tindakan ke pipeline yang ada dari CodePipeline konsol
Masuk ke AWS Management Console dan buka CodePipeline konsol di http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Dalam daftar pipeline, pilih pipeline tempat Anda ingin menambahkan tipe tindakan.
-
Pada halaman tampilan ringkasan pipeline, pilih Edit.
-
Pilih untuk mengedit panggung. Pada tahap di mana Anda ingin menambahkan tipe tindakan Anda, pilih Tambahkan grup tindakan. Halaman Edit tindakan ditampilkan.
-
Pada halaman Edit tindakan, dalam nama Tindakan, masukkan nama untuk tindakan tersebut. Ini adalah nama yang ditampilkan untuk panggung di pipeline Anda.
-
Di Penyedia tindakan, pilih jenis tindakan Anda dari daftar.
Perhatikan bahwa nilai dalam daftar didasarkan pada yang
provider
ditentukan dalam file definisi tipe tindakan. -
Di artefak Input, masukkan nama artefak dalam format ini:
Artifactname
::FileName
Perhatikan bahwa jumlah minimum dan maksimum yang diizinkan ditentukan berdasarkan yang
inputArtifactDetails
ditentukan dalam file definisi tipe tindakan. -
Pilih Connect to<Action_Name>.
Jendela browser terbuka dan terhubung ke situs web yang telah Anda buat untuk jenis tindakan Anda.
-
Masuk ke situs web Anda sebagai pelanggan dan selesaikan langkah-langkah yang diambil pelanggan untuk menggunakan jenis tindakan Anda. Langkah-langkah Anda akan bervariasi tergantung pada kategori tindakan, situs web, dan konfigurasi Anda, tetapi biasanya mencakup tindakan penyelesaian yang mengembalikan pelanggan ke halaman tindakan Edit.
-
Di halaman CodePipeline Edit tindakan, bidang konfigurasi tambahan untuk tampilan tindakan. Bidang yang ditampilkan adalah properti konfigurasi yang Anda tentukan dalam file definisi tindakan. Masukkan informasi di bidang yang disesuaikan untuk jenis tindakan Anda.
Misalnya, jika file definisi tindakan menetapkan properti bernama
Host
, maka bidang dengan label Host ditampilkan di halaman Edit tindakan untuk tindakan Anda. -
Dalam artefak Output, masukkan nama artefak dalam format ini:
Artifactname
::FileName
Perhatikan bahwa jumlah minimum dan maksimum yang diizinkan ditentukan berdasarkan yang
outputArtifactDetails
ditentukan dalam file definisi tipe tindakan. -
Pilih Selesai untuk kembali ke halaman detail pipeline.
catatan
Pelanggan Anda secara opsional dapat menggunakan CLI untuk menambahkan tipe tindakan ke pipeline mereka.
-
Untuk menguji tindakan Anda, lakukan perubahan ke sumber yang ditentukan dalam tahap sumber pipeline atau ikuti langkah-langkah dalam Memulai Pipeline secara Manual.
Untuk membuat pipeline dengan tipe tindakan Anda, ikuti langkah-langkahnya Buat pipeline, tahapan, dan tindakan dan pilih jenis tindakan Anda dari tahapan sebanyak yang akan Anda uji.
Melihat tipe tindakan
Anda dapat menggunakan CLI untuk melihat tipe tindakan Anda. Gunakan get-action-type perintah untuk melihat jenis tindakan yang telah dibuat menggunakan model integrasi.
Untuk melihat tipe tindakan
-
Buat file JSON input dan beri nama file
file.json
. Tambahkan ID tipe tindakan Anda dalam format JSON seperti yang ditunjukkan pada contoh berikut.{ "category": "Test", "owner": "ThirdParty", "provider": "TestProvider", "version": "1" }
-
Di jendela terminal atau di baris perintah, jalankan get-action-type perintah.
aws codepipeline get-action-type --cli-input-json file://file.json
Perintah ini mengembalikan output definisi tindakan untuk tipe tindakan. Contoh ini menunjukkan tipe tindakan yang dibuat dengan model integrasi Lambda.
{ "actionType": { "executor": { "configuration": { "lambdaExecutorConfiguration": { "lambdaFunctionArn": "arn:aws:lambda:us-west-2:<account-id>:function:my-function" } }, "type": "Lambda" }, "id": { "category": "Test", "owner": "ThirdParty", "provider": "TestProvider", "version": "1" }, "inputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "outputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "permissions": { "allowedAccounts": [ "<account-id>" ] }, "properties": [] } }
Memperbarui jenis tindakan
Anda dapat menggunakan CLI untuk mengedit jenis tindakan yang dibuat dengan model integrasi.
Untuk jenis tindakan publik, Anda tidak dapat memperbarui pemilik, Anda tidak dapat mengubah properti opsional ke required, dan Anda hanya dapat menambahkan properti opsional baru.
-
Gunakan
get-action-type
perintah untuk mendapatkan struktur untuk tipe tindakan Anda. Salin strukturnya. -
Buat file JSON input dan beri nama.
action.json
Tempelkan struktur tipe tindakan yang Anda salin pada langkah sebelumnya ke dalamnya. Perbarui parameter apa pun yang ingin Anda ubah. Anda juga dapat menambahkan parameter opsional.Untuk informasi selengkapnya tentang parameter untuk file input, lihat deskripsi file definisi tindakan diLangkah 2: Buat file definisi tipe tindakan.
Contoh berikut menunjukkan cara memperbarui contoh jenis tindakan yang dibuat dengan model integrasi Lambda. Contoh ini membuat perubahan berikut:
-
Mengubah
provider
nama menjadiTestProvider1
. -
Tambahkan batas waktu kerja 900 detik.
-
Menambahkan properti konfigurasi tindakan bernama
Host
yang ditampilkan ke pelanggan menggunakan tindakan.{ "actionType": { "executor": { "configuration": { "lambdaExecutorConfiguration": { "lambdaFunctionArn": "arn:aws:lambda:us-west-2:<account-id>:function:my-function" } }, "type": "Lambda",
"jobTimeout": 900
}, "id": { "category": "Test", "owner": "ThirdParty", "provider": "TestProvider1
", "version": "1" }, "inputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "outputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "permissions": { "allowedAccounts": [ "account-id" ] },"properties": { "description": "
} }Owned build action parameter description
", "optional": true, "noEcho": false, "key": true, "queryable": false, "name": "Host
" }
-
-
Di terminal atau baris perintah, jalankan update-action-type perintah
aws codepipeline update-action-type --cli-input-json file://action.json
Perintah ini mengembalikan output tipe tindakan agar sesuai dengan parameter yang diperbarui.