View a markdown version of this page

AWS Lambda memanggil referensi tindakan - AWS CodePipeline

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

AWS Lambda memanggil referensi tindakan

Memungkinkan Anda menjalankan fungsi Lambda sebagai tindakan dalam pipeline Anda. Menggunakan objek peristiwa yang merupakan input ke fungsi ini, fungsi memiliki akses ke konfigurasi tindakan, lokasi artefak input, lokasi artefak keluaran, dan informasi lain yang diperlukan untuk mengakses artefak. Untuk contoh peristiwa yang diteruskan ke fungsi panggil Lambda, lihat. Contoh peristiwa JSON Sebagai bagian dari implementasi fungsi Lambda, harus ada panggilan ke PutJobSuccessResult API atauPutJobFailureResult API. Jika tidak, eksekusi tindakan ini terhenti sampai waktu tindakan habis. Jika Anda menentukan artefak keluaran untuk tindakan, artefak tersebut harus diunggah ke bucket S3 sebagai bagian dari implementasi fungsi.

penting

Jangan mencatat peristiwa JSON yang CodePipeline dikirim ke Lambda karena ini dapat mengakibatkan kredenSIAL pengguna masuk ke Log CloudWatch . CodePipeline Peran menggunakan peristiwa JSON untuk meneruskan kredenSIAL sementara ke Lambda di artifactCredentials lapangan. Untuk contoh acara, lihatContoh peristiwa JSON.

Tipe tindakan

  • Kategori: Invoke

  • Pemilik: AWS

  • Penyedia: Lambda

  • Versi: 1

Parameter konfigurasi

FunctionName

Wajib: Ya

FunctionNameadalah nama fungsi yang dibuat di Lambda.

UserParameters

Wajib: Tidak

Sebuah string yang dapat diproses sebagai input oleh fungsi Lambda.

Artefak masukan

  • Jumlah Artefak: 0 to 5

  • Deskripsi: Kumpulan artefak yang akan tersedia untuk fungsi Lambda.

Artefak keluaran

  • Jumlah Artefak: 0 to 5

  • Deskripsi: Kumpulan artefak yang dihasilkan sebagai output oleh fungsi Lambda.

Variabel keluaran

Tindakan ini akan menghasilkan sebagai variabel semua pasangan kunci-nilai yang disertakan dalam outputVariables bagian permintaan PutJobSuccessResult API.

Untuk informasi lebih lanjut tentang variabel di CodePipeline, lihatReferensi variabel.

Contoh konfigurasi tindakan

YAML
Name: Lambda Actions: - Name: Lambda ActionTypeId: Category: Invoke Owner: AWS Provider: Lambda Version: '1' RunOrder: 1 Configuration: FunctionName: myLambdaFunction UserParameters: 'http://192.0.2.4' OutputArtifacts: [] InputArtifacts: [] Region: us-west-2
JSON
{ "Name": "Lambda", "Actions": [ { "Name": "Lambda", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Provider": "Lambda", "Version": "1" }, "RunOrder": 1, "Configuration": { "FunctionName": "myLambdaFunction", "UserParameters": "http://192.0.2.4" }, "OutputArtifacts": [], "InputArtifacts": [], "Region": "us-west-2" } ] },

Contoh peristiwa JSON

Tindakan Lambda mengirimkan peristiwa JSON yang berisi ID pekerjaan, konfigurasi tindakan pipeline, lokasi artefak input dan output, dan informasi enkripsi apa pun untuk artefak. Pekerja pekerjaan mengakses detail ini untuk menyelesaikan tindakan Lambda. Untuk informasi selengkapnya, lihat detail pekerjaan. Berikut adalah contoh kasusnya.

{ "CodePipeline.job": { "id": "11111111-abcd-1111-abcd-111111abcdef", "accountId": "111111111111", "data": { "actionConfiguration": { "configuration": { "FunctionName": "MyLambdaFunction", "UserParameters": "input_parameter" } }, "inputArtifacts": [ { "location": { "s3Location": { "bucketName": "bucket_name", "objectKey": "filename" }, "type": "S3" }, "revision": null, "name": "ArtifactName" } ], "outputArtifacts": [], "artifactCredentials": { "secretAccessKey": "secret_key", "sessionToken": "session_token", "accessKeyId": "access_key_ID" }, "continuationToken": "token_ID", "encryptionKey": { "id": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "type": "KMS" } } } }

Acara JSON menyediakan detail pekerjaan berikut untuk tindakan Lambda di: CodePipeline

  • id: ID pekerjaan yang dibuat sistem yang unik.

  • accountId: ID AWS akun yang terkait dengan pekerjaan.

  • data: Informasi lain yang diperlukan pekerja pekerjaan untuk menyelesaikan pekerjaan.

    • actionConfiguration: Parameter tindakan untuk tindakan Lambda. Untuk definisi, lihatParameter konfigurasi.

    • inputArtifacts: Artefak yang dipasok ke aksi.

      • location: Lokasi toko artefak.

        • s3Location: Informasi lokasi artefak masukan untuk tindakan.

          • bucketName: Nama penyimpanan artefak pipeline untuk tindakan (misalnya, bucket Amazon S3 bernama codepipeline-us-east-2-1234567890).

          • objectKey: Nama aplikasi (misalnya,CodePipelineDemoApplication.zip).

        • type: Jenis artefak di lokasi. Saat ini, S3 adalah satu-satunya jenis artefak yang valid.

      • revision: ID revisi artefak. Tergantung pada jenis objek, ini bisa berupa commit ID (GitHub) atau ID revisi (Amazon Simple Storage Service). Untuk informasi selengkapnya, lihat ArtifactRevision.

      • name: Nama artefak yang akan dikerjakan, sepertiMyApp.

    • outputArtifacts: Output dari tindakan.

      • location: Lokasi toko artefak.

        • s3Location: Informasi lokasi artefak keluaran untuk tindakan.

          • bucketName: Nama penyimpanan artefak pipeline untuk tindakan (misalnya, bucket Amazon S3 bernama codepipeline-us-east-2-1234567890).

          • objectKey: Nama aplikasi (misalnya,CodePipelineDemoApplication.zip).

        • type: Jenis artefak di lokasi. Saat ini, S3 adalah satu-satunya jenis artefak yang valid.

      • revision: ID revisi artefak. Tergantung pada jenis objek, ini bisa berupa commit ID (GitHub) atau ID revisi (Amazon Simple Storage Service). Untuk informasi selengkapnya, lihat ArtifactRevision.

      • name: Nama keluaran artefak, sepertiMyApp.

    • artifactCredentials: KredenSIAL AWS sesi yang digunakan untuk mengakses artefak input dan output di bucket Amazon S3. KredenSIAL ini adalah kredenSIAL sementara yang dikeluarkan oleh AWS Security Token Service (AWS STS).

      • secretAccessKey: Kunci akses rahasia untuk sesi.

      • sessionToken: Token untuk sesi.

      • accessKeyId: ID kunci akses untuk sesi.

    • continuationToken: Token yang dihasilkan oleh tindakan. Tindakan mendatang menggunakan token ini untuk mengidentifikasi instance tindakan yang sedang berjalan. Ketika tindakan selesai, tidak ada token lanjutan yang harus diberikan.

    • encryptionKey: Kunci enkripsi yang digunakan untuk mengenkripsi data di penyimpanan artefak, seperti AWS KMS kunci. Jika ini tidak ditentukan, kunci default untuk Amazon Simple Storage Service digunakan.

      • id: ID yang digunakan untuk mengidentifikasi kunci. Untuk AWS KMS kunci, Anda dapat menggunakan ID kunci, kunci ARN, atau alias ARN.

      • type: Jenis kunci enkripsi, seperti AWS KMS kunci.

Sumber daya terkait berikut dapat membantu Anda saat Anda mengerjakan tindakan ini.