Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan pengaturan AgentCore siklus hidup Amazon Bedrock
Parameter LifecycleConfiguration input untuk CreateAgentRuntime memungkinkan Anda mengelola siklus hidup sesi runtime dan sumber daya di Amazon Bedrock AgentCore Runtime. Konfigurasi ini membantu mengoptimalkan pemanfaatan sumber daya dengan membersihkan sesi idle secara otomatis dan mencegah instans yang berjalan lama menghabiskan sumber daya tanpa batas waktu.
Anda juga dapat mengonfigurasi pengaturan siklus hidup untuk AgentCore Runtime yang ada dengan UpdateAgentRuntime operasi.
Topik
Atribut konfigurasi
| Atribut | Tipe | Rentang (detik) | Diperlukan | Deskripsi |
|---|---|---|---|---|
|
|
Bilangan Bulat |
60—28800 (MicroVM) 60—1209600 (Contoh) |
Tidak |
Batas waktu dalam detik untuk sesi runtime idle. Ketika sesi tetap tidak aktif selama durasi ini, itu akan memicu penghentian. Pengakhiran dapat berlangsung hingga 15 detik karena pencatatan dan penyelesaian proses lainnya. Default: 900 detik (15 menit) |
|
|
Bilangan Bulat |
60—28800 (MicroVM) 60—1209600 (Contoh) |
Tidak |
Masa pakai maksimum untuk contoh dalam hitungan detik. Setelah tercapai, instance akan menginisialisasi penghentian. Pengakhiran dapat berlangsung hingga 15 detik karena pencatatan dan penyelesaian proses lainnya. Default: 28800 detik (8 jam). Sesi itu sendiri dapat bertahan di luar ini dengan instance baru yang disediakan. |
catatan
Nilai maksimum untuk kedua atribut tergantung pada jenis komputasi AgentCore Runtime. Runtime yang menggunakan microVM menerima hingga 28800 detik (8 jam). Runtime yang menggunakan penyedia kapasitas (Instans) menerima hingga 1209600 detik (14 hari). Jika Anda menentukan nilai di atas maksimum untuk jenis komputasi Anda, permintaan gagal dengan aValidationException. Untuk informasi selengkapnya, lihat Instans .
Batasan
-
idleRuntimeSessionTimeoutharus kurang dari atau sama denganmaxLifetime -
Kedua nilai diukur dalam detik
-
Rentang yang valid untuk runtime yang menggunakan microVM: 60 hingga 28800 detik (hingga 8 jam)
-
Rentang yang valid untuk runtime yang menggunakan penyedia kapasitas (Instans): 60 hingga 1209600 detik (hingga 14 hari)
-
Untuk runtime yang menggunakan penyedia kapasitas, juga
maxLifetimeharus kurang dari atau sama denganmaxLifetimeyang ditentukan penyedia kapasitas di dalamnyaInstanceLifecycleConfiguration
Perilaku default
Ketika tidak LifecycleConfiguration disediakan atau berisi nilai nol, platform menerapkan logika berikut:
| Masukan Pelanggan | menganggur RuntimeSessionTimeout | Maksimumseumur hidup | Hasil |
|---|---|---|---|
|
Tidak ada konfigurasi |
900 detik |
28800s |
Menggunakan default: 900s dan 28800s |
|
Hanya MaxLifetime yang disediakan |
900 detik |
Nilai pelanggan |
Jika maxLifetime ≤ 900s: menggunakan maxLifetime untuk keduanya Jika maxLifetime> 900s: menggunakan 900s untuk idle, nilai pelanggan untuk maks |
|
Hanya IdleTimeout yang disediakan |
Nilai pelanggan |
28800s |
Menggunakan nilai pelanggan untuk idle, 28800s untuk maks |
|
Kedua nilai yang diberikan |
Nilai pelanggan |
Nilai pelanggan |
Menggunakan nilai pelanggan apa adanya |
Nilai default
-
idleRuntimeSessionTimeout: 900 detik (15 menit) -
maxLifetime: 28800 detik (8 jam)
Buat AgentCore Runtime dengan konfigurasi siklus hidup
Anda dapat menentukan konfigurasi siklus hidup saat membuat AgentCore Runtime.
import boto3 client = boto3.client('bedrock-agentcore-control', region_name='us-west-2') try: response = client.create_agent_runtime( agentRuntimeName='my_agent_runtime', agentRuntimeArtifact={ 'containerConfiguration': { 'containerUri': '123456789012.dkr.ecr.us-west-2.amazonaws.com/my-agent:latest' } }, lifecycleConfiguration={ 'idleRuntimeSessionTimeout': 1800, # 30 minutes, configurable 'maxLifetime': 14400 # 4 hours }, networkConfiguration={'networkMode': 'PUBLIC'}, roleArn='arn:aws:iam::123456789012:role/AgentRuntimeRole' ) print(f"Agent runtime created: {response['agentRuntimeArn']}") except client.exceptions.ValidationException as e: print(f"Validation error: {e}") except Exception as e: print(f"Error creating agent runtime: {e}")
Memperbarui konfigurasi siklus hidup untuk AgentCore Runtime
Anda dapat memperbarui konfigurasi siklus hidup untuk AgentCore Runtime yang ada.
import boto3 client = boto3.client('bedrock-agentcore-control', region_name='us-west-2') agent_runtime_id = 'my_agent_runtime' try: response = client.update_agent_runtime( agentRuntimeId=agent_runtime_id, agentRuntimeArtifact={ 'containerConfiguration': { 'containerUri': '123456789012.dkr.ecr.us-west-2.amazonaws.com/my-agent:latest' } }, networkConfiguration={'networkMode': 'PUBLIC'}, roleArn='arn:aws:iam::123456789012:role/AgentRuntimeRole', lifecycleConfiguration={ 'idleRuntimeSessionTimeout': 600, # 10 minutes 'maxLifetime': 7200 # 2 hours } ) print("Lifecycle configuration updated successfully") except client.exceptions.ValidationException as e: print(f"Validation error: {e}") except client.exceptions.ResourceNotFoundException: print("Agent runtime not found") except Exception as e: print(f"Error updating configuration: {e}")
Dapatkan konfigurasi siklus hidup untuk AgentCore Runtime
Anda bisa mendapatkan konfigurasi siklus hidup untuk AgentCore Runtime yang ada.
import boto3 client = boto3.client('bedrock-agentcore-control', region_name='us-west-2') def get_lifecycle_config(): try: response = client.get_agent_runtime(agentRuntimeId="my_agent_runtime") lifecycle_config = response.get('lifecycleConfiguration', {}) idle_timeout = lifecycle_config.get('idleRuntimeSessionTimeout', 900) max_lifetime = lifecycle_config.get('maxLifetime', 28800) print(f"Current configuration:") print(f" Idle timeout: {idle_timeout}s ({idle_timeout//60} minutes)") print(f" Max lifetime: {max_lifetime}s ({max_lifetime//3600} hours)") return lifecycle_config except Exception as e: print(f"Error retrieving configuration: {e}") return None # Usage config = get_lifecycle_config() print(config)
Validasi dan kendala
Konfigurasi siklus hidup mencakup aturan validasi dan batasan untuk mencegah konfigurasi yang tidak valid. Jika permintaan Anda melanggar salah satu aturan berikut, itu gagal denganValidationException:
-
Salah satu nilai di bawah 60 detik, atau di atas maksimum untuk jenis komputasi runtime (28800 detik untuk MicroVM, 1209600 detik untuk Instans).
-
idleRuntimeSessionTimeoutlebih besar darimaxLifetime. -
Untuk runtime yang menggunakan penyedia kapasitas,
maxLifetimelebih besar darimaxLifetimeyang ditentukan penyedia kapasitas di dalamnyaInstanceLifecycleConfiguration. Untuk menjalankan sesi lebih lama dari yang diizinkan penyedia kapasitas, tingkatkan penyedia kapasitas terlebihmaxLifetimedahulu.
Kesalahan validasi umum
import boto3 client = boto3.client('bedrock-agentcore-control', region_name='us-west-2') try: client.create_agent_runtime( agentRuntimeName='invalid_config_agent', agentRuntimeArtifact={ 'containerConfiguration': { 'containerUri': '123456789012.dkr.ecr.us-west-2.amazonaws.com/my-agent:latest' } }, lifecycleConfiguration={ 'idleRuntimeSessionTimeout': 3600, # 1 hour, configurable 'maxLifetime': 1800 # 30 minutes - INVALID! }, networkConfiguration={'networkMode': 'PUBLIC'}, roleArn='arn:aws:iam::123456789012:role/AgentRuntimeRole', ) except client.exceptions.ValidationException as e: print(f"Validation failed: {e}") # Output: idleRuntimeSessionTimeout must be less than or equal to maxLifetime
Fungsi pembantu validasi
MICROVM_MAX_SECONDS = 28800 # 8 hours INSTANCES_MAX_SECONDS = 1209600 # 14 days MIN_SECONDS = 60 def validate_lifecycle_config(idle_timeout, max_lifetime, uses_capacity_provider=False): """Validate lifecycle configuration before API call""" errors = [] # The maximum depends on the compute type of the runtime maximum = INSTANCES_MAX_SECONDS if uses_capacity_provider else MICROVM_MAX_SECONDS # Check range constraints if not (MIN_SECONDS <= idle_timeout <= maximum): errors.append(f"idleRuntimeSessionTimeout must be between {MIN_SECONDS} and {maximum} seconds") if not (MIN_SECONDS <= max_lifetime <= maximum): errors.append(f"maxLifetime must be between {MIN_SECONDS} and {maximum} seconds") # Check relationship constraint if idle_timeout > max_lifetime: errors.append(f"idleRuntimeSessionTimeout ({idle_timeout}s) must be <= maxLifetime ({max_lifetime}s)") return errors # Usage errors = validate_lifecycle_config(3600, 1800) if errors: for error in errors: print(f"Validation error: {error}") else: print("Configuration is valid")
Pengaturan siklus hidup dan sesi runtime
Pengaturan konfigurasi siklus hidup yang Anda tentukan diterapkan ke setiap sesi runtime individu. Saat Anda memanggil agen dengan spesifikruntimeSessionId, AgentCore Runtime menyediakan microVM khusus untuk sesi itu. Batas waktu siklus hidup (idleRuntimeSessionTimeoutdanmaxLifetime) mengatur siklus hidup instance microVM tertentu.
import boto3 import json import uuid client = boto3.client('bedrock-agentcore', region_name='us-west-2') # Each unique runtimeSessionId gets its own microVM with lifecycle settings applied session_id_user_1 = str(uuid.uuid4()) # User 1's session session_id_user_2 = str(uuid.uuid4()) # User 2's session # First invocation for User 1 - creates new microVM with lifecycle timers response1 = client.invoke_agent_runtime( agentRuntimeArn='arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent', runtimeSessionId=session_id_user_1, # Dedicated microVM for this session payload=json.dumps({"prompt": "Hello from User 1"}).encode() ) # First invocation for User 2 - creates separate microVM with its own lifecycle timers response2 = client.invoke_agent_runtime( agentRuntimeArn='arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent', runtimeSessionId=session_id_user_2, # Different microVM for this session payload=json.dumps({"prompt": "Hello from User 2"}).encode() ) # Subsequent invocations to same session reuse the existing microVM # The idle timeout resets with each invocation to the same session response3 = client.invoke_agent_runtime( agentRuntimeArn='arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent', runtimeSessionId=session_id_user_1, # Reuses User 1's existing microVM payload=json.dumps({"prompt": "Follow-up from User 1"}).encode() )
Poin-poin penting tentang pengaturan siklus hidup dan sesi:
-
Per-session isolasi: Masing-masing
runtimeSessionIdmendapat microVM sendiri dengan pengatur waktu siklus hidup independen -
Reset pengatur waktu idle:
idleRuntimeSessionTimeoutReset setiap kali Anda memanggil sesi yang sama -
Penegakan seumur hidup maksimum:
maxLifetimeTimer dimulai saat microVM pertama kali dibuat dan tidak dapat diatur ulang -
Pengakhiran sesi: Ketika salah satu batas waktu tercapai, hanya microVM sesi tertentu yang dihentikan. Sesi dapat dilanjutkan dengan MicroVM baru yang disediakan.
Tip
Setiap sesi MicroVM menggunakan aset kode (agentRuntimeArtifact) yang digunakan pada saat pembuatan microVM. Jika Anda memperbarui runtime agen dengan kode baru, sesi yang ada akan terus menggunakan versi sebelumnya hingga berakhir dan sesi baru dibuat.
Praktik terbaik
Ikuti praktik terbaik ini saat mengonfigurasi pengaturan siklus hidup untuk pemanfaatan sumber daya dan pengalaman pengguna yang optimal.
Rekomendasi
-
Mulailah dengan default (900s idle, 28800s maks) dan sesuaikan berdasarkan pola penggunaan
-
Periksa jenis komputasi Anda sebelum menaikkan
maxLifetimedi atas 8 jam—hanya runtime yang menggunakan penyedia kapasitas (Instans) yang menerima nilai yang lebih panjang -
Pantau durasi sesi untuk mengoptimalkan nilai batas waktu
-
Gunakan batas waktu yang lebih pendek untuk lingkungan pengembangan untuk menghemat biaya
-
Pertimbangkan pengalaman pengguna - batas waktu yang terlalu singkat dapat mengganggu pengguna aktif
-
Uji perubahan konfigurasi di lingkungan non-produksi terlebih dahulu
-
Dokumen alasan batas waktu untuk kasus penggunaan spesifik Anda
Pola umum
| Kasus Penggunaan | Batas Waktu Idle | Seumur Hidup Maks | Alasannya |
|---|---|---|---|
|
Obrolan Interaktif |
10-15 menit |
2-4 jam |
Seimbangkan responsivitas dengan penggunaan sumber daya |
|
Pengolahan Batch |
30 menit |
8 jam |
Memungkinkan operasi yang berjalan lama |
|
Pengembangan |
5 menit |
30 menit |
Pembersihan cepat untuk pengoptimalan biaya |
|
API Produksi |
15 menit |
4 jam |
Beban kerja produksi standar |
|
Demo/Testing |
2 menit |
15 menit |
Pembersihan agresif untuk penggunaan sementara |