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()
}
}
ひょっとしたらもっと良い方法があるかもしれないが、試した限りではこれが最もシンプルだった。
-
これはterraform-provider-aws 5.78.0のバージョン時点の情報であり、今後変更される可能性もある) ↩︎