Amazon Bedrockナレッジベースが削除できないときの対処法【dataDeletionPolicy RETAIN】

AWS

はじめに

おつかされまです。tyamonです。

この記事では、Amazon Bedrockのナレッジベースが削除できなくなったときの対処法を紹介します。S3バケットをナレッジベースより先に削除してしまい、DELETE_UNSUCCESSFUL 状態で詰まっている方に届けば幸いです。

結論:コンソールからデータ削除ポリシーを「保持」に変更するだけで解決します。CLIで解決しようとすると沼にハマるので注意してください。


S3バケットを先に消したらナレッジベースが削除できなくなった

us-east-1 のS3インライン構成(クイックスタート)でナレッジベースを作っていました。設定を変えて作り直そうとして、先にS3バケットを削除した状態でナレッジベースの削除を実行したところ、以下のエラーが出て失敗しました。

Unable to delete data from vector store for data source with ID XXXXXXXX.
Check your vector store configurations and permissions and retry your request.
If the issue persists, consider updating the dataDeletionPolicy of the data source
to RETAIN and retry your request.

エラーには「dataDeletionPolicyRETAIN に変更してから再試行してください」と書いてあります。ところが、これが一筋縄ではいきませんでした。


コンソールから「保持」に変更して解決【Bedrockナレッジベース削除できない】

  1. Bedrockコンソールで対象のナレッジベースを開く
  2. データソースを選択して詳細画面を開く
  3. 「データ削除ポリシー」を 「保持」 に変更して保存する
  1. データソースを削除する
  2. ナレッジベースを削除する

以上です。

[!NOTE]
参考記事では「日本語コンソールでは保持という値がAPIに送られてバリデーションエラーになるため、英語コンソールへの切り替えが必要」と紹介されています。今回は日本語コンソールのままで問題なく変更できました。


CLIで解決しようとすると詰まる

CLIで update-data-source を実行すると、APIとCLIのバリデーションが矛盾してどうにもなりません。

aws bedrock-agent update-data-source \
  --knowledge-base-id XXXXXXXX \
  --data-source-id XXXXXXXX \
  --name "データソース名" \
  --data-source-configuration '{"type":"S3","s3Configuration":{"bucketArn":"arn:aws:s3:::バケット名"}}' \
  --data-deletion-policy RETAIN \
  --region us-east-1

このコマンドを実行するとAPIから「DELETE_UNSUCCESSFUL 状態では dataDeletionPolicy しか変更できない」と返ってきます。では --name--data-source-configuration を省略すると、今度はCLI側のバリデーションに「必須パラメータが足りない」と弾かれます。boto3で直接叩いても同じ結果でした。コンソールから操作するのが確実です。


まとめ

S3バケットを先に削除してナレッジベースが DELETE_UNSUCCESSFUL 状態になった場合、コンソールからデータ削除ポリシーを「保持」に変更することで解決できます。CLIやSDKでは詰まるので、まずコンソールからの操作を試してみてください。


参考資料

コメント

タイトルとURLをコピーしました