这是我如何设置堆栈的示例。我只发布了这一点,请放心,堆栈工作正常。
问题我想问一下,我怎么能在网址级别具体queryString
名称。现在在AWS控制台(Web UI)上,它显示{orderId}
但我希望它显示其他内容。我该怎么修改呢?
此外,它还在AWS UI上为{orderId}
框显示HEADERS
。我也希望改变它。
OrdersPathResource:
Type: "AWS::ApiGateway::Resource"
Properties:
RestApiId:
Ref: "XYZApi"
ParentId: !GetAtt [XYZApi, RootResourceId]
PathPart: "orders"
OrdersIdPathResource:
Type: AWS::ApiGateway::Resource
Properties:
RestApiId:
Ref: "XYZApi"
ParentId:
Ref: "OrdersPathResource"
PathPart: "{ordersId}"
StatusPathResource:
Type: AWS::ApiGateway::Resource
Properties:
RestApiId:
Ref: "XYZApi"
ParentId:
Ref: "OrdersIdPathResource"
PathPart: "status"
GetOrdersShipmentStatusMethod:
Type: "AWS::ApiGateway::Method"
Properties:
ApiKeyRequired: true
AuthorizationType: "AWS_IAM"
HttpMethod: "GET"
ResourceId:
Ref: "StatusPathResource"
RestApiId:
Ref: "XYZApi"
Integration:
Type: "AWS_PROXY"
IntegrationHttpMethod: "POST"
Uri: !Join ["", ["arn:aws:apigateway:", !Ref "AWS::Region", ":lambda:path/2015-03-31/functions/",!GetAtt GetOrdersShipmentStatusLambdaFunction.Arn, "/invocations"]]
从您的CloudFormation模板片段中,您使用的是Lambda Proxy集成,因此API Gateway不允许您为集成设置参数映射。但是如果你想在方法方面拥有请求参数,你可以将你的方法更改为,
GetOrdersShipmentStatusMethod:
Type: "AWS::ApiGateway::Method"
Properties:
ApiKeyRequired: true
AuthorizationType: "AWS_IAM"
HttpMethod: "GET"
ResourceId:
Ref: "StatusPathResource"
RestApiId:
Ref: "XYZApi"
RequestParameters:
method.request.header.headerName: false
method.request.querystring.querystringName: false
Integration:
Type: "AWS_PROXY"
IntegrationHttpMethod: "POST"
Uri: !Join ["", ["arn:aws:apigateway:", !Ref "AWS::Region", ":lambda:path/2015-03-31/functions/",!GetAtt GetOrdersShipmentStatusLambdaFunction.Arn, "/invocations"]]