Ich habe eine AWS CloudFormation-Vorlage, eine OpenAPI-Definition oder einen AWS Command Line Interface (AWS CLI)-Befehl verwendet, um eine Amazon API Gateway-API mit einer Proxy-Ressource zu erstellen. Wenn ich versuche, URL-Pfadparameter zur API hinzuzufügen, erhalte ich die Fehlermeldung „Invalid mapping expression specified“ (Ungültiger Zuordnungsausdruck angegeben).
Kurzbeschreibung
Wenn der Proxy-Pfadparameter {proxy+} keine definierte URL-Pfadparameterzuordnung hat, gibt der API Gateway den Fehler Invalid mapping expression specified (Ungültiger Zuordnungsausdruck angegeben) zurück.
Um dieses Problem zu beheben, führen Sie die Schritte für das Tool aus, mit dem Sie die API erstellt haben.
Behebung
CloudFormation-Vorlage
Definieren Sie die Eigenschaft RequestParameters des Abschnitts AWS::ApiGateway::Method.
Führen Sie die folgenden Schritte aus:
-
Aktualisieren Sie die CloudFormation-Vorlage, sodass der Wert RequestParameters auf true gesetzt ist.
Beispielvorlage:
....
.
ProxyMethod:
Type: 'AWS::ApiGateway::Method'
Properties:
.
.
RequestParameters:
method.request.path.proxy: true
Integration:
RequestParameters:
integration.request.path.proxy: 'method.request.path.proxy'
IntegrationHttpMethod: ANY
.
.
...
-
Um Ihre API zu aktualisieren, verwenden Sie die CloudFormation-Vorlage, um den CloudFormation-Stack zu aktualisieren.
Hinweis: Weitere Informationen zum Aktualisieren von API Gateway-Ressourcen finden Sie unter Referenz zum Amazon API Gateway-Ressourcentyp.
OpenAPI-Definition
Definieren Sie den Abschnitt Parameter im Objekt x-amazon-apigateway-any-method.
Führen Sie die folgenden Schritte aus:
-
Aktualisieren Sie Ihre API-Definition, sodass die Parameter im Abschnitt x-amazon-apigateway-any-method die folgenden Werte haben:
"x-amazon-apigateway-any-method": { "parameters": [
{
"name": "proxy",
"in": "path",
"required": true,
"type": "string"
}
]
....
....
}
-
Importieren Sie Ihre aktualisierte API-Definitionsdatei in API Gateway, um Ihre API zu aktualisieren.
Hinweis: Weitere Informationen finden Sie unter Beschreibung von Parametern auf der Swagger-Website.
AWS-CLI-Befehl
**Hinweis:**Wenn Sie beim Ausführen von Befehlen in AWS CLI Fehlermeldungen erhalten, finden Sie weitere Informationen unter Beheben von AWS CLI-Fehlern. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Wenn Sie den Befehl put-integration ausführen, um die Integration einzurichten, fügen Sie die**--request-parameters** hinzu.
-
Führen Sie den Befehl update-method aus, um die Method Request-Konfiguration der HTTP-Methode zu aktualisieren:
aws apigateway update-method \
--rest-api-id <your-api-id> \
--resource-id <your-resource-id> \
--http-method <your-http-method> \
--patch-operations op="add",path="/requestParameters/method.request.path.proxy",value="true"
-
Führen Sie den Befehl put-integration aus, um die Integration Request-Konfiguration der HTTP-Methode zu aktualisieren, die**--request-parameters** hat. Der Beispielparameter heißt proxy und hat den Wert method.request.path.proxy. Der Befehl put-integration richtet eine HTTP_PROXY-Integration mit einem VPC-Link ein:
aws apigateway put-integration \
--rest-api-id <your-api-id>\
--resource-id <your-resource-id> \
--http-method <your-http-method> \
--type HTTP_PROXY \
--integration-http-method <your-integration-http-method> \
--uri "<your-integration-endpoint-uri>" \
--connection-type VPC_LINK \
--connection-id <your-vpclink-connection-id> \
--request-parameters "integration.request.path.proxy=method.request.path.proxy"
Hinweis: Ersetzen Sie alle Beispielwerte durch Ihre Werte.
Testen Sie das Setup
Führen Sie die folgenden Schritte aus:
- Öffnen Sie die API Gateway-Konsole und wählen Sie dann den Namen Ihrer API aus.
- Fügen Sie URL Path Parameters (URL-Pfadparameter) hinzu.
Hinweis: Wenn Ihr Proxy-Pfadparameter eine korrekt definierte URL-Pfadparameterzuordnung enthält, wird kein Fehler angezeigt.
Ähnliche Informationen
X-Amazon-APIGateway-Integration.RequestParameter-Objekt
Einrichten einer Proxy-Integration mit einer Proxy-Ressource
Einrichten von Datentransformationen für REST-APIs