9

मैं अपने एडब्ल्यूएस लैम्ब्डा तैनाती के प्रबंधन के लिए Serverless Framework का उपयोग कर रहा हूं। ढांचे के प्रमाण-पत्रों में डायनेमो डीबी संसाधनों तक पहुंच है, लेकिन ढांचे के साथ तैनात मेरा लैम्ब्डा, मेरी डायनेमोडीबी टेबल तक नहीं पहुंच सकता है।सर्वर रहित फ्रेमवर्क का उपयोग करते समय AWS Lambda से DynamoDB तक कैसे पहुंचे?

मैं अपने लैम्ब्डा कार्यों को उचित पहुंच कैसे दे सकता हूं?

उत्तर

13

संपादित करें: सर्वर रहित फ्रेमवर्क 1.x के लिए उत्तर अपडेट किया गया।

समाधान iamRoleStatements सेट करने के लिए है ताकि लैम्ब्डा को डायनेमो डीबी संसाधनों तक पहुंचने की अनुमति मिल सके। नोट: सर्वर रहित फ्रेमवर्क द्वारा उपयोग किए गए प्रमाण-पत्रों को उसी डायनेमोडीबी संसाधनों की अनुमति होनी चाहिए।

  1. अपने serverless.yml में iamRoleStatements जोड़ें:

    provider: 
        name: aws 
        runtime: nodejs4.3 
        stage: dev 
        region: us-east-1 
        iamRoleStatements: 
        - Effect: "Allow" 
         Action: 
         - "dynamodb:*" 
         Resource: "arn:aws:dynamodb:${self:provider.region}:*:table/*" 
    
  2. परिवर्तन लागू:

    > serverless deploy 
    

एक समारोह के स्तर में अनुमतियाँ देने के लिए (अनुमति देने के बजाय डायनेमोडीबी तक पहुंचने के लिए सभी फ़ंक्शन), मेरा अन्य उत्तर here देखें।

+1

उदाहरण के लिए धन्यवाद। मैंने arn का उपयोग किया: aws: dynamodb: $ {region}: *: तालिका/* –

+0

सर्वर रहित संस्करण 1.x के लिए अपडेट किया गया – Zanon

4

जबकि मैं सर्वर रहित कामों से परिचित नहीं हूं, आप जो खोज रहे हैं वह IAM Role है।

आप ईसी 2 इंस्टेंस या एडब्ल्यूएस लैम्ब्डा फ़ंक्शंस को एक भूमिका नियुक्त कर सकते हैं ताकि आप जो कोड लिखते हैं वह एडब्ल्यूएस एसडीके का उपयोग करता है स्वचालित रूप से उस भूमिका से जुड़े अनुमतियों के साथ एडब्ल्यूएस प्रमाण-पत्र पुनर्प्राप्त करने में सक्षम हो जाएगा। एडब्ल्यूएस लैम्ब्डा और आपके उपयोग के मामले के लिए आप एडब्ल्यूएस लैम्ब्डा को डायनेमोडीबी टेबल तक पहुंचने की भूमिका निभाना चाहते हैं, जिसे इसे चलाने की आवश्यकता है।

यह उपयोग करने के लिए धोखे से सरल हो सकता है, आप केवल प्रमाण-पत्र प्रदान नहीं करते हैं और यह केवल काम करता है (जब तक कि भूमिका में सही अनुमतियां हों)! एडब्ल्यूएस एसडीके भूमिका से जुड़े प्रमाण-पत्रों को स्वचालित रूप से पुनर्प्राप्त करके आपके लिए सब कुछ का ख्याल रखता है।

लिंक से आपने विशिष्ट प्रश्न प्रदान किया है जो सर्वोत्तम अभ्यास के तहत संदर्भित करता है Credentials from IAM Roles for EC2 Instances जहां यह ईसी 2 उदाहरणों को संदर्भित करता है, लेकिन यह एडब्ल्यूएस लैम्ब्डा पर भी लागू होता है।

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