tindakan 'AWS Lambda memanggil' YAML - Amazon CodeCatalyst

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

tindakan 'AWS Lambda memanggil' YAML

Berikut ini adalah YAML definisi dari tindakan AWS Lambda pemanggilan. Untuk mempelajari cara menggunakan tindakan ini, lihatMemanggil fungsi Lambda menggunakan alur kerja.

Definisi tindakan ini ada sebagai bagian dalam file definisi alur kerja yang lebih luas. Untuk informasi selengkapnya tentang file ini, lihatDefinisi alur kerja YAML.

catatan

Sebagian besar YAML properti yang mengikuti memiliki elemen UI yang sesuai di editor visual. Untuk mencari elemen UI, gunakan Ctrl+F. Elemen akan terdaftar dengan YAML properti terkait.

# The workflow definition starts here. # See Properti tingkat atas for details. Name: MyWorkflow SchemaVersion: 1.0 Actions: # The action definition starts here. LambdaInvoke_nn: Identifier: aws/lambda-invoke@v1 DependsOn: - dependent-action Compute: Type: EC2 | Lambda Fleet: fleet-name Timeout: timeout-minutes Inputs: # Specify a source or an artifact, but not both. Sources: - source-name-1 Artifacts: - request-payload Variables: - Name: variable-name-1 Value: variable-value-1 - Name: variable-name-2 Value: variable-value-2 Environment: Name: environment-name Connections: - Name: account-connection-name Role: iam-role-name Configuration: Function: my-function|function-arn AWSRegion: us-west-2 # Specify RequestPayload or RequestPayloadFile, but not both. RequestPayload: '{"firstname": "Li", lastname: "Jean", "company": "ExampleCo", "team": "Development"}' RequestPayloadFile: my/request-payload.json ContinueOnError: true|false LogType: Tail|None ResponseFilters: '{"name": ".name", "company": ".department.company"}' Outputs: Artifacts: - Name: lambda_artifacts Files: - "lambda-response.json"

LambdaInvoke

(Diperlukan)

Tentukan nama tindakan. Semua nama tindakan harus unik dalam alur kerja. Nama aksi terbatas pada karakter alfanumerik (a-z, A-Z, 0-9), tanda hubung (-), dan garis bawah (_). Spasi tidak diizinkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan karakter dan spasi khusus dalam nama tindakan.

Default: Lambda_Invoke_Action_Workflow_nn.

UI yang sesuai: Tab konfigurasi/Nama tindakan

Identifier

(LambdaInvoke/Identifier)

(Diperlukan)

Mengidentifikasi tindakan. Jangan mengubah properti ini kecuali Anda ingin mengubah versi. Untuk informasi selengkapnya, lihat Menentukan versi tindakan yang akan digunakan.

Default: aws/lambda-invoke@v1.

UI yang sesuai: Diagram alur LambdaInvoke kerja/_nn/ aws/lambda-invoke @v1 label

DependsOn

(LambdaInvoke/DependsOn)

(Opsional)

Tentukan tindakan, grup tindakan, atau gerbang yang harus berjalan dengan sukses agar tindakan ini berjalan.

Untuk informasi selengkapnya tentang fungsionalitas 'tergantung pada', lihat. Tindakan pengurutan

UI yang sesuai: Tab masukan/Tergantung pada - opsional

Compute

(LambdaInvoke/Compute)

(Opsional)

Mesin komputasi yang digunakan untuk menjalankan tindakan alur kerja Anda. Anda dapat menentukan komputasi baik di tingkat alur kerja atau di tingkat tindakan, tetapi tidak keduanya. Ketika ditentukan pada tingkat alur kerja, konfigurasi komputasi berlaku untuk semua tindakan yang ditentukan dalam alur kerja. Pada tingkat alur kerja, Anda juga dapat menjalankan beberapa tindakan pada instance yang sama. Untuk informasi selengkapnya, lihat Berbagi komputasi di seluruh tindakan.

UI yang sesuai: tidak ada

Type

(LambdaInvoke/Compute/Type)

(Diperlukan Compute jika disertakan)

Jenis mesin komputasi. Anda dapat menggunakan salah satu nilai berikut:

  • EC2(editor visual) atau EC2 (YAMLeditor)

    Dioptimalkan untuk fleksibilitas selama aksi berjalan.

  • Lambda (editor visual) atau Lambda (YAMLeditor)

    Kecepatan start-up aksi yang dioptimalkan.

Untuk informasi selengkapnya tentang jenis komputasi, lihatJenis komputasi.

UI yang sesuai: Tab konfigurasi/Jenis komputasi

Fleet

(LambdaInvoke/Compute/Fleet)

(Opsional)

Tentukan mesin atau armada yang akan menjalankan alur kerja atau tindakan alur kerja Anda. Dengan armada sesuai permintaan, ketika suatu tindakan dimulai, alur kerja menyediakan sumber daya yang dibutuhkan, dan mesin dihancurkan ketika tindakan selesai. Contoh armada sesuai permintaan:Linux.x86-64.Large,. Linux.x86-64.XLarge Untuk informasi lebih lanjut tentang armada sesuai permintaan, lihat. Properti armada sesuai permintaan

Dengan armada yang disediakan, Anda mengonfigurasi satu set mesin khusus untuk menjalankan tindakan alur kerja Anda. Mesin-mesin ini tetap menganggur, siap untuk memproses tindakan segera. Untuk informasi lebih lanjut tentang armada yang disediakan, lihat. Properti armada yang disediakan

Jika Fleet dihilangkan, defaultnya adalah. Linux.x86-64.Large

UI yang sesuai: Tab konfigurasi/Armada komputasi

Timeout

(LambdaInvoke/Timeout)

(Diperlukan)

Tentukan jumlah waktu dalam menit (YAMLeditor), atau jam dan menit (editor visual), bahwa tindakan dapat berjalan sebelum CodeCatalyst mengakhiri tindakan. Minimal adalah 5 menit dan maksimum dijelaskan dalamKuota untuk alur kerja di CodeCatalyst. Batas waktu default sama dengan batas waktu maksimum.

UI yang sesuai: Tab konfigurasi/Timeout - opsional

Inputs

(LambdaInvoke/Inputs)

(Diperlukan)

InputsBagian ini mendefinisikan data yang dibutuhkan tindakan AWS Lambda pemanggilan selama menjalankan alur kerja.

catatan

Hanya satu input (baik sumber atau artefak) yang diizinkan per tindakan AWS Lambda pemanggilan. Variabel tidak dihitung terhadap total ini.

UI yang sesuai: Tab input

Sources

(LambdaInvoke/Inputs/Sources)

(Diperlukan jika RequestPayloadFiledisediakan)

Jika Anda ingin meneruskan JSON file payload permintaan AWS Lambda ke tindakan pemanggilan, dan file payload ini disimpan dalam repositori sumber, tentukan label repositori sumber tersebut. Saat ini, satu-satunya label yang didukung adalahWorkflowSource.

Jika file payload permintaan Anda tidak terkandung dalam repositori sumber, file tersebut harus berada dalam artefak yang dihasilkan oleh tindakan lain.

Untuk informasi selengkapnya tentang file payload, lihatRequestPayloadFile.

catatan

Alih-alih menentukan file payload, Anda dapat menambahkan JSON kode payload langsung ke tindakan menggunakan properti. RequestPayload Untuk informasi selengkapnya, lihat RequestPayload.

Untuk informasi selengkapnya tentang sumber, lihat Menghubungkan repositori sumber ke alur kerja.

UI yang sesuai: Tab/Sumber Input - opsional

Artifacts - input

(LambdaInvoke/Inputs/Artifacts)

(Diperlukan jika RequestPayloadFiledisediakan)

Jika Anda ingin meneruskan file payload permintaan AWS Lambda ke tindakan pemanggilan, dan JSON file payload ini terdapat dalam artefak keluaran dari tindakan sebelumnya, tentukan artefak tersebut di sini.

Untuk informasi selengkapnya tentang file payload, lihatRequestPayloadFile.

catatan

Alih-alih menentukan file payload, Anda dapat menambahkan JSON kode payload langsung ke tindakan menggunakan properti. RequestPayload Untuk informasi selengkapnya, lihat RequestPayload.

Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihatBerbagi artefak dan file antar tindakan.

UI yang sesuai: Tab konfigurasi/Artefak - opsional

Variables - input

(LambdaInvoke/Inputs/Variables)

(Opsional)

Tentukan urutan pasangan nama/nilai yang menentukan variabel input yang ingin Anda sediakan untuk tindakan. Nama variabel terbatas pada karakter alfanumerik (a-z, A-Z, 0-9), tanda hubung (-), dan garis bawah (_). Spasi tidak diizinkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan karakter dan spasi khusus dalam nama variabel.

Untuk informasi selengkapnya tentang variabel, termasuk contoh, lihatMenggunakan variabel dalam alur kerja.

UI yang sesuai: Input tab/Variabel - opsional

Environment

(LambdaInvoke/Environment)

(Diperlukan)

Tentukan CodeCatalyst lingkungan yang akan digunakan dengan tindakan. Tindakan terhubung ke Amazon Akun AWS dan opsional VPC yang ditentukan di lingkungan yang dipilih. Tindakan menggunakan IAM peran default yang ditentukan di lingkungan untuk terhubung ke Akun AWS, dan menggunakan IAM peran yang ditentukan dalam VPCkoneksi Amazon untuk terhubung ke AmazonVPC.

catatan

Jika IAM peran default tidak memiliki izin yang diperlukan oleh tindakan, Anda dapat mengonfigurasi tindakan untuk menggunakan peran yang berbeda. Untuk informasi selengkapnya, lihat Mengubah IAM peran suatu tindakan.

Untuk informasi lebih lanjut tentang lingkungan, lihat Menyebarkan ke Akun AWS dan VPCs danPembuatan lingkungan.

UI yang sesuai: Tab konfigurasi/Lingkungan

Name

(LambdaInvoke/Environment/Name)

(Diperlukan Environment jika disertakan)

Tentukan nama lingkungan yang ada yang ingin Anda kaitkan dengan tindakan.

UI yang sesuai: Tab konfigurasi/Lingkungan

Connections

(LambdaInvoke/Environment/Connections)

(Opsional dalam versi tindakan yang lebih baru; diperlukan dalam versi yang lebih lama)

Tentukan koneksi akun untuk dikaitkan dengan tindakan. Anda dapat menentukan maksimum satu koneksi akun di bawahEnvironment.

Jika Anda tidak menentukan koneksi akun:

  • Tindakan menggunakan Akun AWS koneksi dan IAM peran default yang ditentukan di lingkungan di CodeCatalyst konsol. Untuk informasi tentang menambahkan koneksi akun dan IAM peran default ke lingkungan, lihatPembuatan lingkungan.

  • IAMPeran default harus menyertakan kebijakan dan izin yang diperlukan oleh tindakan. Untuk menentukan kebijakan dan izin tersebut, lihat deskripsi properti Peran dalam dokumentasi YAML definisi tindakan.

Untuk informasi selengkapnya tentang koneksi akun, lihatMemungkinkan akses ke AWS sumber daya yang terhubung Akun AWS. Untuk informasi tentang menambahkan koneksi akun ke lingkungan, lihatPembuatan lingkungan.

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:

  • (Versi yang lebih baru) Tab konfigurasi/Lingkungan/Apa yang ada my-environment? /menu tiga titik/Beralih peran

  • (Versi lama) Tab konfigurasi/'lingkungan/akun/peran'/koneksi akun AWS

Name

(LambdaInvoke/Environment/Connections/Name)

(Diperlukan Connections jika disertakan)

Tentukan nama koneksi akun.

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:

  • (Versi yang lebih baru) Tab konfigurasi/Lingkungan/Apa yang ada my-environment? /menu tiga titik/Beralih peran

  • (Versi lama) Tab konfigurasi/'lingkungan/akun/peran'/koneksi akun AWS

Role

(LambdaInvoke/Environment/Connections/Role)

(Diperlukan Connections jika disertakan)

Tentukan nama IAM peran yang digunakan tindakan AWS Lambda pemanggilan untuk mengakses AWS dan memanggil fungsi Lambda Anda. Pastikan Anda telah menambahkan peran ke CodeCatalyst ruang Anda, dan peran tersebut mencakup kebijakan berikut.

Jika Anda tidak menentukan IAM peran, maka tindakan tersebut menggunakan IAM peran default yang tercantum di lingkungan di CodeCatalyst konsol. Jika Anda menggunakan peran default di lingkungan, pastikan itu memiliki kebijakan berikut.

  • Kebijakan izin berikut:

    Awas

    Batasi izin untuk yang ditampilkan dalam kebijakan berikut. Menggunakan peran dengan izin yang lebih luas dapat menimbulkan risiko keamanan.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:aws-region:aws-account:function:function-name" } ] }
  • Kebijakan kepercayaan khusus berikut:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
catatan

Anda dapat menggunakan CodeCatalystWorkflowDevelopmentRole-spaceName peran dengan tindakan ini, jika Anda mau. Untuk informasi selengkapnya tentang peran ini, silakan lihat Membuat CodeCatalystWorkflowDevelopmentRole-spaceNameperan untuk akun dan ruang Anda. Memahami bahwa CodeCatalystWorkflowDevelopmentRole-spaceName peran tersebut memiliki izin akses penuh yang dapat menimbulkan risiko keamanan. Kami menyarankan Anda hanya menggunakan peran ini dalam tutorial dan skenario di mana keamanan kurang menjadi perhatian.

UI yang sesuai: Salah satu dari berikut ini tergantung pada versi tindakan:

  • (Versi yang lebih baru) Tab konfigurasi/Lingkungan/Apa yang ada my-environment? /menu tiga titik/Beralih peran

  • (Versi lama) Tab konfigurasi/'lingkungan/akun/peran'/ Peran

Configuration

(LambdaInvoke/Configuration)

(Diperlukan)

Bagian di mana Anda dapat menentukan properti konfigurasi tindakan.

UI yang sesuai: Tab konfigurasi

Function

(LambdaInvoke/Configuration/Function)

(Diperlukan)

Tentukan AWS Lambda fungsi yang akan dipanggil tindakan ini. Anda dapat menentukan nama fungsi, atau Nama Sumber Daya Amazon (ARN). Anda dapat menemukan nama atau ARN di konsol Lambda.

catatan

AWS Akun tempat fungsi Lambda berada dapat berbeda dari akun yang ditentukan di bawah. Connections:

UI yang sesuai: Tab/Fungsi Konfigurasi

AWSRegion

(LambdaInvoke/Configuration/AWSRegion)

(Diperlukan)

Tentukan AWS Wilayah tempat AWS Lambda fungsi Anda berada. Untuk daftar kode Region, lihat Titik akhir Regional di. Referensi Umum AWS

UI yang sesuai: Tab konfigurasi/ember Tujuan - opsional

RequestPayload

(LambdaInvoke/Configuration/RequestPayload)

(Opsional)

Jika Anda ingin meneruskan payload permintaan AWS Lambda ke tindakan pemanggilan, tentukan payload permintaan di sini, dalam format. JSON

Contoh permintaan payload:

'{ "key": "value" }'

Jika Anda tidak ingin meneruskan payload permintaan ke fungsi Lambda Anda, maka hilangkan properti ini.

catatan

Anda dapat menentukan salah satu dari RequestPayload atau RequestPayloadFile, bukan keduanya.

Untuk informasi selengkapnya tentang payload permintaan, lihat topik Memanggil di Referensi.AWS Lambda API

UI yang sesuai: Tab konfigurasi/Minta muatan - opsional

RequestPayloadFile

(LambdaInvoke/Configuration/RequestPayloadFile)

(Opsional)

Jika Anda ingin meneruskan payload permintaan AWS Lambda ke tindakan pemanggilan, tentukan jalur ke file payload permintaan ini di sini. File harus dalam JSON format.

File payload permintaan dapat berada di repositori sumber atau artefak dari tindakan sebelumnya. Jalur file relatif terhadap repositori sumber atau root artefak.

Jika Anda tidak ingin meneruskan payload permintaan ke fungsi Lambda Anda, maka hilangkan properti ini.

catatan

Anda dapat menentukan salah satu dari RequestPayload atau RequestPayloadFile, bukan keduanya.

Untuk informasi selengkapnya tentang file payload permintaan, lihat topik Memanggil di Referensi.AWS Lambda API

UI yang sesuai: Tab konfigurasi/Minta file payload - opsional

ContinueOnError

(LambdaInvoke/Configuration/RequestPayloadFile)

(Opsional)

Tentukan apakah Anda ingin menandai tindakan AWS Lambda pemanggilan sebagai berhasil meskipun fungsi yang dipanggil AWS Lambda gagal. Pertimbangkan untuk menyetel properti ini true agar tindakan selanjutnya dalam alur kerja Anda dimulai meskipun Lambda gagal.

Defaultnya adalah gagal tindakan jika fungsi Lambda gagal (“mati” di editor visual atau false di YAML editor).

UI yang sesuai: Tab konfigurasi/Lanjutkan kesalahan

LogType

(LambdaInvoke/Configuration/LogType)

(Opsional)

Tentukan apakah Anda ingin menyertakan log kesalahan dalam respons dari fungsi Lambda setelah dipanggil. Anda dapat melihat log ini di tab Log aksi pemanggilan Lambda di konsol. CodeCatalyst Kemungkinan nilainya adalah:

  • Tail— kembalikan log

  • None— jangan kembalikan log

Defaultnya adalah Tail.

Untuk informasi selengkapnya tentang jenis log, lihat topik Memanggil di AWS Lambda APIReferensi.

Untuk informasi selengkapnya tentang melihat log, lihat Melihat status dan detail alur kerja.

UI yang sesuai: Tab konfigurasi/Jenis log

ResponseFilters

(LambdaInvoke/Configuration/ResponseFilters)

(Opsional)

Tentukan kunci mana di payload respons Lambda yang ingin Anda konversi ke variabel keluaran. Anda kemudian dapat mereferensikan variabel output dalam tindakan selanjutnya dalam alur kerja Anda. Untuk informasi lebih lanjut tentang variabel di CodeCatalyst, lihatMenggunakan variabel dalam alur kerja.

Misalnya, jika payload respons Anda terlihat seperti ini:

responsePayload = { "name": "Saanvi", "location": "Seattle", "department": { "company": "Amazon", "team": "AWS" } }

... dan filter respons Anda terlihat seperti ini:

Configuration: ... ResponseFilters: '{"name": ".name", "company": ".department.company"}'

... maka tindakan menghasilkan variabel output berikut:

Kunci Nilai

name

Saanvi

perusahaan

Amazon

Anda kemudian dapat mereferensikan company variabel name dan dalam tindakan selanjutnya.

Jika Anda tidak menentukan kunci apa punResponseFilters, maka tindakan akan mengubah setiap kunci tingkat atas dalam respons Lambda menjadi variabel keluaran. Untuk informasi selengkapnya, lihat variabel 'AWS Lambda pemanggilan'.

Pertimbangkan untuk menggunakan filter respons untuk membatasi variabel keluaran yang dihasilkan hanya untuk variabel yang benar-benar ingin Anda gunakan.

UI yang sesuai: Tab konfigurasi/Filter respons - opsional

Outputs

(LambdaInvoke/Outputs)

(Opsional)

Mendefinisikan data yang dihasilkan oleh tindakan selama menjalankan alur kerja.

UI yang sesuai: Tab keluaran

Artifacts

(LambdaInvoke/Outputs/Artifacts)

(Opsional)

Tentukan artefak yang dihasilkan oleh tindakan. Anda dapat mereferensikan artefak ini sebagai masukan dalam tindakan lain.

Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihatBerbagi artefak dan file antar tindakan.

UI yang sesuai: Tab Keluaran/Artefak/Bangun nama artefak

Name

(LambdaInvoke/Outputs/Artifacts/Name)

(Opsional)

Tentukan nama artefak yang akan berisi muatan respons Lambda yang dikembalikan oleh fungsi Lambda. Nilai default-nya adalah lambda_artifacts. Jika Anda tidak menentukan artefak, maka payload respons Lambda dapat dilihat di log tindakan, yang tersedia di tab Log untuk tindakan di konsol. CodeCatalyst Untuk informasi selengkapnya tentang melihat log, lihat Melihat status dan detail alur kerja.

UI yang sesuai: Tab Keluaran/Artefak/Bangun nama artefak

Files

(LambdaInvoke/Outputs/Artifacts/Files)

(Opsional)

Tentukan file yang akan disertakan dalam artefak. Anda harus menentukan lambda-response.json sehingga file payload respons Lambda akan disertakan.

UI yang sesuai: Mengeluarkan Tab/Artefak/File yang dihasilkan oleh build