একই ডোমেনের জন্য আমি কীভাবে এডাব্লুএস ক্লাউডফ্রন্ট এবং এপিআই গেটওয়ে পাশাপাশি ব্যবহার করতে পারি?


9

আমি আমার ওয়েবসাইটের সেই স্থিতিশীল সম্পদগুলিকে এস 3 এ রাখছি এবং তাদের বিতরণের জন্য ক্লাউডফ্রন্ট স্থাপন করছি। এগুলি মূলত ধারণ করে যে সামগ্রীগুলি ব্যবহারকারীদের আমার সাইটে যে কোনও জিইটি অনুরোধের জন্য বিদ্যমান পথগুলিতে ত্রুটির জন্য একটি ক্যাচল সহ প্রয়োজনীয় হবে।

আমার হ্যান্ডেল করা দরকার কিছু পোষ্ট অনুরোধও রয়েছে। ফর্ম জমা, ইমেল প্রেরণ, বিজ্ঞপ্তি, ডাটাবেসের সাথে ইন্টারঅ্যাক্ট।

কীভাবে আমি একই ডোমেনের জন্য ক্লাউডফ্রন্টের পাশাপাশি ল্যাম্বডা (বা এপিআই গেটওয়ে) সেট আপ করতে পারি যাতে ক্লাউডফ্রন্টটি জিইটি অনুরোধগুলি পরিচালনা করে, এবং এপিআই গেটওয়ে কোনও দেহ বা পোষ্ট অনুরোধগুলির সাথে অনুরোধগুলি পরিচালনা করে। বা আমি কোনওভাবে পৃথক ইউআরএল দ্বারা এটি করতে পারি?

উত্তর:


2

আমি ঠিক আপনার প্রস্তাবিত ডিজাইনের সাহায্যে একাধিক ওয়েব অ্যাপ্লিকেশন পরিচালনা করি এবং কৌশলগুলি ভাগ করার জন্য আমি গোফাস , একটি শিক্ষামূলক গো এবং ল্যাম্বডা অ্যাপ্লিকেশন বের করেছি

আপনার দুটি পৃথক ডোমেন প্রয়োজন, যেমন www.gofaas.netএস 3 + ক্লাউডফ্রন্ট এবং api.gofaas.netএপিআই গেটওয়ে + ল্যাম্বদার জন্য।

তারপরে আপনি আপনার স্থিতিশীল সাইটটিকে একটি API গেটওয়ে সিওআর কনফিগারেশন এবং কিছু জাভাস্ক্রিপ্টের সাথে API এর সাথে ইন্টারঅ্যাক্ট করতে দিতে পারেন:

fetch(`https://api.gofaas.net/work`, {
    method: "POST",
    mode: "cors",
    headers: {
        "Accept": "application/json",
        ...
    },
    body: JSON.stringify(...)
})
    .then(function(response) {
        return response.json();
    })
    .then(function (json) {
        // use response
    })
    .catch(function (err) {
        console.log("fetch error", err);
    });

এই সমস্ত সেট আপ করার জন্য এখানে কিছু গাইড রয়েছে:

এস 3, ক্লাউডফ্রন্ট এবং এসিএম সহ স্থির ওয়েবসাইটগুলি

ল্যাম্বদা, এপিআই গেটওয়ে, সিওআরএস এবং জেডব্লিউটি সহ এপিআই সুরক্ষা


সাইটটি পরীক্ষা করা এখানে সর্বদা আকর্ষণীয় হয়ে ওঠে। স্থানীয়ভাবে এডাব্লুএস এর অবকাঠামোর প্রতিরূপ তৈরি করা শক্ত যাতে আপনি স্থানীয়ভাবে ইন্টিগ্রেশন পরীক্ষা করতে পারেন। আমি সাবডোমেনের পরিবর্তে একটি রুট ব্যবহার করি। যা পরীক্ষার অংশকে সহায়তা করে। সিওআরএস চ্যালেঞ্জগুলিও দূর করে। তারপরে, এপিআই গেটওয়ে সেই রুটের ক্লাউডফ্রন্টের উত্স হয়ে যায়।
কোস্টা

6

আপনি একটি ল্যাম্বডা ফাংশন তৈরি করতে পারেন, এপিআই গেটওয়ে সেটআপ করতে পারেন এবং তারপরে নির্দিষ্ট পথগুলি (যেমন / বিশ্রাম / *) এপিআই গেটওয়েতে ফরোয়ার্ড করতে ক্লাউডফ্রন্টটি কনফিগার করতে পারেন এবং এস 3 বালতি থেকে সমস্ত কিছু পরিবেশন করতে পারেন।

এটি কীভাবে করবেন তা দেখানোর মাধ্যমে এখানে একটি সম্পূর্ণ পদচারণা রয়েছে: https://www.codeengine.com/articles/process-form-aws-api-gateway-lambda/


2

সংযোগের দৃষ্টিকোণ থেকে "কিছু" আপনার অনুরোধগুলির উত্তর দেওয়া দরকার (জিইটি, পোষ্ট, পুট, সবকিছু)। সবার আগে আপনার কাছে একটি টিসিপি সংযোগ রয়েছে এবং "কিছু" এটি নিশ্চিত হওয়া দরকার যে এটি স্তর 7 টি বোঝাচ্ছে এবং ক্লায়েন্টটি যে বাইটগুলি পাঠাচ্ছে তা থেকে বোঝা যায়। কেবলমাত্র এই মুহুর্তে জিইটি অনুরোধগুলি POST অনুরোধগুলি বা অন্য URL এর চেয়ে একটি URL এর চেয়ে আলাদাভাবে পরিচালনা করা সম্ভব। সুতরাং শেষ পর্যন্ত আপনার এমন একটি পরিষেবা দরকার যা HTTP বোঝার এবং রাউটিং করতে সক্ষম। নিম্নলিখিত পরিষেবাগুলি এটি করতে সক্ষম: ক্লাউডফ্রন্ট ELB / ALB API গেটওয়ে (সীমাবদ্ধতা পরে আসে)

এপিআই গেটওয়ে অভ্যন্তরীণভাবে ক্লাউডফ্রন্ট ব্যবহার করে (ক্লাউডফ্রন্ট পর্যায়ে আপনাকে আসলে কোনও কিছু কনফিগার করার সুযোগ না দিয়ে) - এর অর্থ ক্লাউডফ্রন্ট এবং এপিআই গেটওয়ে পাশাপাশি পাশাপাশি চালানোর কোনও উপায় নেই কারণ শেষ পর্যন্ত এর অর্থ হবে আপনি ক্লাউডফ্রন্টের সাথে ক্লাউডফ্রন্ট চালাবেন পাশাপাশি.

ক্লাউডফ্রন্ট আপনাকে নিদর্শনগুলির উপর ভিত্তি করে বিভিন্ন উত্স নির্বাচন করার সুযোগ দেয় - তবে আপনি কেবলমাত্র উত্স হিসাবে S3 বা ELB / ALBs নির্বাচন করতে পারেন - ল্যাম্বদা ফাংশনগুলি নয় (ল্যাম্বদা @ এজ কার্যকারিতা ছাড়াও)।

ALB / ELB কেবলমাত্র EC2 দৃষ্টান্তটিকে ব্যাকএন্ড হিসাবে ব্যবহার করতে পারে - ল্যাম্বদা বা এস 3 নেই।

আপনি যেটি করতে চান তা কেবলমাত্র এই উপায়গুলির মধ্যে আমি ভাবতে পারি:

  • আপনি এপিআই গেটওয়ে ব্যবহার করেন এবং একটি ল্যাম্বডা ফাংশনে একটি নির্দিষ্ট "সম্পদ" পাথ করেন যা এস 3 এর জন্য বিপরীত প্রক্সি জাতীয় ধরণের করে (তাই ল্যাম্বদার মাধ্যমে স্থিতিশীল সম্পদগুলি পাইপিং করছে) - ল্যাম্বদার জন্য ব্যয়ের বিষয়ে সচেতন থাকুন!
  • আপনি এটি করতে পারেন তবে ল্যাম্বদার মাধ্যমে সম্পদটি পাইপ করার পরিবর্তে কেবল লাম্বদার মধ্যে একটি স্বাক্ষরিত ইউআরএল উত্পন্ন করার জন্য পরিবেশন করার জন্য সরাসরি এস 3 এ পুনর্নির্দেশ করুন (আরও ব্যয় সাশ্রয়ী হতে পারে)
  • আপনার প্রয়োগের বাকী অংশের চেয়ে আপনার সম্পদের জন্য পৃথক সাবডোমেনগুলি ব্যবহার করা - এটি একটি খুব সাধারণ প্যাটার্ন কারণ আপনি সহজেই ডিএনএস স্তরে বিভক্ত হয়ে যেতে পারেন এবং বিভিন্ন ব্যবহারের ক্ষেত্রে বিভিন্ন পরিষেবা ব্যবহার করতে পারেন (সম্পত্তির জন্য ক্লাউডফ্রন্ট এবং অ স্থির জন্য এপিআই গেটওয়ে অংশ)

সুতরাং আমার কলটি সর্বশেষ বিকল্প হবে - তবে এর অর্থ আপনাকে ক্লায়েন্ট / ব্রাউজারগুলিকে সমস্ত স্থিতিশীল সম্পদের (বা সমস্ত পোষ্ট অনুরোধের জন্য) একটি পৃথক সাবডোমেনের দিকে নির্দেশ করতে হবে।

দেখে মনে হচ্ছে আপনি ব্রাউজারে সত্যিকারের এপিআই-চালিত অ্যাপ্লিকেশন তৈরি করতে অ্যাঙ্গুলারজেএস বা প্রতিক্রিয়া জাতীয় প্রযুক্তির দিকে নজর রাখতে চান। এই পদ্ধতির সাথে আপনি একটি আসল এপিআই চালাচ্ছেন যা কোনও এপিআই গেটওয়ের সাহায্যে সমস্ত "গতিশীল" অনুরোধগুলি পরিচালনা করছে এবং এস 3 থেকে অ্যাপ্লিকেশনটিকে একটি স্ট্যাটিক সম্পদ হিসাবে বিতরণ করছে। সম্ভবত সেগুলির দিকে নজর দেওয়া আপনাকে আপনার উপায় সন্ধান করতে সহায়তা করতে পারে - আপনি সেগুলি ব্যবহার না করলেও কীভাবে এই জাতীয় জিনিস তৈরি করতে হয় তার জন্য স্থাপত্য নিদর্শন আপনি যা ইমোর জন্য জিজ্ঞাসা করছেন।


2

আমারও একই সেটআপ আছে। এস 3, ল্যাম্বদা ফাংশনে স্থিতিশীল সম্পদগুলি এপিআই গেটওয়ের মাধ্যমে পরিবেশন করেছে এবং তারা একই ডোমেন নামটি ভাগ করে।

আমি এপিআই গেটওয়ে দিয়ে যাচ্ছি যা ইতিমধ্যে ক্লাউডফ্রন্ট ব্যবহার করে এবং এর কয়েকটি কার্যকারিতা যেমন ক্যাশিংয়ের বিষয়টি প্রকাশ করে। তারপরে আমি ইউআরআইগুলি কনফিগার করে যা স্থিতিশীল সম্পদের মানচিত্র। এপিআই গেটওয়েতে, কোনও সংস্থান লাম্বদা ফাংশন, একটি এডাব্লুএস ফাংশন, উপহাস বা অন্য কোনও URL হতে পারে। আমি তাদের আমার এস 3 ইউআরএলগুলিতে নির্দেশ করব।

ইউআরআইগুলিকে যেমন সাবপ্যাথগুলি বিশ্বব্যাপী সেট করা যেতে পারে /assets/*


সুতরাং যে অংশটি আমাকে সমস্যা দেয় তা হ'ল এপিআই মোতায়েন করা। আপনার ক্ষেত্রে এটি সাধারণত অগ্রণী পথ ছাড়াই মোতায়েন করে /assets/*। আমাকে মোতায়েন করতে হবে এবং ডানদিকে ক্লিক /assets/*করতে হবে এবং সেখান থেকে মোতায়েন করতে হবে।
কোস্টা

1
আমার কমান্ড লাইন সরঞ্জামগুলি খনন করা উচিত এবং সেখান থেকে কীভাবে এপি এবং ল্যাম্বদা তৈরি করতে এবং সম্পাদনা করতে হবে তা শিখতে হবে।
কোস্টা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.