[アップデート] Amazon Bedrock Agents で特定のエイリアスの実行を一時停止できるライフサイクル機能がリリースされました
こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。
What's New にはまだ来てないのですが、 Amazon Bedrock Agents で特定のエイリアスの実行を一時停止できる、ライフサイクル機能がリリースされました。
Changes This release adds the Agent Lifecycle Paused State feature to Amazon Bedrock agents. By using an agent's alias, you can temporarily suspend agent operations during maintenance, updates, or other situations.
アップデート内容
エイリアスに対して、aliasInvocationState
が追加され ACCEPT_INVOCATIONS
または REJECT_INVOCATIONS
が選択できます。デフォルト(CreateAgentAlias API)は ACCEPT_INVOCATIONS
です。
ユースケースとしては、リリース前は REJECT_INVOCATIONS
で指定しておき、リリース時に ACCEPT_INVOCATIONS
に変更するといったものや、モデルやバージョンの EOL 時に REJECT_INVOCATIONS
に変更するケースが考えられますね。(Web からは ACCEPT_INVOCATIONS
のエイリアスを表示するようにすれば良さそうですね)
以下は CreateAgentAlias API のリクエスト例です。
client.create_agent_alias(
agentAliasName='string',
agentId='string',
clientToken='string',
description='string',
routingConfiguration=[
{
'agentVersion': 'string',
'provisionedThroughput': 'string'
},
],
tags={
'string': 'string'
}
)
やってみた
マネジメントコンソールで hoge エイリアスを作成しました。バージョンは 1 です。
以下のコードで現在の aliasInvocationState
を確認してみます。
import json
import boto3
client = boto3.client('bedrock-agent')
list_agent_alias_res = client.list_agent_aliases(
agentId='DBHHQT6W92',
)
print(json.dumps(list_agent_alias_res, indent=2, default=str))
"aliasInvocationState": "ACCEPT_INVOCATIONS",
となっていることがわかりますね。
(agent-life-cycle-py3.12) @ agent-life-cycle % python app.py
{
"ResponseMetadata": {
"RequestId": "c3a6c9d7-c7cb-4028-ae43-e1f4c6f0ec75",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"date": "Sun, 08 Jun 2025 09:48:28 GMT",
"content-type": "application/json",
"content-length": "604",
"connection": "keep-alive",
"x-amzn-requestid": "c3a6c9d7-c7cb-4028-ae43-e1f4c6f0ec75",
"x-amz-apigw-id": "L1thFGhSNjMELIw=",
"x-amzn-trace-id": "Root=1-68455c6c-0d36a5f46c2b186868d6845d"
},
"RetryAttempts": 0
},
"agentAliasSummaries": [
{
"agentAliasId": "3FKWT2P71B",
"agentAliasName": "hoge",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "ACCEPT_INVOCATIONS",
"createdAt": "2025-06-08 09:33:26.819540+00:00",
"routingConfiguration": [
{
"agentVersion": "1"
}
],
"updatedAt": "2025-06-08 09:33:26.819540+00:00"
},
{
"agentAliasId": "TSTALIASID",
"agentAliasName": "AgentTestAlias",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "ACCEPT_INVOCATIONS",
"createdAt": "2025-06-08 09:22:49.834866+00:00",
"description": "Test Alias for Agent",
"routingConfiguration": [
{
"agentVersion": "DRAFT"
}
],
"updatedAt": "2025-06-08 09:22:49.834866+00:00"
}
]
}
続いて、UpdateAgentAlias API で ACCEPT_INVOCATIONS
から REJECT_INVOCATIONS
へ変更します。
import json
import boto3
client = boto3.client('bedrock-agent')
list_agent_alias_res = client.list_agent_aliases(
agentId='DBHHQT6W92',
)
print(json.dumps(list_agent_alias_res, indent=2, default=str))
client.update_agent_alias(
agentId='DBHHQT6W92',
agentAliasId='3FKWT2P71B',
agentAliasName='hoge',
aliasInvocationState='REJECT_INVOCATIONS',
)
list_agent_alias_res = client.list_agent_aliases(
agentId='DBHHQT6W92',
)
print(json.dumps(list_agent_alias_res, indent=2, default=str))
ACCEPT_INVOCATIONS から REJECT_INVOCATIONS に状態遷移していることがわかります。agentAliasStatus は UPDATING となっていますね。
(agent-life-cycle-py3.12) agent-life-cycle % python app.py
{
"ResponseMetadata": {
"RequestId": "f535b0fa-34ce-4e25-9d65-3c61e12aef30",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"date": "Sun, 08 Jun 2025 09:49:45 GMT",
"content-type": "application/json",
"content-length": "604",
"connection": "keep-alive",
"x-amzn-requestid": "f535b0fa-34ce-4e25-9d65-3c61e12aef30",
"x-amz-apigw-id": "L1ttFHZ-NjMEaOw=",
"x-amzn-trace-id": "Root=1-68455cb9-5fc2e0f753a4998c7a10687c"
},
"RetryAttempts": 0
},
"agentAliasSummaries": [
{
"agentAliasId": "3FKWT2P71B",
"agentAliasName": "hoge",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "ACCEPT_INVOCATIONS",
"createdAt": "2025-06-08 09:33:26.819540+00:00",
"routingConfiguration": [
{
"agentVersion": "1"
}
],
"updatedAt": "2025-06-08 09:33:26.819540+00:00"
},
{
"agentAliasId": "TSTALIASID",
"agentAliasName": "AgentTestAlias",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "ACCEPT_INVOCATIONS",
"createdAt": "2025-06-08 09:22:49.834866+00:00",
"description": "Test Alias for Agent",
"routingConfiguration": [
{
"agentVersion": "DRAFT"
}
],
"updatedAt": "2025-06-08 09:22:49.834866+00:00"
}
]
}
{
"ResponseMetadata": {
"RequestId": "4931e9c0-aaaf-4f65-90eb-0e06a2bc683b",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"date": "Sun, 08 Jun 2025 09:49:46 GMT",
"content-type": "application/json",
"content-length": "604",
"connection": "keep-alive",
"x-amzn-requestid": "4931e9c0-aaaf-4f65-90eb-0e06a2bc683b",
"x-amz-apigw-id": "L1ttHE82tjMEtwQ=",
"x-amzn-trace-id": "Root=1-68455cb9-20fbf7ce0542669e15c16a81"
},
"RetryAttempts": 0
},
"agentAliasSummaries": [
{
"agentAliasId": "3FKWT2P71B",
"agentAliasName": "hoge",
"agentAliasStatus": "UPDATING",
"aliasInvocationState": "REJECT_INVOCATIONS",
"createdAt": "2025-06-08 09:33:26.819540+00:00",
"routingConfiguration": [
{
"agentVersion": "1"
}
],
"updatedAt": "2025-06-08 09:49:45.834290+00:00"
},
{
"agentAliasId": "TSTALIASID",
"agentAliasName": "AgentTestAlias",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "ACCEPT_INVOCATIONS",
"createdAt": "2025-06-08 09:22:49.834866+00:00",
"description": "Test Alias for Agent",
"routingConfiguration": [
{
"agentVersion": "DRAFT"
}
],
"updatedAt": "2025-06-08 09:22:49.834866+00:00"
}
]
}
数秒待つと agentAliasStatus は PREPARED となりました。
routingConfiguration
から aliasInvocationState を変更すると、agentVersion も上がっていることがわかります。
(agent-life-cycle-py3.12) agent-life-cycle % python app.py
{
"ResponseMetadata": {
"RequestId": "36d94775-a78e-4024-bdff-bda98a59b13d",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"date": "Sun, 08 Jun 2025 09:50:28 GMT",
"content-type": "application/json",
"content-length": "604",
"connection": "keep-alive",
"x-amzn-requestid": "36d94775-a78e-4024-bdff-bda98a59b13d",
"x-amz-apigw-id": "L1tzvFkqtjMEmag=",
"x-amzn-trace-id": "Root=1-68455ce4-2b00411c6c9337932d2b4730"
},
"RetryAttempts": 0
},
"agentAliasSummaries": [
{
"agentAliasId": "3FKWT2P71B",
"agentAliasName": "hoge",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "REJECT_INVOCATIONS",
"createdAt": "2025-06-08 09:33:26.819540+00:00",
"routingConfiguration": [
{
"agentVersion": "2"
}
],
"updatedAt": "2025-06-08 09:49:45.834290+00:00"
},
{
"agentAliasId": "TSTALIASID",
"agentAliasName": "AgentTestAlias",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "ACCEPT_INVOCATIONS",
"createdAt": "2025-06-08 09:22:49.834866+00:00",
"description": "Test Alias for Agent",
"routingConfiguration": [
{
"agentVersion": "DRAFT"
}
],
"updatedAt": "2025-06-08 09:22:49.834866+00:00"
}
]
}
この状態でコンソールから実行すると、「This agent is currently paused for maintenance. Try again later.
」で表示され、エージェントの実行が制御されていますね。想定通りです。
続いて、ACCEPT_INVOCATIONS
に戻してみます。
import json
import boto3
client = boto3.client('bedrock-agent')
list_agent_alias_res = client.list_agent_aliases(
agentId='DBHHQT6W92',
)
print(json.dumps(list_agent_alias_res, indent=2, default=str))
client.update_agent_alias(
agentId='DBHHQT6W92',
agentAliasId='3FKWT2P71B',
agentAliasName='hoge',
aliasInvocationState='ACCEPT_INVOCATIONS',
)
list_agent_alias_res = client.list_agent_aliases(
agentId='DBHHQT6W92',
)
print(json.dumps(list_agent_alias_res, indent=2, default=str))
REJECT_INVOCATIONS
から ACCEPT_INVOCATIONS
に変わっています。同じく agentAliasStatus は UPDATING となっています。
(agent-life-cycle-py3.12) agent-life-cycle % python app.py
{
"ResponseMetadata": {
"RequestId": "9d015946-6e13-419f-b063-bd196e91a794",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"date": "Sun, 08 Jun 2025 09:51:44 GMT",
"content-type": "application/json",
"content-length": "604",
"connection": "keep-alive",
"x-amzn-requestid": "9d015946-6e13-419f-b063-bd196e91a794",
"x-amz-apigw-id": "L1t_nHteNjMELcg=",
"x-amzn-trace-id": "Root=1-68455d30-1754204b319be17770ec5630"
},
"RetryAttempts": 0
},
"agentAliasSummaries": [
{
"agentAliasId": "3FKWT2P71B",
"agentAliasName": "hoge",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "REJECT_INVOCATIONS",
"createdAt": "2025-06-08 09:33:26.819540+00:00",
"routingConfiguration": [
{
"agentVersion": "2"
}
],
"updatedAt": "2025-06-08 09:49:45.834290+00:00"
},
{
"agentAliasId": "TSTALIASID",
"agentAliasName": "AgentTestAlias",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "ACCEPT_INVOCATIONS",
"createdAt": "2025-06-08 09:22:49.834866+00:00",
"description": "Test Alias for Agent",
"routingConfiguration": [
{
"agentVersion": "DRAFT"
}
],
"updatedAt": "2025-06-08 09:22:49.834866+00:00"
}
]
}
{
"ResponseMetadata": {
"RequestId": "ed60ac7d-851d-41b0-9734-391d0209e49c",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"date": "Sun, 08 Jun 2025 09:51:44 GMT",
"content-type": "application/json",
"content-length": "601",
"connection": "keep-alive",
"x-amzn-requestid": "ed60ac7d-851d-41b0-9734-391d0209e49c",
"x-amz-apigw-id": "L1t_pEtttjMEPag=",
"x-amzn-trace-id": "Root=1-68455d30-322111cf05e0c3bb5cfaf47f"
},
"RetryAttempts": 0
},
"agentAliasSummaries": [
{
"agentAliasId": "3FKWT2P71B",
"agentAliasName": "hoge",
"agentAliasStatus": "UPDATING",
"aliasInvocationState": "ACCEPT_INVOCATIONS",
"createdAt": "2025-06-08 09:33:26.819540+00:00",
"routingConfiguration": [
{
"agentVersion": "2"
}
],
"updatedAt": "2025-06-08 09:51:44.457044+00:00"
},
{
"agentAliasId": "TSTALIASID",
"agentAliasName": "AgentTestAlias",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "ACCEPT_INVOCATIONS",
"createdAt": "2025-06-08 09:22:49.834866+00:00",
"description": "Test Alias for Agent",
"routingConfiguration": [
{
"agentVersion": "DRAFT"
}
],
"updatedAt": "2025-06-08 09:22:49.834866+00:00"
}
]
}
数秒待つと agentAliasStatus は PREPARED となりました。こちらも agentVersion が上がっていますね。
(agent-life-cycle-py3.12) agent-life-cycle % python app.py
{
"ResponseMetadata": {
"RequestId": "45410ae3-20b9-49d4-a201-540c267eb0a7",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"date": "Sun, 08 Jun 2025 09:52:10 GMT",
"content-type": "application/json",
"content-length": "601",
"connection": "keep-alive",
"x-amzn-requestid": "45410ae3-20b9-49d4-a201-540c267eb0a7",
"x-amz-apigw-id": "L1uDtH2RNjMERqA=",
"x-amzn-trace-id": "Root=1-68455d4a-61552b6b442384fc0b63e9ba"
},
"RetryAttempts": 0
},
"agentAliasSummaries": [
{
"agentAliasId": "3FKWT2P71B",
"agentAliasName": "hoge",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "ACCEPT_INVOCATIONS",
"createdAt": "2025-06-08 09:33:26.819540+00:00",
"routingConfiguration": [
{
"agentVersion": "3"
}
],
"updatedAt": "2025-06-08 09:51:44.457044+00:00"
},
{
"agentAliasId": "TSTALIASID",
"agentAliasName": "AgentTestAlias",
"agentAliasStatus": "PREPARED",
"aliasInvocationState": "ACCEPT_INVOCATIONS",
"createdAt": "2025-06-08 09:22:49.834866+00:00",
"description": "Test Alias for Agent",
"routingConfiguration": [
{
"agentVersion": "DRAFT"
}
],
"updatedAt": "2025-06-08 09:22:49.834866+00:00"
}
]
}
まとめ
以上、「Amazon Bedrock Agents で特定のエイリアスの実行を一時停止できる、ライフサイクル機能がリリースされました」でした。
触ってみて気がついたのですが、最新バージョンのリリースや EOL 以外にもメンテナンス入れたいタイミングでも使えそうですね。
参考になれば幸いです。クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!