2016-09-29 8 views
7

के साथ एक एपीआई गेटवे संसाधन को क्लाउडफ़ॉर्म कैसे कर सकता हूं, मैं एक एपीआई गेटवे संसाधन को अभिव्यक्त करने के तरीके (क्लाउडफॉर्मेशन) में कैसे काम करना चाहता हूं, जिसमें लैम्ब्डा प्रॉक्सी एकीकरण का उपयोग करके लैम्ब्डा फ़ंक्शन एकीकरण प्रकार है।मैं लैंपडा प्रॉक्सी एकीकरण

यह वहाँ के रूप में एक चेक बॉक्स है कि आप चुन सकते हैं एडब्ल्यूएस कंसोल में क्या करने के लिए आसान है: API gateway console showing the Use Lambda Proxy Integration checkbox

लेकिन वहाँ एडब्ल्यूएस :: ApiGateway :: विधि CloudFormation संसाधन में कोई संगत फ़ील्ड है (यह होना चाहिए Integration property में रहें)।

मैं इसे क्लाउडॉर्मेशन में कैसे कॉन्फ़िगर कर सकता हूं?

+2

हम क्लाउडफॉर्मेशन को अपने दस्तावेज़ अपडेट करने के लिए काम कर रहे हैं, लेकिन जैसा कि नीचे बताया गया है, आप एकीकरण प्रकार को AWS_PROXY पर सेट करते हैं और –

+0

पर HttpMethod भी सेट करते हैं आप यहां एक कार्य उदाहरण देख सकते हैं: https://stackoverflow.com/questions/48740949/लैम्ब्डा-अनुमतियों-त्रुटि जब सेटअप का उपयोग-cloudformation-और-api-प्रवेश द्वार-प्रॉक्सी/48752056 # 48752056 – Ilya

उत्तर

7

एकीकरण प्रकार AWS_PROXY पर सेट किया जाना चाहिए। एक कामकाजी YAML क्लाउडफॉर्मेशन टेम्पलेट से किसी विधि का एक उदाहरण स्निपेट नीचे है।

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 दिया गया और मुझे एहसास हुआ कि चेकबॉक्स को प्रकार में एन्कोड किया जा सकता है। मैंने अपनी धारणा का परीक्षण किया और ऊपर क्लाउडफॉर्मेशन के साथ आया।

{ 
    "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" 
} 
1

मैं सरल बदलकर इस एक ही समस्या हल हो जाती है

Integration: 
Type: AWS_PROXY 

करने के लिए
Integration: 
Type: AWS 

बादल गठन प्रलेखन वर्तमान में दुर्लभ है और एपीआई प्रवेश द्वार cloudformation प्रलेखन मेल नहीं खाती है कंसोल पर क्या देखा जा सकता है जो किसी भी मुद्दे को हल करने का प्रयास कर रहा है।

आशा है कि इससे मदद मिलती है!