5

मैंने एक उत्कृष्ट मार्गदर्शिका (Serverless Stack) का पालन किया है जो एक प्रतिक्रिया सीआरयूडी सर्वर रहित बुनियादी ढांचा बनाता है जो एक प्रतिक्रिया फ्रंटेंड के साथ बनाता है। यह एडब्ल्यूएस के लिए Serverless Framework का उपयोग कर रहा है।सर्वर रहित फ्रेमवर्क: पूर्ण "बुनियादी ढांचे को कोड" प्राप्त करने के तरीके?

मुझे यह पसंद नहीं है कि सेटअप को बूटस्ट्रैप करने के लिए, जीयूआई (ज्यादातर अमेज़ॅन के कंसोल इंटरफ़ेस) में मैन्युअल क्लिकिंग शामिल है। अर्थात। सेटअप संस्करण नियंत्रित नहीं है और आसानी से पुन: उत्पन्न नहीं होता है।

  • एडब्ल्यूएस cognito उपयोगकर्ता पूल
  • एडब्ल्यूएस Cognite उपयोगकर्ता पूल आवेदन
  • एडब्ल्यूएस: यह एक सीआई/सीडी प्रक्रिया आदि के साथ यह विस्तार करने के लिए इस उदाहरण निम्न संसाधनों मैन्युअल सेटअप करने की आवश्यकता में आसान नहीं होगा cognito संघीय पहचान पूल
  • एडब्ल्यूएस DynamoDB उदाहरण
  • एडब्ल्यूएस S3 बाल्टी (x3)
  • एडब्ल्यूएस CloudFront वितरण (यह भी frontend होस्ट करता है)
  • एडब्ल्यूएस Route53 जोन फाइल

केवल संसाधन है कि कोड से बनाई जा रही हैं serverless कार्य (lambdas) खुद को, और साथ ही एपीआई गेटवे उदाहरण हैं। सर्वरलेस फ्रेमवर्क इसकी serverless.yml फ़ाइल का उपयोग करता है। लेकिन उपरोक्त सभी संसाधन स्वचालित रूप से बनाए गए हैं। उन्हें कभी-कभी referenced to उनके एआरएन का उपयोग करने की आवश्यकता होती है, लेकिन वे serverless.yml कॉन्फ़िगरेशन द्वारा नहीं बनाए जा रहे हैं। उत्पादन में ऐसी प्रणाली चलाना (जो जीयूआई के माध्यम से सेवाओं के मैन्युअल निर्माण पर भारी निर्भर करता है) जोखिम भरा प्रतीत होता है।

मैं सोच रहा था कि इसके लिए एक समाधान टेराफॉर्म या क्लाउडॉर्मेशन का उपयोग करना होगा। लेकिन सर्वरलेस फ्रेमवर्क स्वयं ही लैम्बडास के सेटअप के लिए क्लाउडफॉर्मेशन का उपयोग कर रहा है, हालांकि अन्य संसाधनों के लिए नहीं। तो इस अंतर को खत्म कैसे करेगा? दूसरे शब्दों में, कोड में Serverless Stack पर वर्णित पूरे सेटअप का पुनर्निर्माण कैसे किया जाएगा?

क्लाउडफॉर्मेशन सेटअप सर्वरलेस के लिए यह अजीब लग सकता है, और संभवतः संभव नहीं है, जिसके बाद लैम्बडा सेट करने के लिए अपने स्वयं के क्लाउडॉर्मेशन टेम्पलेट्स हैं। यह सर्वर और फ्रेम एपीआई गेटवे को परिभाषित करने के लिए सर्वर रहित फ्रेमवर्क को विस्तारित करने के लिए और अधिक समझ सकता है, जिसे serverless deploy पर बनाया जाना चाहिए, लेकिन डायनामो डीबी या कॉग्निटो उपयोगकर्ता पूल जैसे अन्य संसाधन भी। क्या पहले से ऐसा करने वाले लोगों के कोई उदाहरण या प्रयास हैं?

उत्तर

3

मैं इस बात से सहमत हूं कि इस पर प्रलेखन उत्कृष्ट pull request here करेगा।

आप सही हैं कि serverless हुड के नीचे क्लाउडफॉर्मेशन का उपयोग कर रहा है। ढांचा आपके serverless.yml की resources कुंजी के माध्यम से अंतर्निहित क्लाउडफॉर्मेशन मशीनरी का खुलासा करता है।

मुझे लगता है कि the intent of the framework है कि आप अपने serverless.yml फ़ाइल के resources: खंड में इन संसाधनों के बाकी (cognito सामान, एस 3, आदि) रखा, regular old CloudFormation syntax का उपयोग कर।

service: aws-nodejs # NOTE: update this with your service name 
provider: 
    name: aws 
    runtime: nodejs6.10 
functions: 
    hello: 
    handler: handler.deletecustomer 
    events: 
     - http: 
      path: /deletecustomer 
      method: post 
      cors: true 
resources: 
    Resources: 
    tablenotes: 
     Type: AWS::DynamoDB::Table 
     Properties: 
     AttributeDefinitions: 
      - AttributeName: noteId 
      AttributeType: S 
      - AttributeName: userId 
      AttributeType: S 
     KeySchema: 
      - AttributeName: userId 
      KeyType: HASH 
      - AttributeName: noteId 
      KeyType: RANGE 
     ProvisionedThroughput: 
      ReadCapacityUnits: '5' 
      WriteCapacityUnits: '5' 
    mysamplebucket: 
     Type: AWS::S3::Bucket 
     Properties: 
     WebsiteConfiguration: 
      IndexDocument: index.html 
      ErrorDocument: error.html 
     AccessControl: Private 
     VersioningConfiguration: 
      Status: Suspended 

यदि आप CloudFormation लिए नए हैं, मैं भी एक नज़र लेने CloudFormer पर सलाह देते हैं:

उदाहरण के लिए, इस फ़ाइल को एक DynamoDB मेज और S3 बाल्टी, serverless समारोह के अलावा पैदा करेगा ।

0

@ माइक पैट्रिक के विकल्पों पर आधार, सर्वर रहित ढांचे और अन्य समान सर्वर रहित फोकस टूल के लिए मेरी समझ जोड़ना।

जैसा कि आपने उल्लेख किया है, सर्वर रहित परियोजनाओं के लिए, बहुत से संसाधन शामिल हैं। उन्हें एक साथ जोड़ना सरल काम नहीं है। तो एक सही उपकरण पसंद मुश्किल है।

Cloudformation और Terraform करने के लिए Serverless framework की तुलना करें, serverless ढांचे serverless विशेषज्ञ है, Cloudformation और terraform जीपी

Cloudformation और terraform पूरी तरह से Infrastructure as Code जो सबसे संसाधनों कवर कर रहे हैं।

सर्वर रहित ढांचा केवल क्लाउडॉर्मेशन टेम्पलेट उत्पन्न करने के लिए एक मध्यम परत है जो अधिकतर केवल सर्वर रहित संसाधनों के लिए होता है।

आप क्लाउडॉर्मेशन टेम्पलेट में सीधे सभी लिख सकते हैं, लेकिन टेम्पलेट फ़ाइल बड़ी होगी, इसे अपने JSON/Yaml टेम्पलेट द्वारा बनाए रखना मुश्किल है। serverless.yml में कुछ दर्जन लाइनों के साथ, सर्वर रहित ढांचा क्लाउडॉर्मेशन टेम्पलेट की एक हजार या कई हजार लाइनें उत्पन्न कर सकता है। यह बादल कोड से निपटने के लिए बहुत समय बचाता है।

सभी एडब्ल्यूएस संसाधनों के साथ सर्वर रहित ढांचे को सौदा करने का अर्थ नहीं है, कि अन्य उपकरण पहले से ही सबसे अच्छे हैं।

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

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