Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penyebaran kode langsung untuk Python
Penyebaran kode langsung memungkinkan Anda membawa Python-based agen Anda ke Amazon Bedrock AgentCore Runtime hanya dengan mengemas kode agen dan dependensinya dalam arsip file.zip. Agen Anda masih harus mengikuti persyaratan AgentCore Runtime: memiliki file.py entrypoint yang menggunakan @app.entrypoint anotasi dari Amazon Bedrock AgentCore Python SDK atau mengimplementasikan titik akhir server /invocations POST dan /ping GET.
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
-
AWS Akun dengan kredenSIAL dikonfigurasi. Untuk mengonfigurasi AWS kredenSIAL Anda, lihat Konfigurasi dan pengaturan file kredenSIAL di AWS CLI.
-
Uv diinstal dan Python 3.10+ diinstal
-
AWS Iz in: Untuk membuat dan menyebarkan agen dengan AgentCore CLI, Anda harus memiliki izin yang sesuai. Untuk informasi selengkapnya, lihat Menggunakan AgentCore CLI.
-
Akses model: Amazon Bedrock memungkinkan akses ke model pondasi secara default. Untuk menggunakan model non-dasar, ikuti langkah-langkah akses model.
Langkah 1: Instal AgentCore CLI
Instal AgentCore CLI:
npm install -g @aws/agentcore
Langkah 2: Buat proyek agen Anda
Buat satu AgentCore proyek untuk tutorial:
agentcore create \
--project-name DirectDeployProject \
--name DirectDeployAgent \
--language Python \
--framework Strands \
--model-provider Bedrock \
--memory none \
--build CodeZip
cd DirectDeployProject
Perintah ini menghasilkan:
-
Kode agen dengan kerangka kerja yang Anda pilih
-
pyproject.tomlFile dengan dependensi yang diperlukan
-
File agentcore/agentcore.json konfigurasi
-
Sebuah proyek agentcore/cdk/ infrastruktur
Yang dihasilkan pyproject.toml termasuk dependensi AgentCore dan Strands. Uv menciptakan lingkungan virtual dan file kunci selama pembuatan proyek.
Secara opsional, jalankan cd app/DirectDeployAgent && uv add aws-opentelemetry-distro && cd ../.. untuk mengaktifkan jejak pengamatan Amazon Bedrock AgentCore .
Langkah 3: Uji secara lokal
Pastikan port 8080 gratis sebelum memulai. Lihat Mem ecahkan masalah jika port sudah digunakan.
Buka jendela terminal dan mulai agen Anda dengan perintah berikut:
agentcore dev --no-browser
Uji agen Anda dengan membuka jendela terminal lain dan masukkan perintah berikut:
curl -X POST http://localhost:8080/invocations \
-H "Content-Type: application/json" \
-d '{"prompt": "Hello!"}'
Sukses: Anda harus melihat respons seperti{"result": "Hello! I’m here to help…"}. Di jendela terminal yang menjalankan agen, masukkan Ctrl+C untuk menghentikan agen.
Langkah 4: Aktifkan observabilitas untuk agen Anda
Amazon Bedrock AgentCore Observability membantu Anda melacak, men-debug, dan memantau agen yang Anda host di Runtime. AgentCore Pertama aktifkan Pencarian CloudWatch Transaksi dengan mengikuti petunjuk di Meng aktifkan pengamatan AgentCore runtime Amazon Bedrock. Untuk mengamati agen Anda, lihat Meli hat data pengamatan untuk agen Amazon Bedrock AgentCore Anda.
Langkah 5: Terapkan ke AgentCore Runtime dan panggil
Menyebarkan agen Anda menggunakan salah satu metode berikut:
contoh
- AgentCore CLI
-
-
Langkah-langkah berikut menerapkan CodeZip proyek yang dibuat di Langkah 2. Untuk informasi selengkapnya, lihat Mem ulai dengan AgentCore CLI. Uv diperlukan untuk membuat dan mengemas proyek Python.
Setelah menyiapkan agen menggunakanagentcore create, gunakan deploy perintah untuk membuat paket penerapan zip, unggah ke bucket yang ditentukan, dan gunakan agen.
agentcore deploy
Mari minta agen untuk menceritakan lelucon!
agentcore invoke "Tell me a joke"
Penerapan pertama membutuhkan waktu untuk menginstal dependensi tetapi pembaruan selanjutnya ke agen mengoptimalkan ini dengan menggunakan kembali dependensi zip
Manajemen konfigurasi
Anda dapat mengubah konfigurasi agen kapan saja menggunakan agentcore add perintah atau dengan mengedit file agentcore/agentcore.json konfigurasi secara langsung.
File konfigurasi memungkinkan Anda memperbarui parameter penerapan seperti konfigurasi VPC, peran eksekusi, batas waktu sesi, dan pengaturan otorisasi OAuth.
- Interactive
-
-
J agentcore alankan untuk membuka TUI, lalu pilih deploy. Layar penerapan menunjukkan kemajuan real-time saat memvalidasi proyek Anda, mensintesis CloudFormation, dan menyediakan sumber daya: AWS
Setelah penerapan selesai, gunakan agentcore invoke untuk menguji agen Anda.
- Custom zip + boto3
-
-
Untuk mengunduh roda yang kompatibel dengan AgentCore Runtime, Anda menggunakan --python-platform opsi uv pip. AgentCore Runtime hanya mendukung arsitektur set instruksi arm64, jalankan perintah berikut. Ganti --python 3.x dengan versi runtime Python yang Anda gunakan.
uv pip install \
--python-platform aarch64-manylinux2014 \
--python-version 3.13 \
--target=deployment_package \
--only-binary=:all: \
-r pyproject.toml
Buat file.zip dengan pustaka yang diinstal di root proyek.
cd deployment_package
zip -r ../deployment_package.zip .
Tambahkan main.py file dan file lain dalam paket Anda ke root file.zip.
cd ..
zip deployment_package.zip main.py
Setelah membuat paket penerapan.zip, Anda dapat menggunakannya untuk membuat AgentCore Runtime baru atau memperbarui yang sudah ada. Anda dapat menerapkan paket.zip Anda menggunakan AgentCore Runtime API, AgentCore Runtime console, dan AWS Command Line Interface. AgentCore CLI akan menangani langkah-langkah di atas untuk membuat.zip.
. Ukuran maksimum untuk paket penerapan.zip untuk AgentCore Runtime adalah 250 MB (zip) dan 750 MB (unzip). Perhatikan bahwa batas ini berlaku untuk ukuran gabungan semua file yang Anda unggah. AgentCore Runtime memerlukan izin untuk membaca file dalam paket penerapan Anda. Dalam notasi oktal izin Linux, AgentCore Runtime memerlukan 644 izin untuk file yang tidak dapat dieksekusi (rw-r—r--) dan 755 izin (rwxr-xr-x) untuk direktori dan file yang dapat dieksekusi. Di Linux dan macOS, gunakan chmod perintah untuk mengubah izin file pada file dan direktori dalam paket penerapan Anda. Misalnya, untuk memberikan file yang tidak dapat dieksekusi izin yang benar, jalankan perintah berikut,chmod 644 <filepath>. Untuk mengubah izin file di Windows, lihat Meng atur, Melihat, Mengubah, atau Menghapus Izin pada Objek dalam dokumentasi Microsoft Windows. +.. Jika Anda tidak memberikan izin AgentCore Runtime yang diperlukan untuk mengakses direktori dalam paket penerapan Anda, AgentCore Runtime menetapkan izin untuk direktori tersebut menjadi 755 (rwxr-xr-x).
Arsip ZIP yang berisi dependensi Linux arm64 perlu diunggah ke S3 sebagai prasyarat untuk Membuat Runtime Agen. Kode di bawah ini mengharuskan bucket S3 yang ditentukan untuk sudah ada. Silakan ikuti AWS dokumentasi di sini untuk membuat bucket menggunakan boto3. Mengikuti kode boto3 akan mengunggah arsip file.zip ke s3 dan membuat runtime Amazon Bedrock. AgentCore
import boto3
account_id = "your aws account id"
agent_name = "strands_10_23"
s3_client = boto3.client('s3', region_name='us-west-2')
print("Uploading deployment.zip to S3...")
s3_client.upload_file(
'deployment_package.zip', # archive on file system
f"bedrock-agentcore-code-{account_id}-us-west-2", # bucket name
f"{agent_name}/deployment_package.zip", # prefix
ExtraArgs={'ExpectedBucketOwner': account_id} # ownership check
)
print("Upload completed successfully!")
print(f"S3 Location: s3://bedrock-agentcore-code-{account_id}-us-west-2/{agent_name}/deployment_package.zip")
agentcore_client = boto3.client('bedrock-agentcore-control', region_name='us-west-2')
response = agentcore_client.create_agent_runtime(
agentRuntimeName=agent_name,
agentRuntimeArtifact={
'codeConfiguration': {
'code': {
's3': {
'bucket': f"bedrock-agentcore-code-{account_id}-us-west-2",
'prefix': f"{agent_name}/deployment_package.zip"
}
},
'runtime': 'PYTHON_3_13',
'entryPoint': ['opentelemetry-instrument', 'main.py']
} # if not adding otel dependency, remove opentelemetry-instrument from entrypoint array
},
networkConfiguration={"networkMode": "PUBLIC"},
roleArn=f"arn:aws:iam::{account_id}:role/AmazonBedrockAgentCoreSDKRuntime-us-west-2",
lifecycleConfiguration={
'idleRuntimeSessionTimeout': 300, # 5 min, configurable
'maxLifetime': 1800 # 30 minutes, configurable
},
)
print(f"Agent Runtime created successfully!")
print(f"Agent Runtime ARN: {response['agentRuntimeArn']}")
print(f"Status: {response['status']}")
Untuk informasi selengkapnya tentang memanggil agen secara terprogram, lihat Memanggil agen secara terprogram.
- console
-
-
Anda dapat menerapkan agen menggunakan AgentCore konsol Amazon Bedrock dengan dukungan runtime terkelola. Konsol menyediakan antarmuka intuitif untuk mengunggah file ZIP dan mengonfigurasi pengaturan agen.
Untuk menerapkan menggunakan konsol, pertama-tama buat paket penerapan Anda mengikuti langkah-langkah di tab Custom zip + boto3 di atas.
Buat agen melalui konsol
Untuk membuat agen Anda:
-
Dari halaman beranda Agen, pilih Agen Host
-
Pilih pilihan sumber Anda:
-
Sumber S3 - Unggah dari bucket S3
-
Unggah Lokal - Unggah file ZIP dari komputer Anda
-
Templat - Gunakan templat agen yang sudah dibuat sebelumnya
-
Konfigurasikan setelan agen Anda:
-
Nama agen
-
Versi runtime (Python 3.13 disarankan)
-
Titik masuk (mis.,main.py)
-
Peran eksekusi (buat baru atau gunakan yang sudah ada)
-
Pilih Buat Agen untuk disebarkan
Buat titik akhir
Pilih Buat Titik Akhir untuk membuat titik akhir baru untuk agen Anda. Nama titik akhir dan versi terkait akan diisi sebelumnya.
Titik akhir pengujian
Pilih titik akhir dan pilih U ji Titik Ak hir untuk menavigasi ke Playground/Sandbox untuk pengujian.
Persyaratan peran eksekusi
Agen Anda memerlukan peran eksekusi dengan izin yang sesuai. Untuk informasi terperinci tentang peran dan izin eksekusi, lihat Iz AgentCore in Runtime. Peran eksekusi harus menyertakan izin AgentCore runtime dasar Amazon Bedrock, izin akses S3 untuk paket penerapan Anda, dan izin CloudWatch Log untuk pengamatan.
Langkah 6: Hentikan sesi, pembaruan, atau pembersihan
Hentikan sesi runtime Anda, perbarui, atau bersihkan agen Anda menggunakan salah satu metode berikut:
contoh
- AgentCore CLI
-
-
Untuk memperbarui AgentCore Runtime yang digunakan sebelumnya, jalankan:
agentcore deploy
Untuk menghentikan sesi yang sedang berjalan sebelum dapat dikonfigurasi IdleRuntimeSessionTimeout (default pada 15 menit) dan menghemat biaya potensial, gunakan operasi API. StopRuntimeSession AgentCore CLI saat ini tidak mendukung penghentian sesi secara langsung.
Untuk menghapus semua sumber daya yang terkait dengan AgentCore Runtime, pertama-tama hapus semua sumber daya dan kemudian terapkan untuk meruntuhkan AWS sumber daya:
agentcore remove all
agentcore deploy
- boto3
-
-
Mengikuti kode boto3 akan memperbarui Runtime AgentCore .
import boto3
account_id = "your aws account id"
agent_name = "strands_10_23"
s3_client = boto3.client('s3', region_name='us-west-2')
print("Uploading deployment.zip to S3...")
s3_client.upload_file(
'deployment_package.zip', # archive on file system
f"bedrock-agentcore-code-{account_id}-us-west-2", # bucket name
f"{agent_name}/deployment_package.zip", # prefix
ExtraArgs={'ExpectedBucketOwner': account_id} # ownership check
)
print("Upload completed successfully!")
print(f"S3 Location: s3://bedrock-agentcore-code-{account_id}-us-west-2/{agent_name}/deployment_package.zip")
bedrock_agentcore_client = boto3.client('bedrock-agentcore-control', region_name='us-west-2')
response = bedrock_agentcore_client.update_agent_runtime(
agentRuntimeId='<your-agent-id>',
agentRuntimeArtifact={
'codeConfiguration': {
'code': {
's3': {
'bucket': f"bedrock-agentcore-code-{account_id}-us-west-2",
'prefix': f"{agent_name}/deployment_package.zip"
}
},
'runtime': 'PYTHON_3_13',
'entryPoint': ['opentelemetry-instrument', 'main.py']
} # if not adding otel dependency, remove opentelemetry-instrument from entrypoint array
},
networkConfiguration={"networkMode": "PUBLIC"},
roleArn=f"arn:aws:iam::{account_id}:role/AmazonBedrockAgentCoreSDKRuntime-us-west-2"
)
print(f"Agent Runtime updated successfully!")
print(f"Agent Runtime ARN: {response['agentRuntimeArn']}")
print(f"Status: {response['status']}")
Untuk menghentikan sesi berjalan sebelum dapat dikonfigurasi IdleRuntimeSessionTimeout (default pada 15 menit) dan menghemat biaya potensial, gunakan kode boto3 berikut:
import boto3
agent_core_client = boto3.client('bedrock-agentcore', region_name='us-west-2')
response = agent_core_client.stop_runtime_session(
agentRuntimeArn='arn:aws:bedrock-agentcore:us-west-2:account-id:runtime/agent-name-suffix',
runtimeSessionId='your-session-id',
qualifier="DEFAULT"
)
Mengikuti kode boto3 akan menghapus AgentCore runtime Amazon Bedrock dan file arsip.zip di s3.
import boto3
account_id = "your aws account id"
agent_name = "strands_10_23"
bedrock_agentcore_client = boto3.client('bedrock-agentcore-control', region_name='us-west-2')
print("Deleting Agent from Amazon Bedrock AgentCore Runtime!")
response = bedrock_agentcore_client.delete_agent_runtime(
agentRuntimeId='<agent-id>'
)
print(f"Agent Runtime delete successfully!")
print(f"Status: {response['status']}")
s3_client = boto3.client('s3', region_name='us-west-2')
print("Deleting deployment archive from S3...")
s3_client.delete_object(
Bucket=f"bedrock-agentcore-code-{account_id}-us-west-2",
Key=f"{agent_name}/deployment_package.zip",
ExpectedBucketOwner=account_id
)
print("Archive deleted successfully from S3!")
- console
-
-
====== Perbarui agen
Dari halaman detail agen, pilih Per barui hosting untuk membuat versi baru dengan kode atau konfigurasi yang diperbarui.
Perbarui titik akhir
Pilih titik akhir dari tabel Endpoints dan pilih Edit untuk memperbarui deskripsi atau versi terkait.
Hapus titik akhir
Pilih titik akhir dan pilih H apus. Anda harus mengetik “hapus” untuk mengonfirmasi penghapusan.
Hapus agen
Dari daftar agen atau halaman detail, pilih agen Anda dan pilih H apus untuk menghapus agen dan semua sumber daya terkait.
Python-specific konsep untuk penyebaran kode langsung
Pelajari tentang Python-specific konsep saat menggunakan penerapan kode langsung dengan Amazon Bedrock AgentCore Runtime.
Ketika Anda menggunakan import pernyataan dalam kode Anda, runtime Python mencari direktori di jalur pencariannya sampai menemukan modul atau paket. Secara default, lokasi pertama yang dicari runtime adalah direktori tempat paket penerapan.zip Anda didekompresi dan dipasang ()/var/task.
Anda dapat melihat jalur pencarian lengkap untuk agen AgentCore Runtime Anda dengan menambahkan cuplikan kode berikut.
import sys
search_path = sys.path
print(search_path)
Anda juga dapat menambahkan dependensi dalam folder terpisah di dalam paket.zip Anda. Misalnya, Anda dapat menambahkan versi Boto3 SDK ke folder dalam paket.zip yang disebut. common Ketika paket.zip Anda didekompresi dan dipasang, folder ini ditempatkan di dalam direktori/var/task. Untuk menggunakan dependensi dari folder dalam paket penerapan.zip dalam kode Anda, gunakan import from pernyataan. Misalnya, untuk menggunakan versi Boto3 dari folder bernama common dalam paket.zip Anda, gunakan pernyataan berikut.
from common import boto3
Sebaiknya jangan menyertakan
pycache
folder dalam paket penerapan agen Anda. Bytecode Python yang dikompilasi pada mesin build dengan arsitektur atau sistem operasi yang berbeda mungkin tidak kompatibel dengan lingkungan eksekusi AgentCore Runtime.
Jika fungsi Anda hanya menggunakan paket dan modul Python murni, Anda dapat menggunakan uv pip install perintah untuk menginstal dependensi Anda pada mesin build lokal mana pun dan membuat file.zip Anda. Banyak pustaka Python populer, termasuk NumPy dan Pandas, bukan Python murni dan berisi kode yang ditulis dalam C atau C. Ketika Anda menambahkan pustaka yang berisi C/C kode ke paket penerapan Anda, Anda harus membangun paket Anda dengan benar untuk membuatnya kompatibel dengan lingkungan eksekusi AgentCore Runtime.
Sebagian besar paket yang tersedia di Indeks Paket Python (PyPI) tersedia sebagai “roda” (file.whl). File.whl adalah jenis file ZIP yang berisi distribusi bawaan dengan binari pra-dikompilasi untuk sistem operasi tertentu dan arsitektur set instruksi. Untuk membuat paket penerapan Anda kompatibel dengan Amazon Bedrock AgentCore Runtime, Anda menginstal roda untuk sistem operasi Linux dan arsitektur set instruksi arm64.
Beberapa paket mungkin hanya tersedia sebagai distribusi sumber. Untuk paket-paket ini, Anda perlu mengkompilasi dan membangun komponen C/C ++ sendiri.
Untuk melihat distribusi apa yang tersedia untuk paket yang Anda butuhkan, lakukan hal berikut:
-
Cari nama paket di halaman utama Indeks Paket Python.
-
Pilih versi paket yang ingin Anda gunakan.
-
Pilih Unduh file.
Jika paket Anda hanya tersedia sebagai distribusi sumber, Anda perlu membangun sendiri perpustakaan C/C ++. Untuk membuat paket Anda kompatibel dengan lingkungan eksekusi Amazon Bedrock AgentCore Runtime, Anda perlu membangunnya di lingkungan yang menggunakan sistem operasi Amazon Linux yang sama dengan set instruksi arm64. Anda dapat melakukan ini dengan membuat paket Anda di instans Linux Amazon Elastic Compute Cloud (Amazon EC2).
Untuk mempelajari cara meluncurkan dan menyambung ke instans Amazon EC2 Linux, lihat Mem ulai dengan Amazon EC2 di Panduan Pengguna Amazon EC2.