2016-01-06 38 views
8

पर पैरामीटर कैसे पास करें मुझे पता है कि परीक्षण करने के लिए AWS Lambda पर चल रहे जावा प्रोग्राम में पैरामीटर पास करना संभव है। लेकिन मुझे नहीं पता कि उन पैरामीटर को कैसे पास किया जाए यदि इस कार्यक्रम को शेड्यूल ईवेंट द्वारा बुलाया जाता है।AWS Lambda फ़ंक्शन

क्या किसी को पता है कि यह संभव है? यदि हां, तो कैसे? मैं इसके बारे में कुछ भी नहीं ढूंढ पाया।

अग्रिम

उत्तर

3

आप अप्रत्यक्ष रूप से पैरामीटर पास कर सकते हैं, उदाहरण के लिए एस 3 या डायनेमो डीबी पर संग्रहीत करके। प्रत्येक निर्धारित चक्र पर, आप पूर्व निर्धारित स्थान से पढ़ सकते हैं और इसे अपने प्रोग्राम में भेज सकते हैं। आम तौर पर, यदि मुझे साझा स्रोत कोड के साथ एकाधिक शेड्यूल किए गए लैम्ब्डा फ़ंक्शन लॉन्च करने की आवश्यकता है, तो मैं स्रोत कोड के साथ एक फ़ाइल (किसी भी पठनीय प्रारूप) को बंडल करता हूं और इसे चलाने के दौरान पढ़ता हूं। @ गर्नत सही है, इसके अलावा वर्तमान में नए लैम्ब्डा कार्यों को गतिशील रूप से लॉन्च करना असंभव है, जो एक बड़ी असुविधा है।

+0

एस 3 में इन पैरामीटर को संग्रहीत करना एक शानदार विचार है। आश्चर्य है कि यह मेरे दिमाग में क्यों नहीं आया :-) धन्यवाद। – sengbatz

0

धन्यवाद वर्तमान में, एक ही रास्ता एक अनुसूचित लैम्ब्डा समारोह बनाने के लिए एडब्ल्यूएस कंसोल के माध्यम से है और यह जब अनुसूचक यह कहता है लैम्ब्डा समारोह के लिए पैरामीटर पास करने के लिए किसी भी तरह प्रदान नहीं करता है। चूंकि आपके लैम्ब्डा फ़ंक्शन को एडब्ल्यूएस में शेड्यूलर द्वारा बुलाया जा रहा है, इसलिए यह वास्तव में मुझे स्पष्ट नहीं है कि पैरामीटर गुजरने का तरीका कैसे काम करेगा।

0

यदि आपके पास स्वचालित तैनाती या सीआई है तो एक और विकल्प, मेवेन (या समान) और गुणों के साथ निर्माण समय पर अपने तर्क डालना है। मुझे लगता है कि यह थोड़ा अधिक अनुकूलित है क्योंकि आपको S3 से फ़ाइल पढ़ने की आवश्यकता नहीं है?

उदाहरण के लिए आप config/env1/app.properties और config/env2/app.properties

हो सकता है आप प्रोफाइल कि संबंधित config की तरह लोड बनाने Maven के साथ:

... 
<profiles> 
    <profile> 
     <id>env1</id> 
     <build> 
      <resources> 
       <resource> 
        <directory>config/env1</directory> 
        <filtering>true</filtering> 
       </resource> 
      </resources> 
     </build> 
    </profile> 
    <profile> 
     <id>env2</id> 
     <build> 
      <resources> 
       <resource> 
        <directory>config/env2</directory> 
        <filtering>true</filtering> 
       </resource> 
      </resources> 
     </build> 
    </profile> 
</profiles> 
... 

अपने कोड में हमेशा की तरह props.load(ClassLoader.getSystemResourceAsStream("app.properties"));

रंगमंच की सामग्री को पढ़ने में अपने जार को तैनात करने के लिए अपना स्वचालन आप mvn install -P en1 बना सकते हैं।

0

आप लैम्ब्डा कॉन्फ़िगरेशन से पर्यावरण चर का लाभ उठा सकते हैं। फिर आप उन्हें अपने जावा प्रोग्राम पर पढ़ते हैं:

System.getenv("VAR_NAME") 
संबंधित मुद्दे