Bedrock Agentsのバージョンをterraform apply毎に更新する

解決したい問題

Amazon Bedrock AgentはTerraformでリソース定義できるようになっている。
Bedrock AgentsはSlackなどから容易に呼び出せるようになっているのだが、 連携させる際にはエイリアス(これがバージョンと紐づけられる)が必要となる。

しかし、terraformではエイリアスを作成したときにだけバージョンが作成されるようだ。
つまりBedrock Agentsの構成に変更を加えても、エイリアスが古いバージョンが参照し続けてしまうという不都合がある。1

これを解決するため、自動的にエイリアスが最新バージョンを参照できるようにする方法をメモしておく。

解決方法

Terraformでエイリアスのリソースを作るたび、自動的にバージョンが払い出されるようだ。
したがって、毎回強制的にエイリアスがreplaceされるようにすればよい。

以下が実装サンプル。

resource "aws_bedrockagent_agent_alias" "this" {
  agent_alias_name = "latest"
  agent_id         = module.agent.agent_id

  lifecycle {
    replace_triggered_by = [
      null_resource.trigger.id
    ]
  }
}

resource "null_resource" "trigger" {
  triggers = {
    always_run = timestamp()
  }
}

ひょっとしたらもっと良い方法があるかもしれないが、試した限りではこれが最もシンプルだった。


  1. これはterraform-provider-aws 5.78.0のバージョン時点の情報であり、今後変更される可能性もある) ↩︎

関連記事


  1. Terraformを選定する3つの理由
  2. TerraformでGitHub ActionsのIPリストを参照する
  3. GenUのRAGにおけるクエリ・応答生成の仕組みを調べてみた
  4. 生成AIの現状を踏まえ、社内活用と未来を考えてみる
  5. AWSでクロスアカウントアクセスと相性のよいサービス
  6. OpenID Connect Discovery 1.0についての調査メモ
  7. Powertoolsでリクエストパラメータをバリデーションする

comments powered by Disqus