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 di 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 pemanggilan Lambda, lihat. Contoh JSON acara Sebagai bagian dari implementasi fungsi Lambda, harus ada panggilan ke atau. PutJobSuccessResult API PutJobFailureResult API Jika tidak, eksekusi tindakan ini akan hang 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 JSON peristiwa yang CodePipeline dikirim ke Lambda karena ini dapat mengakibatkan kredensi pengguna masuk Log. CloudWatch CodePipeline Peran tersebut menggunakan JSON acara untuk meneruskan kredensi sementara ke Lambda di lapangan. artifactCredentials Untuk contoh acara, lihatContoh JSON acara.

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

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 termasuk 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 JSON acara

Tindakan Lambda mengirimkan JSON peristiwa yang berisi ID pekerjaan, konfigurasi tindakan pipeline, lokasi artefak input dan output, dan informasi enkripsi apa pun untuk artefak. Pekerja kerja mengakses detail ini untuk menyelesaikan tindakan Lambda. Untuk informasi lebih lanjut, 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" } } } }

JSONAcara ini memberikan rincian pekerjaan berikut untuk tindakan Lambda di: CodePipeline

  • id: ID unik yang dihasilkan sistem dari pekerjaan.

  • accountId: ID AWS akun yang terkait dengan pekerjaan.

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

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

    • inputArtifacts: Artefak dipasok ke aksi.

      • location: Lokasi toko artefak.

        • s3Location: Informasi lokasi artefak masukan untuk tindakan.

          • bucketName: Nama penyimpanan artefak pipa untuk aksi (misalnya, ember Amazon S3 codepipeline-us-east bernama -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. Bergantung pada jenis objek, ini bisa berupa ID komit (GitHub) atau ID revisi (Amazon Simple Storage Service). Untuk informasi lebih lanjut, 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 pipa untuk aksi (misalnya, ember Amazon S3 codepipeline-us-east bernama -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. Bergantung pada jenis objek, ini bisa berupa ID komit (GitHub) atau ID revisi (Amazon Simple Storage Service). Untuk informasi lebih lanjut, lihat ArtifactRevision.

      • name: Nama output dari artefak, sepertiMyApp.

    • artifactCredentials: Kredensi 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: Kunci akses rahasia untuk sesi.

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

    • encryptionKey: Kunci enkripsi yang digunakan untuk mengenkripsi data di toko artefak, seperti kunci. AWS KMS 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, kunciARN, atau aliasARN.

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

Sumber daya terkait berikut dapat membantu Anda saat Anda bekerja dengan tindakan ini.