跳至内容

如何解决 Amazon Bedrock 中的“Failed to delete knowledge base”错误?

2 分钟阅读
0

我尝试删除 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 所需的权限。

要解决此错误,请完成以下一个或多个解决方法。

解决方法

确认关联的向量存储是否存在

完成以下步骤:

  1. 打开 Amazon OpenSearch Service 控制台
  2. 在导航窗格中,展开 Serverless(无服务器)并选择 Collections(集合)。
  3. 在搜索栏中,输入与知识库关联的集合。如果该集合不可用,则表明您已删除了向量存储。

将数据删除策略设置为“保留”

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

完成以下步骤:

  1. 打开 Amazon Bedrock 控制台
  2. 在导航窗格中的 Build(构建)下,选择 Knowledge Bases(知识库)。
  3. 查找状态为 Delete unsuccessful(删除失败)的知识库。
  4. 选择该知识库对应的数据来源名称。
  5. 选择 Edit(编辑)。
  6. 展开 Advanced settings(高级设置),将 Data deletion policy(数据删除策略)设置为 Retain(保留)。
  7. 选择 Submit(提交)。
  8. 删除数据来源。
  9. 删除知识库

您还可以运行 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 无服务器,请更新数据访问策略,使其包含删除权限

  • 对于 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 替换为主用户。

  • 对于第三方数据库,请确保您拥有删除数据所需的权限。

AWS 官方已更新 3 个月前