View a markdown version of this page

Bekerja dengan jenis tindakan - AWS CodePipeline

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

Bekerja dengan jenis tindakan

Jenis tindakan adalah tindakan yang telah dikonfigurasi sebelumnya yang Anda buat sebagai penyedia untuk pelanggan dengan menggunakan salah satu model integrasi yang didukung di AWS CodePipeline.

Anda dapat meminta, melihat, dan memperbarui jenis tindakan. Jika jenis tindakan dibuat untuk akun Anda sebagai pemilik, Anda dapat menggunakan AWS CLI untuk melihat atau memperbarui properti dan struktur jenis tindakan Anda. Jika Anda adalah penyedia atau pemilik jenis tindakan, pelanggan Anda dapat memilih tindakan dan menambahkannya ke saluran mereka setelah tersedia di CodePipeline.

catatan

Anda membuat tindakan dengan custom di owner lapangan untuk dijalankan dengan pekerja pekerjaan. Anda tidak membuatnya dengan model integrasi. Untuk informasi tentang tindakan kustom, lihatMembuat dan menambahkan tindakan kustom di CodePipeline.

Komponen tipe tindakan

Komponen berikut membentuk tipe tindakan.

  • ID tipe tindakan ID terdiri dari kategori, pemilik, penyedia, dan versi. Contoh berikut menunjukkan ID tipe tindakan dengan pemilikThirdParty, kategoriTest, penyedia bernamaTestProvider, dan versi1.

    { "Category": "Test", "Owner": "ThirdParty", "Provider": "TestProvider", "Version": "1" },
  • Konfigurasi eksekutor — Model integrasi, atau mesin tindakan, ditentukan saat tindakan dibuat. Ketika Anda menentukan eksekutor untuk jenis 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 pekerjaan yang melakukan survei untuk pekerjaan yang tersedia di pipeline 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: Batasan untuk artefak yang ditetapkan pemilik tipe tindakan untuk pelanggan tindakan.

  • Iz in: 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.

Minta jenis tindakan

Ketika jenis CodePipeline tindakan baru diminta oleh penyedia pihak ketiga, jenis tindakan 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 jenis 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 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 integrator Lambda Anda untuk menyediakan CodePipeline layanan dengan izin untuk memanggilnya menggunakan prinsip CodePipeline layanan:. codepipeline.amazonaws.com Izin dapat ditambahkan menggunakan CloudFormation atau baris perintah.

    • Contoh untuk menambahkan izin menggunakan 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
    • Dokumentasi untuk baris perintah

  • Untuk model integrasi pekerja pekerjaan, Anda membuat integrasi dengan daftar akun yang diizinkan di mana 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 jenis 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 ActionTypeDeclaration dan UpdateActionType di Refer CodePipeline ensi API.

Ada delapan bagian dalam file definisi tipe tindakan:

  • description: Deskripsi untuk jenis tindakan yang akan diperbarui.

  • executor: Informasi tentang pelaksana untuk jenis tindakan yang dibuat dengan model integrasi yang didukung, baik Lambda ataujob worker. Anda hanya dapat memberikan salah satu jobWorkerExecutorConfiguration ataulambdaExecutorConfiguration, berdasarkan jenis pelaksana Anda.

    • configuration: Sumber daya untuk konfigurasi jenis tindakan, berdasarkan model integrasi yang dipilih. Untuk model integrasi Lambda, gunakan fungsi Lambda ARN. Untuk model integrasi pekerja pekerjaan, gunakan akun atau daftar akun tempat pekerja pekerjaan berjalan.

    • jobTimeout: Waktu tunggu dalam hitungan detik untuk pekerjaan. 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 menjalankan eksekusi tindakan dengan sukses.

    • type: Model integrasi yang digunakan untuk membuat dan memperbarui jenis tindakan, baik Lambda atauJobWorker.

  • id: Kategori, pemilik, penyedia, dan ID versi untuk jenis tindakan:

    • category: Jenis tindakan dapat diambil dalam tahap: Source, Build, Deploy, Test, Invoke, atau Approval.

    • provider: Penyedia jenis tindakan yang dipanggil, seperti perusahaan penyedia atau nama produk. Nama penyedia diberikan saat jenis tindakan dibuat.

    • owner: Pembuat jenis 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 pipeline.

  • outputArtifactDetails: Jumlah artefak yang diharapkan dari hasil dari tahap tipe tindakan.

  • permissions: Detail mengidentifikasi akun dengan izin untuk menggunakan jenis tindakan.

  • properties: Parameter yang diperlukan untuk menyelesaikan tugas proyek Anda.

    • description: Deskripsi properti yang ditampilkan kepada pengguna.

    • optional: Apakah properti konfigurasi 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 digunakan dengan pemungutan suara. 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 yang ditampilkan CodePipeline 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 mendaftarkan 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 pekerjaan
  • 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

Hubun CodePipeline gi tim layanan saat Anda siap menggunakan integrasi baru secara publik.

Menambahkan jenis tindakan yang tersedia ke pipeline (konsol)

Anda menambahkan jenis 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 penerapan, Anda dapat menambahkannya dengan membuat pipeline. Jika jenis tindakan Anda ada dalam kategori pengujian, Anda harus menambahkannya dengan mengedit pipeline yang ada.

Untuk menambahkan jenis tindakan Anda ke pipeline yang ada dari CodePipeline konsol
  1. Masuk ke Konsol Manajemen AWS dan buka CodePipeline konsol di http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Dalam daftar pipeline, pilih pipeline tempat Anda ingin menambahkan jenis tindakan.

  3. Pada halaman tampilan ringkasan pipeline, pilih Edit.

  4. Pilih untuk mengedit panggung. Pada tahap di mana Anda ingin menambahkan jenis tindakan, pilih Tambahkan grup tindakan. Halaman tindakan Edit ditampilkan.

  5. Pada halaman Edit tindakan, di Nama tindakan, masukkan nama untuk tindakan. Ini adalah nama yang ditampilkan untuk panggung dalam pipeline Anda.

  6. Di Penyedia tindakan, pilih jenis tindakan Anda dari daftar.

    Perhatikan bahwa nilai dalam daftar didasarkan pada yang provider ditentukan dalam file definisi tipe tindakan.

  7. Di Input artefak, 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.

  8. Pilih Hubungkan ke < Action_Name >.

    Jendela browser terbuka dan terhubung ke situs web yang telah Anda buat untuk jenis tindakan Anda.

  9. 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 menyertakan tindakan penyelesaian yang mengembalikan pelanggan ke halaman tindakan Edit.

  10. 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 menentukan properti bernamaHost, maka bidang dengan label Host ditampilkan di halaman Edit tindakan untuk tindakan Anda.

  11. Di artefak keluaran, 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.

  12. Pilih Sel esai untuk kembali ke halaman detail pipeline.

    catatan

    Pelanggan Anda dapat menggunakan CLI secara opsional untuk menambahkan jenis tindakan ke pipeline mereka.

  13. Untuk menguji tindakan Anda, lakukan perubahan ke sumber yang ditentukan di tahap sumber pipeline atau ikuti langkah-langkah di Memulai Pipeline secara Manual.

Untuk membuat pipeline dengan jenis tindakan Anda, ikuti langkah-langkah di Buat pipeline, tahapan, dan tindakan dan pilih jenis tindakan Anda dari sebanyak mungkin tahapan yang akan Anda uji.

Melihat jenis tindakan

Anda dapat menggunakan CLI untuk melihat jenis tindakan Anda. Gunakan get-action-type perintah untuk melihat jenis tindakan yang telah dibuat menggunakan model integrasi.

Untuk melihat jenis tindakan
  1. Buat file input JSON dan beri nama file tersebutfile.json. Tambahkan ID tipe tindakan Anda dalam format JSON seperti yang ditunjukkan pada contoh berikut.

    { "category": "Test", "owner": "ThirdParty", "provider": "TestProvider", "version": "1" }
  2. 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 jenis tindakan. Contoh ini menunjukkan jenis 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 menjadi wajib, dan Anda hanya dapat menambahkan properti opsional baru.

  1. Gunakan get-action-type perintah untuk mendapatkan struktur untuk jenis tindakan Anda. Salin strukturnya.

  2. Buat file JSON input dan beri namaaction.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 tunggu pekerjaan 900 detik.

    • Menambahkan properti konfigurasi tindakan bernama Host yang ditampilkan kepada 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" } } }
  3. 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.