View a markdown version of this page

Konfigurasikan pengaturan AgentCore siklus hidup Amazon Bedrock - Batu Dasar Amazon AgentCore

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.

Atribut konfigurasi

Atribut Tipe Rentang (detik) Diperlukan Deskripsi

idleRuntimeSessionTimeout

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)

maxLifetime

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 dengan maxLifetime

  • 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 maxLifetime harus kurang dari atau sama dengan maxLifetime yang ditentukan penyedia kapasitas di dalamnya InstanceLifecycleConfiguration

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, maxLifetime lebih besar dari maxLifetime yang ditentukan penyedia kapasitas di dalamnyaInstanceLifecycleConfiguration. Untuk menjalankan sesi lebih lama dari yang diizinkan penyedia kapasitas, tingkatkan penyedia kapasitas terlebih maxLifetime dahulu.

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 runtimeSessionId mendapat microVM sendiri dengan pengatur waktu siklus hidup independen

  • Reset pengatur waktu idle: idleRuntimeSessionTimeout Reset setiap kali Anda memanggil sesi yang sama

  • Penegakan seumur hidup maksimum: maxLifetime Timer 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 maxLifetime di 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