উত্তর:
এটি বর্তমানে সম্ভব নয়, এটি সম্পর্কে আলোচনার জন্য https://forums.aws.amazon.com/thread.jspa?threadID=162252 দেখুন ।
সম্পাদনা করুন: ল্যাম্বদা @ এজ এটি সম্ভব করেছে, নীচে দেখুন।
এ সম্পর্কে একটি আপডেট ...
এইচটিটিপি রেসপন্স শিরোনামগুলি এখন ল্যাম্বদা @ এজ ফাংশনগুলির মাধ্যমে কাস্টমাইজ করা যায়। ডকুমেন্টেশনের জন্য দয়া করে http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html দেখুন । এটি চেষ্টা করার জন্য, এডাব্লুএস কনসোলে একটি নতুন ল্যাম্বডা ফাংশন তৈরি করুন। ভাষার জন্য 'এজ নজ.জেএস 4.3' চয়ন করুন এবং ক্লাউডফ্রন্ট-পরিবর্তন-প্রতিক্রিয়া-শিরোনাম টেম্পলেটটি সন্ধান করুন। আপনি যদি এটি করেন তবে ল্যাম্বদা আপনাকে জিজ্ঞাসা করবে যে ক্লাউডফ্রন্টের বিতরণ এবং ইভেন্টটিতে কোন ফাংশনটি প্রয়োগ করতে হবে। নোট করুন যে আপনি যে কোনও সময় ক্লাউডফ্রন্ট আচরণ ট্যাবে গিয়ে সম্পাদনা বা পরিবর্তন করতে পারেন।
লাম্বদা ফাংশনটির একটি উদাহরণ এখানে ...
'use strict';
exports.handler = (event, context, callback) => {
const response = event.Records[0].cf.response;
response.headers['Strict-Transport-Security'] = 'max-age=2592000; includeSubDomains';
callback(null, response);
};
অ্যান্ড্রু এর উত্তর যোগ করতে:
আমি এটি এবং কয়েকটি নোট চেষ্টা করেছি: সুনির্দিষ্ট প্রান্ত নোডেজ রানটাইম আর নেই, তবে ল্যাম্বদা এন ভার্জিনিয়া অঞ্চলে তৈরি করা দরকার এবং ক্লাউডফ্রন্টের উত্স-প্রতিক্রিয়া বা দর্শকের প্রতিক্রিয়া দ্বারা ট্রিগার করা উচিত ।
বাক্সের বাইরে থাকা কোডটি আর কাজ করবে বলে মনে হচ্ছে না। এটি ERR_CONTENT_DECODING_FAILED দেয়।
সমাধানটি নীচে json সিনট্যাক্স ব্যবহার করা হয়:
response.headers['Strict-Transport-Security'] = [ { key: 'Strict-Transport-Security', value: "max-age=31536000; includeSubdomains; preload" } ];
response.headers['X-Content-Type-Options'] = [ { key: 'X-Content-Type-Options', value: "nosniff" } ];
সঠিক, যেহেতু ল্যাম্বদা @ এজ সাধারণত উপলব্ধ থাকে তারা এটিকে এন ভার্জিনিয়ায় সীমাবদ্ধ করে এবং নোড ৪.৩ এর পরিবর্তে নোড 6..১০ বেছে নিতে হবে।
আমাদের নীচের কোডের প্রাসঙ্গিক অংশটি (আমাদের উদ্দেশ্যে এটি সর্বদা একটি 302 স্থায়ী পুনঃনির্দেশ হবে):
'use strict';
exports.handler = (event, context, callback) => {
var request = event.Records[0].cf.request;
const response = {
status: '302',
statusDescription: '302 Found',
httpVersion: request.httpVersion,
headers: {
Location: [
{
"key":"Location",
"value":"someURL"
}
],
'Strict-Transport-Security': [
{
"key":"Strict-Transport-Security",
"value":'max-age=63072000; includeSubDomains; preload'
}
],
},
};
callback(null, response);
};
ক্লাউডফ্রন্টে বিভিন্ন আচরণ কনফিগার করে আপনি সীমাবদ্ধ করতে পারেন কোন অনুরোধগুলি লাম্বদা ফাংশনটিকে কল করবে।