如何排除 Amazon Bedrock 中的 InvokeModel API 错误?

2 分钟阅读
0

我想解决在调用 InvokeModel API 时遇到的 AccessDeniedException 或 ValidationException 错误。

解决方法

当您在 Amazon Bedrock 中调用 InvokeModel API 时,可能会遇到“访问被拒绝” 或 “验证” 错误。当 API 无法访问其尝试调用的基础模型时,就会发生这些错误。如果您的账户没有运行该操作所需的权限,也可能会出现该错误。

模型访问错误

Error: "An error occurred (AccessDeniedException) when calling the InvokeModel operation: Your account is not authorized to invoke this API operation."
-或-
Error: "An error occurred (AccessDeniedException) when calling the InvokeModel operation: You don't have access to the model with the specified model ID."

这些错误表明您无权访问您尝试使用 API 调用的模型。

要解决此问题,请完成以下步骤:

  1. 确保该模型在您调用 API 的同一 AWS 区域中提供。有关更多信息,请参阅 AWS 区域的模型支持
  2. 验证访问状态是否设置为 “已授予”。有关更多信息,请参阅添加模型访问权限
    **注意:**这是 AWS 区域的一次性设置。

AWS Identity and Access Management(IAM)权限错误

Error: "AccessDeniedException: An error occurred (AccessDeniedException) when calling the InvokeModel operation: User: <> is not authorized to perform: bedrock:InvokeModel on resource: <> with an explicit deny in an identity-based policy."
-或-
Error: "AccessDeniedException: An error occurred (AccessDeniedException) when calling the InvokeModel operation: User: <> is not authorized to perform: bedrock:InvokeModel on resource: <> because no identity-based policy allows the bedrock:InvokeModel action."

这些错误表明尝试调用 API 的 IAM 用户或角色缺乏所需的权限。

要解决错误,请验证是否满足以下条件:

  1. 用于调用此 API 的 IAM 用户或角色具有必要的 ALLOW 操作,如下所示。有关详细信息,请参阅 Amazon Bedrock 如何与 IAM 协同工作

    {
      "Version": "2012-10-17",
      "Statement": {
        "Sid": "AllowInference",
        "Effect": "Allow",
        "Action": [
          "bedrock:InvokeModel",
          "bedrock:InvokeModelWithResponseStream"
        ],
        "Resource": "arn:aws:bedrock:*::foundation-model/model-id"
      }
    }
  2. 确认您的 AWS Organizations 级别的服务控制策略 (SCP) 中没有指定显式 DENY 操作。DENY 操作可能会影响权限。

API 操作错误

Error: "ValidationException: An error occurred (ValidationException) when calling the InvokeModel operation: The requested operation is not recognized by the service."

使用错误的 API 操作时,就会出现此错误。

要解决此问题,请在 API 调用中将 bedrock-runtime 指定为服务。有关更多信息,请参阅 ActionsBedrockRuntime

SDK 版本错误

Error: "UnknownServiceError: Unknown service: 'bedrock-runtime"

使用不兼容的 Boto3 SDK 版本调用 InvokeModel API 时,就会出现此错误。

要解决此问题,请将 boto3/botocore SDK 升级到最新版本。有关更多信息,请参阅 GitHub 网站上的 boto3/CHANGELOG.rst

账户限制错误

Error: "An error occurred (ValidationException) when calling the InvokeModel operation: Operation not allowed"

当您的 AWS 账户有安全限制时,就会出现该错误。

要解决此问题,请在 AWS Support 中打开支持案例。有关更多信息,请参阅创建支持案例

AWS 官方
AWS 官方已更新 6 个月前