Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS Target fungsi lambda
Target Lambda memungkinkan Anda menghubungkan gateway Anda ke fungsi AWS Lambda yang mengimplementasikan alat Anda. Ini berguna ketika Anda ingin mengeksekusi kode khusus sebagai respons terhadap pemanggilan alat.
Anda membuat fungsi Lambda menggunakan layanan AWS Lambda. Untuk membuat fungsi, Anda harus melakukan hal berikut:
-
Buat skema alat yang mendefinisikan alat yang dapat dipanggil fungsi Lambda Anda.
-
Memahami format input Lambda. Anda kemudian dapat mengikuti langkah-langkah dalam Panduan Pengembang AWS Lambda untuk Membangun dengan bahasa pilihan Anda.
Setelah Anda membuat fungsi, Anda mengonfigurasi izin untuk gateway agar dapat mengaksesnya.
Tinjau pertimbangan dan batasan utama untuk membantu Anda memutuskan apakah target Lambda berlaku untuk kasus penggunaan Anda. Jika ya, Anda dapat membuat skema alat dan fungsi Lambda dan kemudian mengatur izin untuk gateway untuk dapat mengakses target. Pilih topik untuk mempelajari lebih lanjut:
Pertimbangan dan batasan utama
Saat bekerja dengan target Lambda, perhatikan batasan dan pertimbangan berikut:
-
Awalan nama alat perlu dilucuti secara manual dari nama alat dalam fungsi Lambda Anda AWS . Untuk informasi selengkapnya, lihat Memahami bagaimana alat AgentCore Gateway diberi nama.
-
Jika Anda menggunakan fungsi AWS Lambda yang ada dan mengimpornya sebagai alat ke gateway, Anda perlu mengubah kode fungsi untuk memperhitungkan perubahan skema untuk objek peristiwa dan konteks
-
Fungsi Lambda harus mengembalikan respons JSON yang valid yang dapat diurai oleh gateway
-
Waktu tunggu fungsi lambda harus dikonfigurasi dengan tepat untuk menangani waktu pemrosesan yang diharapkan dari alat Anda
-
Pertimbangkan untuk menerapkan penanganan kesalahan dalam fungsi Lambda Anda untuk memberikan pesan kesalahan yang berarti kepada klien
Skema alat fungsi lambda
Bagian ini menjelaskan struktur skema alat yang mendefinisikan alat yang dapat dikembalikan fungsi Lambda Anda. Setelah menentukan skema alat Anda, Anda dapat melakukan salah satu hal berikut:
-
Unggah ke bucket Amazon S3 dan rujuk ke lokasi S3 saat Anda menambahkan target ke gateway Anda.
-
Tempelkan definisi sebaris saat Anda menambahkan target ke gateway Anda.
Pilih topik untuk mempelajari lebih lanjut tentang detail skema alat atau untuk melihat contoh:
Topik
Definisi alat
Saat Anda menambahkan fungsi Lambda sebagai target gateway, Anda memberikan ToolDefinition saat menyediakan konfigurasi target. Struktur definisi alat adalah sebagai berikut:
{ "name": "string", "description": "string", "inputSchema": { "type": "object", "description" "string", "properties": { "string": SchemaDefinition }, "required": ["string"] }, "outputSchema": { "type": "object", "description" "string", "properties": { "string": SchemaDefinition }, "required": ["string"] } }
Definisi alat berisi bidang berikut:
-
name (required) — Nama alat.
-
deskripsi (wajib) — Deskripsi alat dan tujuan serta penggunaannya.
-
InputSchema (required) — Objek JSON yang mendefinisikan struktur input yang diterima alat.
-
OutputSchema (opsional) — Objek JSON yang mendefinisikan struktur output yang dihasilkan alat.
outputSchemaBid inputSchema ang dan keduanya dipetakan ke tipe objek SchemaDefinition, dijelaskan di bagian berikut.
Definisi skema tingkat atas untuk skema input dan output
outputSchemaBid inputSchema ang dan di tingkat atas definisi alat keduanya dipetakan ke tipe objek SchemaDefinition yang berisi bidang berikut:
{ "type": "object", "description": "string", "properties": { "string": SchemaDefinition }, "required": ["string"] }
-
jenis (wajib) - Harus
object. -
deskripsi (opsional) — Deskripsi skema dan tujuan serta penggunaannya.
-
properti (opsional) — Objek JSON yang mendefinisikan properti atau argumen alat. Setiap kunci adalah nama properti dan dipetakan ke SchemaDefinition objek yang mendefinisikan properti.
-
required (optional) — Sebuah array yang menyebutkan properti yang diperlukan dalam
propertiesobjek.
Jika Anda menyertakan properties bidang untuk menentukan argumen untuk alat, Anda memberikan definisi skema untuk setiap argumen. Berbagai jenis definisi skema diuraikan di bagian berikutnya.
Definisi skema properti
Setiap properti di tingkat atas mem SchemaDefinition etakan ke SchemaDefinition objek yang memiliki persyaratan sedikit berbeda dari definisi skema tingkat atas. Bidang yang tersedia tergantung type pada properti. Untuk melihat bentuk SchemaDefinition untuk jenis, pilih dari tab berikut:
contoh
Jika Anda menyertakan properti tipe objek lain, Anda akan secara rekursif menambahkan yang lain. SchemaDefinition
Contoh definisi alat Lambda
Pilih tab untuk melihat contoh definisi alat yang dapat Anda sertakan dalam fungsi Lambda Anda.
contoh
Format input fungsi lambda
Ketika AgentCore gateway Amazon Bedrock memanggil fungsi Lambda, ia meneruskan event objek dan objek ke fungsi tersebutcontext. Penangan peristiwa Lambda yang Anda tulis dapat mengakses nilai dalam objek ini.
Objek acara
Peta properties dari inputSchema ke nilainya, seperti yang dikembalikan oleh alat. Misalnya, jika skema input Anda berisi properti keywords dancategory, objek acara bisa jadi sebagai berikut:
{ "keywords": "wireless headphones", "category": "electronics" }
Objek konteks
Berisi metadata berikut:
-
batuan AgentCoreMessageVersion dasar — Versi pesan.
-
batuan AgentCoreAwsRequestId dasar — ID permintaan yang dibuat ke layanan Amazon Bedrock AgentCore .
-
Bedrock AgentCoreMcpMessageId — ID pesan yang dikirim ke server MCP.
-
batuan AgentCoreGatewayId dasar — ID gerbang yang dipanggil.
-
batuan AgentCoreTargetId dasar — ID target gateway yang dipanggil.
-
batuan AgentCoreToolName dasar — Nama alat yang dipanggil. Nama alat dalam format
${target_name}_${tool_name}.
Format objek konteks adalah sebagai berikut:
{ "bedrockAgentCoreMessageVersion": "1.0", "bedrockAgentCoreAwsRequestId": "string", "bedrockAgentCoreMcpMessageId": "string", "bedrockAgentCoreGatewayId": "string", "bedrockAgentCoreTargetId": "string", "bedrockAgentCoreToolName": "string" }
Fungsi Lambda yang Anda tulis dapat mengakses properti dari objek peristiwa dan konteks. Anda dapat menggunakan kode boilerplate berikut untuk memulai:
# Access context properties in your Lambda function def lambda_handler(event, context): # Since the visible tool name includes the target name as a prefix, we can use this delimiter to strip the prefix delimiter = "___" # Get the tool name from the context originalToolName = context.client_context.custom['bedrockAgentCoreToolName'] toolName = originalToolName[originalToolName.index(delimiter) + len(delimiter):] # Get other context properties message_version = context.client_context.custom['bedrockAgentCoreMessageVersion'] aws_request_id = context.client_context.custom['bedrockAgentCoreAwsRequestId'] mcp_message_id = context.client_context.custom['bedrockAgentCoreMcpMessageId'] gateway_id = context.client_context.custom['bedrockAgentCoreGatewayId'] target_id = context.client_context.custom['bedrockAgentCoreTargetId'] # Process the request based on the tool name if tool_name == 'searchProducts': # Handle searchProducts tool pass elif tool_name == 'getProductDetails': # Handle getProductDetails tool pass else: # Handle unknown tool pass