[アップデート] Amazon Bedrock Agents で特定のエイリアスの実行を一時停止できるライフサイクル機能がリリースされました

[アップデート] Amazon Bedrock Agents で特定のエイリアスの実行を一時停止できるライフサイクル機能がリリースされました

Clock Icon2025.06.08

こんにちは!クラウド事業本部コンサルティング部のたかくに(@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.

https://awsapichanges.com/archive/changes/39c9c0-bedrock-agent.html

アップデート内容

エイリアスに対して、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'
    }
)

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-agent/client/create_agent_alias.html

やってみた

マネジメントコンソールで hoge エイリアスを作成しました。バージョンは 1 です。

2025-06-08 at 19.06.45-エージェントの詳細  エージェント  Amazon Bedrock  ap-northeast-1.png

以下のコードで現在の 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.」で表示され、エージェントの実行が制御されていますね。想定通りです。

2025-06-08 at 18.51.11-エイリアスの詳細  エージェント  Amazon Bedrock  ap-northeast-1.png

続いて、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_)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.