मैंने "अपलोड .zip" का उपयोग करके एडब्ल्यूएस (पायथन) में एक लैम्ब्डा फ़ंक्शन बनाया है। मैंने उन फ़ाइलों को खो दिया है और मुझे कुछ बदलाव करने की आवश्यकता है, क्या उस .zip को डाउनलोड करने का कोई तरीका है?
मैंने "अपलोड .zip" का उपयोग करके एडब्ल्यूएस (पायथन) में एक लैम्ब्डा फ़ंक्शन बनाया है। मैंने उन फ़ाइलों को खो दिया है और मुझे कुछ बदलाव करने की आवश्यकता है, क्या उस .zip को डाउनलोड करने का कोई तरीका है?
जवाबों:
हाँ!
अपने लंबो फंक्शन सेटिंग्स पर नेविगेट करें और ऊपर दाईं ओर आपको " Actions
" नामक एक बटन होगा । ड्रॉप डाउन मेनू में " export
" चुनें और पॉपअप में "डाउनलोड तैनाती पैकेज" पर क्लिक करें और फ़ंक्शन एक .zip
फ़ाइल में डाउनलोड होगा ।
code
वहां देखना चाहिए जो आपको मिलना चाहिए location
। यह एक निर्धारित URL है जिसका उपयोग आप फ़ंक्शन को डाउनलोड करने के लिए कर सकते हैं। URL 10 मिनट के लिए मान्य होगा।
.zip
एक्सटेंशन नहीं था इसलिए विंडोज में सिर्फ एक सादे फ़ाइल थी। समाधान मैन्युअल रूप से फ़ाइल नाम में एक्सटेंशन को डाउनलोड करने के बाद जोड़ना है।
अपडेट: संभाजी-संत द्वारा स्क्रिप्ट में लिंक जोड़ा गया । फिक्स्ड टाइपोस, बेहतर उत्तर और स्क्रिप्ट टिप्पणियों के आधार पर!
आप किसी भी मेमने का ज़िप डाउनलोड करने के लिए aws-cli का उपयोग कर सकते हैं ।
सबसे पहले आपको लैम्बडा ज़िप के लिए URL प्राप्त करना होगा
$ aws lambda get-function --function-name $functionName --query 'Code.Location'
फिर आपको URL से ज़िप डाउनलोड करने के लिए wget / curl का उपयोग करना होगा।
$ wget -O myfunction.zip URL_from_step_1
इसके अतिरिक्त आप अपने AWS खाते के उपयोग से सभी कार्यों को सूचीबद्ध कर सकते हैं
$ aws lambda list-functions
मैंने आपके एडब्ल्यूएस खाते से सभी लंबो कार्यों को समानांतर डाउनलोड करने के लिए एक सरल बैश स्क्रिप्ट बनाई। आप इसे यहाँ देख सकते हैं :)
नोट: उपरोक्त कमांड (या किसी भी aws-cli कमांड) का उपयोग करने से पहले आपको aws-cli सेटअप करना होगा aws configure
यदि आप यहां दिए गए क्षेत्र में सभी कार्यों को डाउनलोड करना चाहते हैं तो मेरा काम है। मैंने फंक्शन डाउनलोड करने के लिए एक सरल नोड स्क्रिप्ट बनाई है। सभी आवश्यक npm संकुल स्थापित करें और स्क्रिप्ट चलाने से पहले अपने AWS CLI को उस क्षेत्र में सेट करें जिसे आप चाहते हैं।
let download = require('download-file');
let extract = require('extract-zip');
let cmd = require('node-cmd');
let downloadFile = async function (dir, filename, url) {
let options = {
directory: dir,
filename: filename
}
return new Promise((success, failure) => {
download(url, options, function (err) {
if (err) {
failure(err)
} else {
success('done');
}
})
})
}
let extractZip = async function (source, target) {
return new Promise((success, failure) => {
extract(source, { dir: target }, function (err) {
if (err) {
failure(err)
} else {
success('done');
}
})
})
}
let getAllFunctionList = async function () {
return new Promise((success, failure) => {
cmd.get(
'aws lambda list-functions',
function (err, data, stderr) {
if (err || stderr) {
failure(err || stderr)
} else {
success(data)
}
}
);
})
}
let getFunctionDescription = async function (name) {
return new Promise((success, failure) => {
cmd.get(
`aws lambda get-function --function-name ${name}`,
function (err, data, stderr) {
if (err || stderr) {
failure(err || stderr)
} else {
success(data)
}
}
);
})
}
let init = async function () {
try {
let { Functions: getAllFunctionListResult } = JSON.parse(await getAllFunctionList());
let getFunctionDescriptionResult, downloadFileResult, extractZipResult;
getAllFunctionListResult.map(async (f) => {
var { Code: { Location: getFunctionDescriptionResult } } = JSON.parse(await getFunctionDescription(f.FunctionName));
downloadFileResult = await downloadFile('./functions', `${f.FunctionName}.zip`, getFunctionDescriptionResult)
extractZipResult = await extractZip(`./functions/${f.FunctionName}.zip`, `/Users/malhar/Desktop/get-lambda-functions/final/${f.FunctionName}`)
console.log('done', f.FunctionName);
})
} catch (e) {
console.log('error', e);
}
}
init()
let { Functions: getAllFunctionListResult } = JSON.parse(await getAllFunctionList());