আমি "আপলোড। জিপ" ব্যবহার করে এডাব্লুএস (পাইথন) এ একটি ল্যাম্বডা ফাংশন তৈরি করেছি এবং আমি সেই ফাইলগুলি হারিয়েছি এবং আমার কিছু পরিবর্তন করা দরকার, that। জিপ ডাউনলোড করার কোনও উপায় আছে কি?
আমি "আপলোড। জিপ" ব্যবহার করে এডাব্লুএস (পাইথন) এ একটি ল্যাম্বডা ফাংশন তৈরি করেছি এবং আমি সেই ফাইলগুলি হারিয়েছি এবং আমার কিছু পরিবর্তন করা দরকার, that। জিপ ডাউনলোড করার কোনও উপায় আছে কি?
উত্তর:
হ্যাঁ!
আপনার ল্যাম্বদা ফাংশন সেটিংসে নেভিগেট করুন এবং উপরের ডানদিকে আপনার কাছে " Actions
" নামক একটি বোতাম থাকবে । ড্রপ ডাউন মেনুতে " export
" নির্বাচন করুন এবং পপআপে "ডাউনলোড প্যাকেজমেন্ট ডাউনলোড করুন" ক্লিক করুন এবং ফাংশনটি একটি .zip
ফাইলে ডাউনলোড হবে ।
code
সেখানে দেখতে হবে location
। এটি একটি নির্ধারিত ইউআরএল যা আপনি ফাংশনটি ডাউনলোড করতে ব্যবহার করতে পারেন। URL টি 10 মিনিটের জন্য বৈধ হবে।
.zip
উইন্ডোজের কেবল একটি সরল ফাইল ছিল। সমাধানটি হ'ল ম্যানুয়ালি ডাউনলোডের পরে ফাইলের নামের সাথে এক্সটেনশন যুক্ত করা।
আপডেট: সংভাজি-সাওয়ান্টের লিপিতে লিঙ্ক যুক্ত হয়েছে । ফিক্সড টাইপস, উন্নত উত্তর এবং স্ক্রিপ্ট মন্তব্যের ভিত্তিতে!
যে কোনও ল্যাম্বদার জিপ ডাউনলোড করতে আপনি অ্যাউস-ক্লিপ ব্যবহার করতে পারেন ।
প্রথমে আপনার ল্যাম্বদা জিপতে ইউআরএল পাওয়া দরকার
$ aws lambda get-function --function-name $functionName --query 'Code.Location'
তারপরে ইউআরএল থেকে জিপ ডাউনলোড করতে আপনার উইজেট / কার্ল ব্যবহার করতে হবে।
$ wget -O myfunction.zip URL_from_step_1
অতিরিক্ত হিসাবে আপনি ব্যবহার করে আপনার AWS অ্যাকাউন্টে সমস্ত ফাংশন তালিকাভুক্ত করতে পারেন
$ aws lambda list-functions
আমি আপনার AWS অ্যাকাউন্ট থেকে সমস্ত ল্যাম্বডা ফাংশন সমান্তরাল ডাউনলোড করতে একটি সাধারণ বাশ স্ক্রিপ্ট তৈরি করেছি। আপনি এটি এখানে দেখতে পারেন :)
দ্রষ্টব্য: উপরের কমান্ডগুলি (বা কোনও অ্যাউস-ক্লাইম কমান্ড) ব্যবহার করার আগে আপনাকে অ্যাউস-ক্লিপ সেটআপ করতে হবে aws configure
আপনি এখানে শেল স্ক্রিপ্ট ব্যবহার করতে পারেন
আপনি যদি এখানে প্রদত্ত অঞ্চলে সমস্ত ফাংশন ডাউনলোড করতে চান তবে আমার কর্মসংস্থান। ফাংশন ডাউনলোড করার জন্য আমি একটি সাধারণ নোড স্ক্রিপ্ট তৈরি করেছি। সমস্ত প্রয়োজনীয় এনএমপি প্যাকেজ ইনস্টল করুন এবং স্ক্রিপ্টটি চালানোর আগে আপনি যে অঞ্চলে চান তা আপনার 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());
এই লাইনে