Direkt zum Inhalt

Wie behebe ich InvokeModel-API-Fehler in Amazon Bedrock?

Lesedauer: 4 Minute
0

Ich möchte die Fehler „AccessDeniedException“ oder „ValidationException“ beheben, den ich erhalte, wenn ich die InvokeModel-API in Amazon Bedrock aufrufe.

Lösung

Die Fehler AccessDeniedException und ValidationException treten auf, wenn die InvokeModel-API nicht auf das Basismodell zugreifen kann, das sie aufruft. Die Fehler können auch auftreten, wenn das AWS-Konto nicht über die erforderlichen AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Berechtigungen verfügt, um die Operation auszuführen.

Fehler beim Zugriff auf das Modell

Wenn du keinen Zugriff auf das Modell hast, das die API aufzurufen versucht hat, erhältst du eine Fehlermeldung, die den folgenden Beispielen ähnelt:

„An error occurred (AccessDeniedException) when calling the InvokeModel operation: Your account is not authorized to invoke this API operation.“

-oder-

„An error occurred (AccessDeniedException) when calling the InvokeModel operation: You don't have access to the model with the specified model ID.“

Überprüfe die folgenden Konfigurationen, um dieses Problem zu lösen:

Fehler bei IAM-Berechtigungen

Wenn der IAM-Benutzer oder die IAM-Rolle, die die API aufgerufen hat, nicht über die erforderlichen Berechtigungen verfügen, erhältst du eine Fehlermeldung, die den folgenden Beispielen ähnelt:

„AccessDeniedException: An error occurred (AccessDeniedException) when calling the InvokeModel operation: User: username is not authorized to perform: bedrock:InvokeModel on resource: resourcename with an explicit deny in an identity-based policy.“

-oder-

„AccessDeniedException: An error occurred (AccessDeniedException) when calling the InvokeModel operation: User: username is not authorized to perform: bedrock:InvokeModel on resource: resourcename because no identity-based policy allows the bedrock:InvokeModel action.“

Um dieses Problem zu beheben, stelle sicher, dass der IAM-Benutzer oder die IAM-Rolle, die die API aufruft, über die folgenden erforderlichen Berechtigungen verfügt:

{  "Version": "2012-10-17",
  "Statement": {
    "Sid": "AllowInference",
    "Effect": "Allow",
    "Action": [
      "bedrock:InvokeModel",
      "bedrock:InvokeModelWithResponseStream"
    ],
    "Resource": "arn:aws:bedrock:*::foundation-model/model-id"
  }
}

SCP-Fehler

Wenn eine Service-Kontrollrichtlinie (Service Control Policy, SCP) bestimmte Einschränkungen für das Konto enthält, erhältst du die folgende Fehlermeldung:

„User: username is not authorized to perform: bedrock:InvokeModel on resource: username with an explicit deny in a service control policy“

Der vorherige Fehler tritt auch dann auf, wenn du der IAM-Rolle, die die API aufgerufen hat, die erforderlichen Berechtigungen erteilt hast. In der Regel tritt dieser Fehler auf, wenn du regionsübergreifende Interferenz verwendest, die den Aufruf an eine Region weiterleitet, die die SCP blockiert.

Um das Problem zu lösen, suche in deinen AWS CloudTrail-Ereignissen nach dem API-Aufruf und der Region, an die er geleitet wurde. Prüfe dann, ob die SCP Aktionen für diese API oder Region einschränkt. Suche auch nach anderen SCP-Einschränkungen, z. B. den Einschränkungen für eine bestimmte Modell-ID.

API-Aktionsfehler

Wenn du die falsche API-Aktion verwendet hast, erhältst du die folgende Fehlermeldung:

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

Um den vorherigen Fehler zu beheben, gib bedrock-runtime als Service in deinem API-Aufruf an. Weitere Informationen findest du unter BedrockRuntime auf der Boto3-Website.

Möglicherweise erhältst du auch die folgenden Fehlermeldungen:

„An error occurred (ValidationException) when calling the InvokeModel operation: The provided model identifier is invalid“

-oder-

„ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the InvokeModel operation: Could not resolve the foundation Modell from the provided model identifier.“

Die oben genannten Fehler treten aufgrund von Konfigurationsproblemen auf. Überprüfe die folgenden Konfigurationen, um dieses Problem zu beheben:

SDK-Versionsfehler

Wenn du eine inkompatible Version des AWS SDK für Python (Boto3) verwendest, um die InvokeModel-API aufzurufen, erhältst du die folgende Fehlermeldung:

„UnknownServiceError: Unknown service: 'bedrock-runtime“

Aktualisiere das SDK auf die neueste Version, um dieses Problem zu beheben. Die neueste Version des SDK findest du unter boto3/CHANGELOG.rst auf der GitHub-Website.

Fehler bei der Kontobeschränkung

Wenn das Konto eine Sicherheitsbeschränkung hat, erhältst du die folgende Fehlermeldung:

„An error occurred (ValidationException) when calling the InvokeModel operation: Operation not allowed“

Um dieses Problem zu lösen, musst du einen Support-Fall öffnen.