我一直在用ApiGateway,Lambda等资源构建更大的CloudFormation堆栈 .
对于最新的ApiGateway,我将AWS :: ApiGateway :: Methods直接放在/(rootresourceid)上,当从CloudFormation部署时,AWS :: ApiGateway :: Stage上的Authorizer将成为AWS_IAM,尽管我已经设置了一个自定义授权方法并使用DependsOn让资源等待 .
Post:
DependsOn:
- AuthorizerApi
Type: AWS::ApiGateway::Method
Properties:
AuthorizationType: CUSTOM
AuthorizerId: !Ref AuthorizerApi
RestApiId: !Ref Api
ResourceId: !GetAtt Api.RootResourceId
HttpMethod: POST
Integration:
Type: AWS_PROXY
IntegrationHttpMethod: POST
Uri: !Join ['', ["arn:aws:apigateway:", !Ref "AWS::Region", ":lambda:path/2015-03-31/functions/", !GetAtt PostLambda.Outputs.FunctionGetAtt, ":${stageVariables.environment}/invocations"]]
MethodResponses:
- ResponseModels:
application/json: Empty
StatusCode: 200
有趣的是,这不是rootresource下资源的问题,所以它似乎是一个继承问题 .
任何经历过这种情况的人,如果要求不是根目录下的路径,解决方案是什么?