我尝试删除 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 所需的权限。
要解决此错误,请使用以下解决方法之一。
解决方法
确认您是否删除了向量存储
完成以下步骤:
- 打开 OpenSearch Service 控制台。
- 在导航窗格中,展开 Serverless(无服务器)并选择 Collections(集合)。
- 在搜索栏中,输入与知识库关联的集合。如果该集合不可用,则表明您已删除了向量存储。
将数据删除策略设置为“保留”
完成以下步骤:
- 打开 Amazon Bedrock 控制台。
- 在导航窗格中,展开 Builder tools(生成器工具),然后选择 Knowledge bases(知识库)。
- 选择要删除的知识库。
- 在 Data source(数据来源)部分中,选择状态为 Delete unsuccessful(删除失败)的数据来源。
- 在新的数据来源概述页面中,选择 Edit(编辑)。
- 展开 Advanced settings(高级设置),然后将 Data deletion policy(数据删除策略)设置为 Retain(保留)。
- 选择 Submit(提交)。
- 删除知识库。
授予 IAM 角色删除数据的权限
要解决您的权限问题,请根据您用于向量存储的服务执行以下操作之一:
- 对于 Amazon OpenSearch 无服务器,请更新数据访问策略,使其包含删除权限。
- 对于 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 替换为主用户。
- 对于第三方数据库,请确保您拥有删除数据所需的权限。