6

के साथ एपीआई गेटवे को एकीकृत करने के लिए कैसे शीर्षक में। मैं क्लाउड गठन का उपयोग कर एसक्यूएस के साथ एपीआई गेटवे विधि को एकीकृत करने का प्रयास करता हूं। मैं जो खो रहा हूं वह एसक्यूएस के लिए सही यूआरआई है। यदि आप में से कोई भी पहले से ही ऐसा करता है, तो यूआरआई कैसा दिखना चाहिए?एसक्यूएस

मैं ऐसा ही कुछ के साथ आया था, लेकिन जहां SQS ARN डाल करने के लिए

"arn:aws:apigateway:${AWS::Region}:sqs:action/SendMessage" 

यहाँ विधि के लिए पूर्ण विन्यास है पता नहीं है: यहाँ

PostMethod: 
    Type: "AWS::ApiGateway::Method" 
    Properties: 
     ApiKeyRequired: "true" 
     HttpMethod: "POST" 
     ResourceId: !Ref "SomeResource" 
     RestApiId: !Ref "SomeRestApi" 
     Integration: 
     IntegrationHttpMethod: "POST" 
     IntegrationResponses: 
     - StatusCode: 200 
     Type: "AWS" 
     Uri: "arn:aws:apigateway:${AWS::Region}:sqs:action/SendMessage" 

और एक उदाहरण है यूआरआई के यदि आप लैम्ब्डा फ़ंक्शन के साथ एकीकृत करते हैं:

arn:aws:apigateway:us-west-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:function_name/invocations 
- 

उत्तर

9

मेरे अपने प्रश्न का उत्तर देने के लिए।

PostMethod: 
    Type: "AWS::ApiGateway::Method" 
    Properties: 
     AuthorizationType: "NONE" 
     ApiKeyRequired: "true" 
     HttpMethod: "POST" 
     ResourceId: !Ref "SomeResource" 
     RestApiId: !Ref "RestApi" 
     MethodResponses: 
     - StatusCode: 200 
     Integration: 
     Credentials: !GetAtt "RestApiRole.Arn" 
     IntegrationHttpMethod: "POST" 
     IntegrationResponses: 
     - StatusCode: 200 
     Type: "AWS" 
     Uri: !Sub "arn:aws:apigateway:${AWS::Region}:sqs:action/SendMessage" 
     RequestParameters: 
      integration.request.querystring.QueueUrl: !Sub "'${SomeQueue}'" 
      integration.request.querystring.MessageBody: "method.request.body" 

मैं अंत में विभिन्न दस्तावेज में अपने सवालों के सभी जवाब मिल गया है: यहाँ कैसे आप एपीआई गेटवे में एक सेवा के रूप में प्रॉक्सी SQS एकीकृत है। मुझे लगता है कि आरटीएफएम।

संपादित करें:

और यहाँ RestApiRole के लिए कोड:

RestApiRole: 
    Type: "AWS::IAM::Role" 
    Properties: 
     AssumeRolePolicyDocument: 
     Version: "2012-10-17" 
     Statement: 
     - Action: 
      - "sts:AssumeRole" 
      Principal: 
      Service: 
      - "apigateway.amazonaws.com" 
      Effect: "Allow" 
     Policies: 
     - PolicyName: "InvokeLambda" 
     PolicyDocument: 
      Version: "2012-10-17" 
      Statement: 
      - Action: 
      - "lambda:InvokeFunction" 
      Resource: !GetAtt "LambdaFunction.Arn" 
      Effect: "Allow" 
+0

इस उदाहरण के लिए धन्यवाद, क्या मुझे लगता है कि मैं ऑनलाइन प्राप्त कर सकते हैं करना चाहते हैं के लिए अपने निकटतम बात। मेरे पास एक सवाल यह है कि RestApiRole कैसा दिखता है? मेरे क्लाउड गठन टेम्पलेट में, मैं उपयोग करने के लिए वर्ग कतार बना रहा हूँ। क्या कोई तरीका है कि मैं टेम्पलेट में भूमिका निभा सकता हूं ताकि उसके पास उस संसाधन तक पहुंच हो? – fantapop

+0

@fantapop मैंने अपने उत्तर को RestApiRole के साथ संपादित किया है। यह एपीआई गेटवे और वर्ग के समान टेम्पलेट में है। – greg

+0

बहुत बहुत धन्यवाद। मैं यह काम करने में सक्षम था। – fantapop

संबंधित मुद्दे