我嘗試刪除 Amazon Bedrock 知識庫,但收到 "Failed to delete knowledge base" 錯誤。
簡短描述
建立知識庫時,預設的 dataDeletionPolicy 設定為 Delete (刪除)。如果您刪除與知識庫相關聯的資料來源,該政策會刪除所有資料,但不會刪除向量存放區。如果您將 dataDeletionPolicy 設定為 Retain (保留),則在刪除資料來源時,該政策會保留所有資料。
當您刪除 Amazon Bedrock 知識庫時,您可能會收到以下錯誤:
"Failed to delete example-knowledge-base.Unable to delete data from vector store for data source with example-id.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."
此錯誤發生的原因如下:
- 向量存放區不存在或您先前已刪除。
- 知識庫執行角色沒有 AWS Identity and Access Management (IAM) 權限來刪除儲存在向量存放區中的資料。
- 知識庫服務角色沒有操作特定資料庫 API 所需的權限。
若要解決此錯誤,請完成一個或多個解決方法。
解決方法
確認相關聯的向量存放區存在
請完成下列步驟:
- 開啟 Amazon OpenSearch Service console (Amazon OpenSearch Service 主控台)。
- 在導覽窗格中,展開 Serverless (無伺服器) 並選擇 Collections (集合)。
- 在搜尋列中,輸入與知識庫相關的集合。如果該集合無法使用,那麼您已刪除向量存放區。
將資料刪除政策設為「保留」
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
請完成下列步驟:
- 開啟 Amazon Bedrock console (Amazon Bedrock 主控台)。
- 在導覽窗格中,於 Build (建立) 下,選擇 Knowledge Bases (知識庫)。
- 找到狀態為 Delete unsuccessful (刪除失敗) 的知識庫。
- 選取該知識庫的資料來源名稱。
- 選擇 Edit (編輯)。
- 展開 Advanced settings (進階設定),將 Data deletion policy (資料刪除政策) 設定為 Retain (保留)。
- 選擇 Submit (提交)。
- 刪除資料來源。
- 刪除知識庫。
您也可以執行 update-data-source AWS CLI 命令來變更資料來源刪除政策:
aws bedrock-agent update-data-source --region region-name --data-source-id your-data-source-id --knowledge-base-id your-knowledge-base-id --name "your-knowledge-base-name" --data-source-configuration '{"s3Configuration":{"bucketArn":"arn:aws:s3:::<S3_Bucket_Name>"},"type":"S3"}' --vector-ingestion-configuration '{"parsingConfiguration":{"bedrockFoundationModelConfiguration":{"modelArn":"arn:aws:bedrock:region: account-id:inference-profile/model_id"},"parsingStrategy":"BEDROCK_FOUNDATION_MODEL"}}' --data-deletion-policy "RETAIN"
**注意:**將以下值替換為如下所示:
- 將 region-name 替換為您的 AWS 區域
- 將 your-data-source-id 替換為您的資料來源 ID
- 將 your-knowledge-base-id 替換為您的知識庫 ID
- 將 your-knowledge-base-name 替換為您的知識庫名稱
- 將 region 替換為您的區域
- 將 account-id 替換為您的 AWS 帳戶 ID
- 將 model_id 替換為您的 Amazon Bedrock 模型 ID
授予 IAM 角色權限以刪除資料
若要解決您的權限問題,請根據您使用的向量存放區服務執行以下其中一個動作:
-
對於 Amazon OpenSearch Serverless,請更新資料存取政策,新增要刪除的權限。
-
對於 Amazon Aurora PostgreSQL 相容版本,請執行下列其中一個 SQL 命令,以授予主要使用者權限:
GRANT pg_read_all_data, pg_write_all_data TO example-username;
**注意:**將 example-username 替換為主要使用者名稱。
-或-
執行以下程式碼:
GRANT SELECT, DELETE ON example-schema-name. example-table-name TO example-username;
**注意:**將 example-schema-name 替換為結構描述名稱,將 example-table-name 替換為資料表名稱,並將 example-username 替換為主要使用者。
-
對於第三方資料庫,請確認您具有刪除資料所需的權限。