我一直在使用ApiGateway,Lambda等资源构建更大的CloudFormation堆栈。
对于最新的ApiGateway,我将AWS :: ApiGateway ::方法直接放在/(rootresourceid)上,并且从CloudFormation进行部署时,AWS :: ApiGateway :: Stage上的授权者将变为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下资源上的问题,因此它似乎是一个继承问题。
经历过这一切的其他人,如果要求不要在根目录下有路径,那么解决方案是什么?