我一直在努力研究如何使用Lambda代理集成來表達(在cloudformation中)具有Lambda函數集成類型的API網關資源。如何通過lambda代理集成雲端API網關資源
但是,現在在AWS :: ApiGateway ::方法CloudFormation資源沒有相應的字段(它應該在Integration property)。
如何在雲端配置此功能?
我一直在努力研究如何使用Lambda代理集成來表達(在cloudformation中)具有Lambda函數集成類型的API網關資源。如何通過lambda代理集成雲端API網關資源
但是,現在在AWS :: ApiGateway ::方法CloudFormation資源沒有相應的字段(它應該在Integration property)。
如何在雲端配置此功能?
積分類型應設置爲AWS_PROXY
。下面是一個來自工作YAML CloudFormation模板的方法示例片段。
ProxyResourceAny:
Type: AWS::ApiGateway::Method
Properties:
AuthorizationType: NONE
HttpMethod: ANY
ResourceId:
Ref: ProxyResource
RestApiId:
Ref: API
Integration:
Type: AWS_PROXY
IntegrationHttpMethod: POST
Uri: !Sub
- arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${Arn}/invocations
- Arn:
Fn::GetAtt:
- RestorerLambda
- Arn
這是值得一說如何我想通了這一點......
抓我的頭一會兒後,我檢查了aws apigateway get-method
CLI命令的輸出已配置使用控制檯這樣的方法。這給了我以下的JSON,我意識到複選框可能被編碼到類型中。我測試了我的假設,並提出了上面的CloudFormation。
{
"apiKeyRequired": false,
"httpMethod": "ANY",
"methodIntegration": {
"integrationResponses": {
"200": {
"responseTemplates": {
"application/json": null
},
"statusCode": "200"
}
},
"passthroughBehavior": "WHEN_NO_MATCH",
"cacheKeyParameters": [],
"uri": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:XXXXXXXXX:function:Shildrew-Restorer-Play-Lambda/invocations",
"httpMethod": "POST",
"cacheNamespace": "64bl3tgw4g",
"type": "AWS_PROXY"
},
"requestParameters": {},
"authorizationType": "NONE"
}
我已經通過簡單的改變解決了這個相同的問題的
Integration:
Type: AWS_PROXY
要
Integration:
Type: AWS
雲形成文檔目前是稀缺的,API網關cloudformation文檔不匹配在控制檯上可以看到什麼妨礙任何試圖解決問題的人。
希望這會有所幫助!
我們正在努力讓CloudFormation更新他們的文檔,但正如下面所述,您將集成類型設置爲AWS_PROXY,並將HttpMethod設置爲POST –
您可以在此處看到一個工作示例:https://stackoverflow.com/questions/48740949 /λ-權限錯誤 - 當 - 設置 - 使用 - cloudformation和-API網關代理/ 48752056#48752056 – Ilya