Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menginvokasi fungsi Lambda
Langkah 1: Membuat fungsi Lambda
Selama eksekusi kampanye, kampanye keluar akan memanggil fungsi Lambda Anda dengan sekumpulan profil dan mengharapkan respons yang berisi hasil untuk masing-masing.
Minta Muatan
Ketika fungsi Lambda Anda dipanggil, ia akan menerima muatan JSON dengan struktur berikut:
Struktur Muatan
{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "string", "RunId": "string", "ActionId": "string", "CampaignName": "string" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "string", "CustomerData": "string", "IdempotencyToken": "string" } ] } }
Deskripsi Bidang
InvocationMetadata
-
CampaignContext: Berisi metadata tentang eksekusi kampanye
-
CampaignId: Pengidentifikasi unik untuk kampanye
-
RunId: Pengenal unik untuk menjalankan kampanye khusus ini
-
ActionId: Pengidentifikasi aksi aliran yang dijalankan oleh kampanye keluar
-
CampaignName: Human-readable nama kampanye
Item
-
CustomerProfiles: Array profil pelanggan untuk diproses (batch untuk efisiensi)
-
ProfileId: Pengidentifikasi unik untuk profil pelanggan
-
CustomerData: JSON string dari profil pelanggan
-
IdempotencyToken: Token unik untuk pemanggilan khusus ini untuk memastikan pemrosesan idempoten
Contoh Permintaan Muatan
{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "campaign-12345", "RunId": "run-67890", "ActionId": "activity-abc123", "CampaignName": "Welcome Campaign" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "customer-001", "CustomerData": "{\"firstName\":\"John\",\"lastName\":\"Doe\",\"email\":\"john.doe@example.com\"}", "IdempotencyToken": "token-xyz789" }, { "ProfileId": "customer-002", "CustomerData": "{\"firstName\":\"Jane\",\"lastName\":\"Smith\",\"email\":\"jane.smith@example.com\"}", "IdempotencyToken": "token-abc456" } ] } }
Muatan Respon yang Diharapkan
Fungsi Lambda Anda harus mengembalikan respons JSON dengan struktur berikut:
Struktur Respon
{ "Items": { "CustomerProfiles": [ { "Id": "string", "ResultData": {} } ] } }
Deskripsi Bidang
Item
-
CustomerProfiles: Array hasil yang sesuai dengan setiap profil pelanggan dalam permintaan
-
Id: Harus cocok dengan
ProfileIddari permintaan -
ResultData: Objek JSON kustom yang berisi hasil pemrosesan Anda (opsional)
Contoh Respon Payload
{ "Items": { "CustomerProfiles": [ { "Id": "customer-001", "ResultData": { "recommendedProduct": "Premium Plan", "score": 85, "nextAction": "send_email" } }, { "Id": "customer-002", "ResultData": { "error": "Invalid customer data", "errorCode": "VALIDATION_ERROR" } } ] } }
Batasan Penting
Batas Ukuran Muatan
-
Ukuran Payload Respon Maksimum: 32 KB per profil pelanggan
-
Jika Anda
ResultDatamelebihi batas ini, pemanggilan akan ditandai sebagai tidak valid
Persyaratan Respons
-
Anda harus memberikan tanggapan untuk setiap yang
ProfileIdtermasuk dalam permintaan -
Tanggapan yang hilang akan diperlakukan sebagai kesalahan
-
IdBidang dalam respons harus sama persis denganProfileIddari permintaan
Penanganan Kesalahan
-
Jika fungsi Lambda Anda melempar pengecualian, semua profil dalam batch akan ditandai sebagai gagal
-
Sertakan detail kesalahan
ResultDatauntuk tujuan debugging
Jenis Doa
-
Jenis Doa:
REQUEST_RESPONSE(sinkron) -
Fungsi Anda harus mengembalikan hasil dalam waktu 30 detik daripada memproses secara asinkron. Respons yang memakan waktu lebih dari 30 detik akan mengakibatkan kegagalan tindakan
Langkah 2: Berikan akses Kampanye Keluar ke fungsi Lambda Anda
-
Buka konsol Amazon Connect di https://console.aws.amazon.com/connect/
. -
Pada halaman instance, pilih nama instance Anda di kolom Alias Instance. Nama instance ini muncul di URL yang Anda gunakan untuk mengakses Amazon Connect.
-
Di panel navigasi di bawah Saluran dan komunikasi, pilih Kampanye keluar.
-
Di bawah bagian Mengatur tindakan kustom, gunakan kotak drop-down fungsi Lambda untuk memilih fungsi yang akan ditambahkan ke instance kampanye keluar Anda.
-
Pilih Tambahkan Fungsi Lambda. Konfirmasikan bahwa ARN fungsi ditambahkan di bawah Fungsi Lambda.
penting
Prosedur konsol sebelumnya secara otomatis menambahkan kebijakan berbasis sumber daya yang diperlukan ke fungsi Lambda. Jika Anda menggunakan AWS CLI atau SDK, Anda dapat memanggil PutConnectInstanceIntegrationAPI dengan konfigurasi integrasi. lambda API ini secara otomatis menambahkan kebijakan berbasis sumber daya yang diperlukan ke fungsi Lambda Anda, seperti halnya konsol.
Jika Anda perlu menambahkan kebijakan berbasis sumber daya secara manual (misalnya, untuk pemanggilan lintas akun), tambahkan pernyataan kebijakan yang memberikan izin utama layanan untuk menjalankan fungsi Anda. connect-campaigns.amazonaws.com Anda secara opsional dapat menambahkan Condition elemen dengan AWS:SourceAccount dan membatasi akses AWS:SourceArn ke akun Anda dan Connect Customer instance. Kami merekomendasikan untuk memasukkan kedua kondisi tersebut. Contoh berikut menunjukkan pernyataan kebijakan yang diperlukan.
{ "Statement": [ { "Effect": "Allow", "Principal": { "Service": "connect-campaigns.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:region:account-id:function:function-name", "Condition": { "StringEquals": { "AWS:SourceAccount": "account-id" }, "ArnLike": { "AWS:SourceArn": "arn:aws:connect:region:account-id:instance/instance-id" } } } ] }
Untuk informasi selengkapnya tentang kebijakan berbasis sumber daya, lihat Menggunakan kebijakan berbasis sumber daya untuk Lambda di Panduan Pengembang Lambda.
Langkah 3: Memanggil Lambda dari Kampanye
-
Buka atau buat alur Perjalanan.
-
Tambahkan blok tindakan kustom (dalam grup Integrate) ke grid. Hubungkan cabang ke dan dari blok.
-
Pilih judul blok tindakan kustom untuk membuka halaman propertinya.
-
Di bawah Fungsi ARN, pilih dari daftar fungsi yang telah Anda tambahkan ke instance kampanye keluar.
Langkah 4: Konsumsi respons fungsi Lambda
Akses variabel secara langsung
Untuk mengakses variabel-variabel ini secara langsung di blok aliran, tambahkan blok setelah blok tindakan kustom, lalu rujuk atribut seperti yang ditunjukkan pada contoh berikut:
RecommendedProduct - $.LambdaInvocation.ResultData.recommendedProduct Score - $.LambdaInvocation.ResultData.score
Pastikan bahwa nama yang ditentukan untuk atribut sumber cocok dengan nama kunci yang ResultData dikembalikan dari Lambda.