এডাব্লুএস এসকিউএস + এসএনএস + ল্যাম্বদা


11

আমি ভাবছিলাম যে আমি এসকিউএস কাতারে একটি বার্তা পাঠাতে পারি এবং কোনও ইমেল প্রেরণের জন্য ল্যাম্বডা ট্রিগার করতে এটিতে কোনও এসএনএস বিষয় সাবস্ক্রাইব করতে পারি।

এসকিউএস -> এসএনএস -> (ল্যাম্বদা) -> এসইএস

আমি জানি যে এসএনএস বার্তাগুলি এসকিউএসে প্রেরণ করা যেতে পারে তবে অন্যভাবে যদি সম্ভব হয় তবে আমি আগ্রহী

উত্তর:


11

একটি কাজ আমি হ'ল এসকিউএস কিউর জন্য ক্লাউডওয়াচ অ্যালার্ম তৈরি করা ApproximateNumberOfMessagesVisible( >= 1 for 5 minutes)। অ্যালার্মটি একটি এসএনএস বিষয়কে প্রকাশ করে যা ল্যাম্বডা ফাংশনটিকে ট্রিগার করে। ল্যাম্বদা ফাংশনটি সারিটি সাফ না হওয়া পর্যন্ত লুপ করে।

অ্যালার্ম থেকে ট্রিগার করতে এটি 5 মিনিট পর্যন্ত সময় নিতে পারে, তবে এটি সারিটি পোল করার প্রয়োজন ছাড়াই ব্যাচ-নির্ধারিত কাজের জন্য দুর্দান্তভাবে কাজ করে। (অ্যালার্ম গ্রানুলারিটি সক্রিয় সারির জন্য 5 মিনিট minutes


আমি ঠিক এই একই জিনিসটি করার বিষয়ে ভাবছি। আপনি কি জানেন যে প্রতিবার যদি ক্লাউডওয়াচ আপনার সারি পরীক্ষা করে নেওয়া হয়? এমন নয় যে আমরা এই ধরণের জিনিসটির সাথে আরও বেশি কৌতূহলের সাথে বড় বড় কথা বলছি।
ব্রায়ান এফ লেটি

এছাড়াও, আপনি যা বলছেন তা থেকে আমি ধরে নিচ্ছি অ্যালার্মটি বারবার অ্যালার্মের এসএনএস পাঠিয়ে রাখে? আপনার ল্যাম্বদা ফাংশনে টাইমআউটটি কী সেট করা আছে?
ব্রায়ান এফ লাইটিয়

অন্য একটি জিনিস। সমস্ত মন্তব্যের জন্য দুঃখিত। আমি "আনুমানিক" অংশটি নিয়ে কিছুটা চিন্তিত ছিলাম যে আপনি কি এমন সময় পেয়েছেন যেখানে সেখানে একটি বার্তা অপেক্ষা করা হয়েছিল যা সেখানে মোকাবেলা করা হয়নি কারণ এটি মনে করে যে সেখানে 1 আইটেমের পরিবর্তে কেবল 0 টি আইটেম রয়েছে?
ব্রায়ান এফ লাইটি

নিবন্ধন করুন তবে এটি অবিচ্ছিন্নভাবে বিপদাশঙ্কা করে না; কাতারে বসে থাকা বার্তাগুলির জন্য এটি দ্বিতীয় অ্যালার্মের প্রয়োজন হতে পারে (ল্যাম্বদা এক্সিকিউশন সমাপ্তি এবং পরবর্তী অ্যালার্মের মধ্যে সংযুক্ত)। পোলিং একটি ভাল সমাধান হতে পারে; খনি সাধারণত খুব নিখুঁত কাতারে কাজ করে (সুতরাং ভোটদানের পক্ষে মূল্যবান নয়)
স্কুইডপিকলস

"আনুমানিক" মন্তব্য মিস করেছেন। এটি দুর্দান্ত কাজ করছে বলে মনে হচ্ছে, তবে ymmv
স্কুইডপিকলস

7

আপনি যেতে পারবেন না SQS -> SNS, শুধুমাত্র SNS -> SQS

লাম্বদা এখন সময় নির্ধারণকে সমর্থন করে তাই একটি বিকল্প হ'ল ল্যাম্বদা ফাংশনে একটি এসকিউএস পোলার প্রয়োগ করা এবং ঘন ঘন এটি চালানো।

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


3
ল্যাম্বদা সহ traditionalতিহ্যবাহী কাতারে পলারের কৌশলগুলি ব্যবহার করার ক্ষেত্রেও কোনও ভুল নেই: উদাহরণস্বরূপ যদি লাম্বদা কোনও বার্তা প্রেরণ করে, কার্যকর করার সময়, তবে শেষে ফাংশনটি আবার চালু করুন; অন্যথায় এটি নির্ধারিত হিসাবে পরবর্তী
সম্পাদন করা

1

SQSসারিতে সাবস্ক্রাইব করা যায় SNSবিষয় এবং তাই প্রাপ্ত SNSবার্তাগুলি প্রক্রিয়া করতে। বর্তমানে অতিরিক্ত কোডিং ছাড়া এটি অন্য দিকে কার্যকর নয় (উদাহরণস্বরূপ LambdaFAQ দেখুন )।

আমি বলব যে এটি করার জন্য বেশ কয়েকটি বিকল্প রয়েছে তবে এটি আরও সাধারণ ইভেন্ট-চালিত সিস্টেম ব্যবহার করার মতো মার্জিত নয় AWS event->SQS->Lambda। অন্যথায় আপনার কোড কাস্টমাইজ / প্রয়োগ করতে হবে কীভাবে SQSসারিগুলি প্রক্রিয়াজাত করা হয়:

  1. আপনি নিজের ইভেন্ট উত্স প্রয়োগ করতে পারেন
  2. আপনার কিউ শোনার জন্য এবং তারপরে এসকিউএস ইভেন্টগুলিতে ট্রিগার করার জন্য কিছু মধ্যবর্তী ইসি 2 উদাহরণ থাকতে পারেSQSLambda

0

এটি জিজ্ঞাসা করা হয়েছিল এবং কিছুক্ষণ আগে উত্তর দেওয়া হয়েছিল, তবে কেবল এই সম্পর্কে নিজেকে ভাবতে পেরে আমি ভেবেছিলাম যে আমি একটি উপায় যুক্ত করব।

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

 1. Create a SNS topic.............................: SNS-topic-01
 2. Subscribe a SQS queue to that topic............: SQS-queue-01
 3. Subscribe a Lambda Function to that topic......: LAMBDA-func-01

এই কনফিগারেশনটি ব্যবহার করে, এসএনএস বিষয়টিতে একটি বার্তা জমা দেওয়ার সাথে সাথে একসাথে লাম্বদা ফাংশন ট্রিগার করার সময় এটি এসকিউএস কাতারে সজ্জিত হবে। সেই লাম্বদা ফাংশনটি একই স্ক্যুএসএস সারিটি পড়তে লিখতে হবে তবে লং পোলিং সক্ষম করে (20 সেকেন্ড পর্যন্ত) যাতে এনকুই সম্পূর্ণ হওয়ার আগে (যেমন রেসের শর্ত) সারিটি পড়তে না পারে।

সংক্ষেপে, এই স্কিমটি প্রতিটি সময়ে বর্ধিত এসকিউএস বার্তার জন্য কেবলমাত্র একটি লাম্বদা ফাংশন প্রার্থনা করে। আমি জানি না যে দীর্ঘকালীন পোল পাঠকরা এসকিউএসে কীভাবে কাজ করে (... কী একজন বাদ পড়ে?) তবে এটি সমাধান করার বিষয়টি বিবেচনা করার এটি অন্য একটি উপায় another = :)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.