New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Warum erhalte ich vom API Gateway die Fehlermeldung „Execution failed due to configuration error“ (Die Ausführung ist aufgrund der Konfiguration fehlgeschlagen), nachdem ich eine CloudFormation-Vorlage oder eine OpenAPI-Definition verwendet habe, um eine REST-API mit einer Lambda-Integration zu erstellen?
Ich habe eine AWS CloudFormation-Vorlage (oder OpenAPI-Definition) verwendet, um eine Amazon API Gateway-REST-API mit AWS Lambda-Integration zu erstellen. Wenn ich versuche, meine Lambda-Funktion mithilfe der API-Methode aufzurufen, erhalte ich die folgende Fehlermeldung und einen 500-Statuscode: „Execution failed due to configuration error“ (Die Ausführung ist aufgrund eines Konfigurationsfehlers fehlgeschlagen). Was verursacht den Fehler und wie behebe ich das Problem?
Kurzbeschreibung
Wenn Sie über eine API Gateway-REST-API mit Lambda-Integration verfügen, muss die API die Backend-Lambda-Funktion mithilfe der HTTP-Methode POST aufrufen. Wenn Sie eine andere HTTP-Methode (z. B. ANY oder GET) für die Backend-Integrationsanforderung verwenden, schlägt der Aufruf fehl. API Gateway gibt dann eine Fehlermeldung zurück, die dem folgenden Beispiel in Ihren Amazon CloudWatch Logs ähnelt:
Mon Oct 14 14:08:49 UTC 2019 : Received response. Status: 403, Integration latency: 3 ms Mon Oct 14 14:08:49 UTC 2019 : Endpoint response headers: {Date=Mon, 14 Oct 2019 14:08:49 GMT, Content-Length=130, Connection=keep-alive, x-amzn-RequestId=abc1d2ef-34ab-56c7-de8f-90123a456789} Mon Oct 14 14:08:49 UTC 2019 : Endpoint response body before transformations: <AccessDeniedException> <Message>Unable to determine service/operation name to be authorized</Message> </AccessDeniedException> Mon Oct 14 14:08:49 UTC 2019 : Lambda invocation failed with status: 403. Lambda request id: abc1d2ef-34ab-56c7-de8f-90123a456789 Mon Oct 14 14:08:49 UTC 2019 : Execution failed due to configuration error: Mon Oct 14 14:08:49 UTC 2019 : Method completed with status: 500
Hinweis: Sie können weiterhin jede HTTP-Methode für das Frontend Ihrer REST-API einrichten.
Sie müssen die POST-Methode für die Backend-Integrationsanforderung angeben, wenn Sie eine REST-API mit Lambda-Integration mithilfe einer der folgenden Methoden erstellen:
- CloudFormation-Vorlage
- OpenAPI-Definition
- AWS Command Line Interface (AWS CLI)
- Software Development Kits (SDK)
- Cloud Development Kit (CDK)
Hinweis: Wenn Sie die API Gateway-Konsole verwenden, um eine Lambda-Integration zu konfigurieren, wird die Backend-Integrationsanforderung automatisch auf POST gesetzt.
Lösung
Die bewährte Methode von CloudFormation besteht darin, alle Stack-Ressourcen über AWS CloudFormation zu verwalten und keine Änderungen an den Stack-Ressourcen außerhalb von CloudFormation vorzunehmen.
Die Methode, die verwendet wird, um die HTTP-Methode für die Backend-Integrationsanforderung in POST zu ändern, hängt von der ursprünglichen Vorlagendefinition ab. Beispielsweise unterscheidet sich der Prozess zur Aktualisierung eines mit CloudFormation bereitgestellten API-Gateways von einem API-Gateway, das mit OpenAPI oder der AWS-CLI erstellt wurde.
Um die Anforderungsmethode der Integration auf POST für API-Gateways zu ändern, die mit CloudFormation erstellt wurden
Anweisungen finden Sie unter Ändern einer Stack-Vorlage.
A. Wenn Ihre Methode erstellt wurde, indem Sie die Ressource AWS::ApiGateway::Method in Ihrer CloudFormation-Vorlage definiert haben, aktualisieren Sie die Eigenschaft HttpMethod auf POST. Anweisungen finden Sie im Abschnitt Beispiele der Dokumentation zu AWS::ApiGateway::Method.
B. Wenn Ihre Methode eine OpenAPI-Definition als Wert der Body-Eigenschaft der AWS::ApiGateway::RestAPI-Ressource enthält: Setzen Sie den HttpMethod-Eigenschaftswert in Ihrer API-Definitionsdatei auf POST. Eine Anleitung finden Sie im x-amazon-apigateway-integration-Objekt und im Beispiel für eine Swagger-Vorlage im GitHub-Repository aws-samples.
Aktualisieren Sie Ihre API, indem Sie AWS CloudFormation-Stack-Updates mit der bearbeiteten Vorlage ausführen:
"x-amazon-apigateway-integration" : { "type" : "aws", "httpMethod" : "POST"
Ändern der HTTP-Methode der Backend-Integration auf POST für API-Gateways, die außerhalb von CloudFormation erstellt wurden
Aktualisierungsmethode mithilfe der Konsole
- Wählen Sie in der API Gateway-Konsole Ihre API aus.
- Wählen Sie im Bereich Ressources (Ressourcen) die HTTP-Methode aus, die über die Lambda-Integration verfügt.
- Wählen Sie im Bereich Method Execution(Methodenausführung) die Option Integration Request (Integrationsanforderung) aus.
- Bearbeiten Sie im Bereich Integration Request (Integrationsanforderung) für die HTTP-Methode den Lambda-Funktionsnamen, indem Sie auf das Stiftsymbol rechts neben dem Funktionsnamen klicken und dann auf das Häkchensymbol klicken, das rechts angezeigt wird.
- Wenn Sie aufgefordert werden, der Lambda-Funktion eine Berechtigung hinzuzufügen, wählen Sie OK.
- Stellen Sie Ihre API bereit.
- (Optional) Testen Sie die HTTP-Methode mit der Lambda-Integration.
**Hinweis:**Die Konsole fügt der Ressourcenrichtlinie der Lambda-Funktion jedes Mal eine neue Anweisung hinzu, wenn OK in der Eingabeaufforderung Add Permission to Lambda Function (Berechtigung zur Lambda-Funktion hinzufügen) ausgewählt wird. Notieren Sie sich die Größe der Ressourcenrichtlinie Ihrer Funktion, um sicherzustellen, dass die Größenbeschränkung der Ressourcenrichtlinie nicht überschritten wird. Siehe: Konfiguration, Bereitstellung und Ausführung von Funktionen.
Weitere Informationen finden Sie unter Erste Schritte mit API Gateway und Einrichten einer API-Integrationsanforderung mithilfe der API Gateway-Konsole.
Aktualisieren der Methode mithilfe der AWS-CLI
- Führen Sie die put-integration-Methode aus, um die HTTP-Integrationsmethode auf POST zu aktualisieren:
aws apigateway put-integration \ --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method ANY \ --type AWS \ --integration-http-method POST \ --uri 'arn:aws:apigateway:us-west-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-east-1:123412341234:function:function_name/invocations
- Stellen Sie die konfigurierten Ressourcen für eine API in einer vorhandenen Phase bereit:
aws apigateway create-deployment \ --rest-api-id 1234123412 \ --stage-name dev \ --description 'Deployment to an existing dev stage'
Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.
Aktualisieren der Methode mithilfe des OpenAPI-Definitionsimports
- Setzen Sie den HttpMethod-Eigenschaftswert in Ihrer API-Definitionsdatei auf POST. Eine Anleitung finden Sie im x-amazon-apigateway-integration-Objekt und im Beispiel für eine Swagger-Vorlage im GitHub-Repository aws-samples.
- Aktualisieren Sie Ihre API, indem Sie die bearbeitete API-Definitionsdatei in API Gateway importieren. Informationen zum Aktualisieren einer vorhandenen API-Definition finden Sie unter Importieren einer OpenAPI-Datei.
Verwandte Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Monaten