2016-10-06 14 views
6

मैं इस क्षेत्र को नोडजेस/जावास्क्रिप्ट एडब्ल्यूएस लैम्ब्डा फ़ंक्शन के भीतर से कैसे पहचानूं? AWS_DEFAULT_REGION वातावरण चर एक ReferenceError देता है (here देखें, जो जावा, नहीं नोड/जावास्क्रिप्ट के लिए है।)जावास्क्रिप्ट/नोडजेस में एडब्ल्यूएस क्षेत्र कैसे प्राप्त करें लैम्ब्डा फ़ंक्शन:

मुझे पता है मैं संदर्भ वस्तु से "invokedFunctionArn" हो जाते हैं और इस क्षेत्र के लिए यह पार्स कर सकते हैं, लेकिन यह की तरह लगता है एक और सीधा रास्ता होना चाहिए।

+0

AFAIK ही रास्ता अर्न –

+0

पार्स करने के लिए हालांकि यह नहीं है

यहाँ मैं क्या कर समाप्त हो गया है जानकारी प्राप्त करने के लिए रास्ता हैक करना असंभव है; मेरी राय में, विन्यास विवरण या पर्यावरण की जानकारी के हिस्से के रूप में क्षेत्र विवरण में फ़ीड करना आसान होगा [यानी। स्पष्ट रूप से कोड/कॉन्फ़िगरेशन में जोड़ें] –

उत्तर

0

आप पारित होने वाले संदर्भ को देख सकते हैं। वहां खोजने के लिए और अधिक उपहार हैं।

exports.handler = function(event, context) { 
    console.log('Function name:', context.functionName); 
    context.succeed(); 
}; 

मुझे कुछ भी नहीं पता जो आपको बस क्षेत्र बताता है। एक बदसूरत हैक युक्त ओएस (लिनक्स) में कुछ निष्पादित करेगा और जानकारी दिखाने की उम्मीद कर रहा है। uname -a शायद।

मैं सिर्फ उत्सुक हूं। आपको ये किस लिए चाहिए? कुछ प्रकार की डीबगिंग जानकारी?

+0

लैम्बडा को विभिन्न क्षेत्रों में तैनात किया जाएगा और इसके परिणामस्वरूप क्षेत्र-विशिष्ट कॉन्फ़िगरेशन मान (एक के लिए एसएनएस विषय) होंगे। – ktippetts

+0

इसके अतिरिक्त (और सबसे महत्वपूर्ण बात), कॉन्फ़िगरेशन फ़ाइल (जेसन) में क्षेत्र के रूप में कुंजी के साथ सभी क्षेत्रों के लिए कॉन्फ़िगरेशन शामिल है। – ktippetts

0

context.invokedFunctionArn प्रॉपर्टी का उपयोग करने के अलावा, चल रहे लैम्ब्डा फ़ंक्शन में क्षेत्र की पहचान करने का एक और सीधा तरीका प्रतीत नहीं होता है।

process.env.AWS_REGION 

स्रोत::

exports.handler = (event,context, callback) => { 
    var arnList = (context.invokedFunctionArn).split(":"); 
    var lambdaRegion = arnList[3] //region is the fourth element in a lambda function arn 


    //more code 
} 
संबंधित मुद्दे