এডাব্লুএস ল্যাম্বডা নির্ধারিত কাজগুলি


145

অ্যামাজন এডব্লিউএস ল্যাম্বদা ( http://aws.amazon.com/lambda/ ) ঘোষণা করেছে ।

পণ্য বিবরণ অন্তর্ভুক্ত:

পরিকল্পনামাফিক কাজ

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

আমি যখন এটি পড়ি তখন বুঝতে পেরেছিলাম শেষ পর্যন্ত আমার কাছে ক্রমাগত "ক্রোন-জাতীয়" কাজ করার একটি উপায় থাকতে পারে। আমি প্রতিদিন 5PM এ একটি নির্দিষ্ট ক্যোয়ারী চালাতে চাই যাক।

তবে ডকুমেন্টেশনে আমি এটি কোথাও পাই না। তারা কেবল প্রগ্রেমেটিকাল ইভেন্টগুলি বা অন্যান্য এডাব্লুএস পরিষেবাগুলির ইভেন্টগুলির ট্রিগারগুলি উল্লেখ করে।

আমি কি ভুল বুঝেছি? বা কেউ আমাকে ডকুমেন্টেশনের দিকে নির্দেশ করতে পারে?

উত্তর:


159

তফসিল ইভেন্টের জন্য স্থানীয় সমর্থন 8 ই অক্টোবর, 2015 যুক্ত করেছে:

এই এডাব্লুএস ব্লগ পোস্টে যেমন ঘোষণা করা হয়েছে , শিড্যুলিংকে এখন " ক্লাউডওয়াচ ইভেন্টস - শিডিউল " নামে পরিচিত ইভেন্ট উত্স ধরণের (যা ট্রিগারও বলা হয়) হিসাবে সমর্থন করা হয় এবং হার বা ক্রোন এক্সপ্রেশন হিসাবে প্রকাশ করা যেতে পারে।

একটি নতুন ল্যাম্বডায় তফসিলযুক্ত ইভেন্ট যুক্ত করুন

'ট্রিগারগুলি কনফিগার করুন' তৈরির পদক্ষেপে নেভিগেট করুন এবং 'ক্লাউডওয়াচ ইভেন্ট - শিডিয়ুল' ট্রিগারটি নির্দিষ্ট করুন। নীচে উদাহরণ কনফিগারেশন:

যে চিত্রটি সন্ধ্যা 5 টা ইউটিসিতে একটি নির্ধারিত ইভেন্ট তৈরির জন্য কনফিগারেশন দেখায়।

একটি বিদ্যমান ল্যাম্বডায় তফসিলযুক্ত ইভেন্ট যুক্ত করুন

আপনার ল্যাম্বদার 'ট্রিগার' ট্যাবে নেভিগেট করুন, 'ট্রিগার যুক্ত করুন' নির্বাচন করুন এবং 'ক্লাউডওয়াচ ইভেন্ট - শিডিউল' ট্রিগারটি নির্দিষ্ট করুন। স্ক্রিনশটের উদাহরণ যেখানে আমার কাছে একটি এসএনএস ট্রিগার সহ একটি ল্যাম্বডা রয়েছে:

লম্বদা কনসোল থেকে ট্রিগার ইউআই যুক্ত করতে কীভাবে নেভিগেট করতে হবে তা চিত্র Image

একবার লোড হয়ে গেলে, এই ট্রিগারটি কনফিগার করার জন্য ইউআই উপরের উপরের "একটি নতুন ল্যাম্বডায় তফসিলি ইভেন্টটি যুক্ত করুন" বিভাগের স্ক্রিনশটের সাথে সমান।

আলোচনা

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

cron(0 17 * * ? *)

আরও সংস্থান

মন্তব্য

  • এই বৈশিষ্ট্যটির প্রকাশের পরে এই ইভেন্টের নামটি "নির্ধারিত ইভেন্ট" থেকে "ক্লাউডওয়াচ ইভেন্টস - শিডিউল" এ পরিবর্তিত হয়েছে।
  • এই বৈশিষ্ট্যটি প্রকাশের আগে, এই ইস্যুটির প্রস্তাবিত সমাধান (প্রতি "42 ডাব্লু 50 সেকেন্ডে এডাব্লু ল্যাম্বদা দিয়ে শুরু করা" ) টাইমার তৈরি করতে বা বাহ্যিক অ্যাপ্লিকেশন সহ একটি টাইমার তৈরি করার জন্য এসডাব্লুএফ ব্যবহার করা ছিল ।
  • নির্ধারিত ইভেন্ট ব্লগ পোস্টটি প্রকাশের পর থেকে ল্যাম্বডা ইউআইকে তাকাতে হয়েছে এবং এর মধ্যে থাকা স্ক্রিনশটগুলি আর সঠিক নয় exact সর্বশেষ সংস্করণগুলির জন্য উপরে আমার 3-10 / 2015 থেকে আপডেট হওয়া স্ক্রিনশটগুলি দেখুন।

আপনি কি জানেন যে 1 মিনিটের নির্ভুলতার জন্য সমর্থন আছে কিনা?
কাপ্তান

2
এটি কিছুটা হ্যাক তবে আপনি এটি করতে পারেন 1 মিনিটের ফ্রিকোয়েন্সি youtube.com/watch?v=FhJxTIq81AU
ingh.am

4
ইভেন্ট উত্সের ধরণটি এখন "ক্লাউড ওয়াচ ইভেন্টস - শিডিউল"
গাই দাহের

@ গুয়াদাহের আপনাকে ধন্যবাদ, আমি সেই অনুযায়ী আমার উত্তর আপডেট করেছি।
অ্যান্টনি নিস

3
এটি এখন 1 মিনিট হারকে সমর্থন করে। docs.aws.amazon.com/lambda/latest/dg/…
7:25

18

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

অবিশ্বস্ত টাউন ক্লক (ইউটিসি)

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

আপনি প্রতি পনের মিনিটে আপনার কোডটি চালানোর জন্য চিম বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন, বা কেবল আপনার কোডটি একবারে চালাতে পারেন (উদাহরণস্বরূপ, যখন মিনিট == "00") বা দিনে একবার (যেমন, যখন ঘন্টা == "00" এবং মিনিট = = "00") বা অন্তরগুলির অন্য কোনও সিরিজ।

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

আপনার কোডটিকে অবিশ্বাস্য টাউন ক্লকের সাথে সংযুক্ত করা দ্রুত এবং সহজ। কোনও অ্যাপ্লিকেশন প্রক্রিয়া বা অ্যাকাউন্ট তৈরির প্রয়োজন নেই


9
আর বৈধ উত্তর নেই। অবিশ্বাস্য টাউন ক্লকটি আর উপলভ্য নয়
blueskin

15

নতুন সমাধান: ল্যাম্বদা তফসিলযুক্ত চাকরি

ভার্নার ভোগেল আজ রাত্রে (10/08) পুনরায় ঘোষণা করেছেন: আবিষ্কার করুন যে এডাব্লুএস লাম্বডার এখন নিজস্ব শিডিয়ুলার রয়েছে।

Se থেকে 2015-10-08 উপর ডেস্কটপ AWS ল্যামডা মুক্তি নোট :

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


পুরানো সমাধান: এডাব্লুএস ডেটা পাইপলাইনের সাথে সময় নির্ধারণ

আপনি নির্দিষ্ট সময়ের সাথে কোনও কার্য নির্ধারণের জন্য AWS ডেটা পাইপলাইন ব্যবহার করতে পারেন । আপনি যখন শেলকম্যান্ডঅ্যাক্টিভিটি দিয়ে আপনার পাইপলাইনটি কনফিগার করেন তখন পদক্ষেপটি কোনও আদেশ হতে পারে ।

আপনি উদাহরণস্বরূপ এখানে AWS CLI কমান্ড চালাতে পারেন:

  • এসকিউএসে একটি বার্তা রাখুন
  • বা সরাসরি একটি ল্যাম্বদা ফাংশন প্রার্থনা করুন (অনুরোধ দেখুন )

আপনি সহজেই এডাব্লুএস ডেটা পাইপলাইন নির্ধারিত টাস্কটি সরাসরি এডাব্লুএস কনসোলের মধ্যে তৈরি করতে পারেন (উদাঃ AWS CLI কমান্ড সহ):

এখানে চিত্র বর্ণনা লিখুন

আপনার সময়সূচীটি সংজ্ঞায়িত করতে আপনি API ব্যবহার করতে পারেন :

{
 "pipelineId": "df-0937003356ZJEXAMPLE",
 "pipelineObjects": [
    {
      "id": "Schedule",
      "name": "Schedule",
      "fields": [
        { "key": "startDateTime", "stringValue": "2012-12-12T00:00:00" }, 
        { "key": "type", "stringValue": "Schedule" }, 
        { "key": "period", "stringValue": "1 hour" }, 
        { "key": "endDateTime", "stringValue": "2012-12-21T18:00:00"  }
       ]
     }, {
      "id": "DoSomething",
      "name": "DoSomething",
      "fields": [
        { "key": "type", "stringValue": "ShellCommandActivity" },
        { "key": "command", "stringValue": "echo hello" },
        { "key": "schedule", "refValue": "Schedule" }
      ]
    }
  ]
}

সীমাবদ্ধতা : ন্যূনতম সময়সূচী বিরতি 15 মিনিট।
মূল্য নির্ধারণ : প্রতি মাসে প্রায় $ 1.00


9

এখানে আমি এটি কীভাবে করছি:

  • ল্যাম্বদা তৈরি করুন যা:

  • এর জন্য ক্লাউডওয়াচ অ্যালার্ম তৈরি করুন: আনুমানিক সংখ্যাআমফসেসভেজিবল> 0 মিনিটের জন্য 0

  • অ্যালার্মে এসএনএস বিষয় সাবস্ক্রাইব করুন
  • এসএনএস বিষয়টিতে লাম্বদা সাবস্ক্রাইব করুন

এখন আপনার কাছে প্রায় 15 মিনিটের রেজোলিউশন সহ একটি টাইমার রয়েছে।

তারপরে অন্যান্য লাম্বদা ফাংশনগুলি এসএনএস বিষয়টিতে সাবস্ক্রাইব হয় এবং প্রতি 15 মিনিটে কল হয়।


4
এই উত্তরটি মূলত এক প্রক্রিয়া যা বর্ণিত অবিশ্বস্ত টাউন ক্লক বাস্তবায়ন করতে নির্দেশাবলীর শাদি এর উত্তর । প্রদত্ত যে ইউটিসির লেখক সতর্ক করেছেন যে এটি "যে কোনও সময়ে সতর্কতা ছাড়াই অদৃশ্য হয়ে যেতে পারে", আপনার পন্থা সম্ভবত আরও উন্নত।
ব্রায়ান

প্রথম বাস্তবায়ন - 1 বার্তা - কয়েক দিন এবং স্টপ কাজ করে। দেখে মনে হচ্ছে পর্যায়ক্রমে বার্তাটি কেবল এসকিউএসে সরবরাহ করা হয় না। আরও 2 টি বার্তা যুক্ত হয়েছে (যোগফল 3) - এখন এটি ইতিমধ্যে এক সপ্তাহ কাজ করে। ক্লাউডওয়াচে আমি পর্যায়ক্রমিক মিসগুলি দেখতে পাই - মাত্র 2 টি বার্তা বিতরণ করা হয়েছে, এখনও টাইমার টিক্স ভাল। গিস্ট আপডেট করা হয়েছে gist.github.com/mikeplavsky/5ffe7e33e0d70a248537
maplpro

@ ব্রায়ান অবিশ্বাস্য টাউন ক্লক (টাউন ক্লক.আইও ) এর লেখক হিসাবে আমি একমত হব যে আপনার নিজের চালানো কিছু অচেনা (আমার) উপর নির্ভর করে আপনাকে আরও নিয়ন্ত্রণ দেয়। প্রকৃতপক্ষে, আমি লোকদের তাদের নিজস্ব অবাস্তব টাউন ক্লকটি চালানোর জন্য উত্সাহিত করেছি এবং গিতহাবের
এরিক হ্যামন্ড

4

যেহেতু এখন সহজেই এইচটিটিপি (যেমন জিইটি বা কার্ল ব্যবহার করে) ল্যাম্বডা ফাংশনগুলি ট্রিগার করা সম্ভব হয়েছে তার সহজ সমাধান হ'ল ইজেক্ট্রনের মতো পরিচালিত সিআরএন ব্যবহার করা: https://www.easycron.com/ আপনার ল্যাম্বদা ফাংশনটি চলমান হিসাবে চালিত করতে।

আমাদের একই সমস্যা হয়েছিল এবং অজগরে গুগল অ্যাপ ইঞ্জিনে ক্রোন পরিষেবা চালানো শেষ হয়েছে যেহেতু এটি সিআরএন জবটিতেই আরও নমনীয়তা এবং জটিলতার সুযোগ দেয়।


টাইমস পরিবর্তিত হয়েছে এবং লাম্বদা
ডার্ক কনরাড

2

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

এখানে চিত্র বর্ণনা লিখুন


1

আপনি এটি ক্লাউডওয়াচ ইভেন্টগুলির সাথেও শিডিউল করতে পারেন। নিয়ম তৈরি করুন -> লক্ষ্য (ল্যাম্বদা) সংযুক্ত করুন এবং আপনার নিয়মে ক্রোন / রেট ওয়াইড শিডিয়ুল সেট আপ করুন।


1

ওয়েব-কনসোল উপায়টি বেশ সোজা। CloudWatchল্যাম্বদার জন্য কেবল একটি নিয়ম তৈরি করুন এবং এটি ল্যাম্বদার Triggersট্যাবে যুক্ত করুন।

যাঁদের সাথে এটি স্বয়ংক্রিয় হওয়া দরকার তাদের জন্য aws cliআমরা পারি

  1. ফাংশন তৈরি করুন,
  2. বিধি তৈরি করুন,
  3. অনুমতি দিন,
  4. লিঙ্ক বিধি এবং ফাংশন

ফাংশন তৈরি করুন

aws lambda create-function --function-name ${FUNCTION-NAME} \
--runtime java8 \
--role 'arn:aws:iam::${Account}:role/${ROLE}' \
--handler org.yourCompany.LambdaApp \
--code '{"S3Bucket":"yourBucket", "S3Key": "RC/yourapp.jar"}' \
--description 'check hive connection' \
--timeout 180 \
--memory-size 384 \
--publish \
--vpc-config '{"SubnetIds": ["subnet-1d2e3435", "subnet-0df4547a"], "SecurityGroupIds": ["sg-cb17b1ae", "sg-0e7ae277"]}' \
--environment Variables={springEnv=dev}

বিধি তৈরি করুন

## create
aws events put-rule --name ${ruleName} \
--schedule-expression 'rate(5 minutes)' \
--state ENABLED \
--description 'check hive connection'

# grant permission to the Rule to allow it to trigger the function
aws lambda add-permission --function-name ${functionName} \
--statement-id 123 \
--action 'lambda:InvokeFunction' \
--principal events.amazonaws.com \
--source-arn arn:aws:events:us-east-1:acc:rule/${ruleName}

# link rule and function
aws events put-targets --rule ${ruleName} \
--targets '[{"Id":"1", "Arn":"arn:aws:lambda:us-east-1:acc:function:RC-checkhive"}]'

1

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


0

ল্যাম্বদা ফাংশনটি তৈরি করার সময় "ক্লাউডওয়াচ ইভেন্টস - শিডিউল" তৈরি করুন

এখন আপনি হয় রেড = 15 মিনিটের মতো সময়সূচী প্রকাশে AWS প্রিসেটগুলি ব্যবহার করতে পারেন বা আপনি ক্রোন এক্সপ্রেশন ব্যবহার করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন

আপনার প্রয়োজনীয়তার জন্য ক্রোন সময়সূচী "0 0 17 1/1 *? *"


-1

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

একবার আপনি দীক্ষা ইঞ্জিন সেট আপ করার পরে, আপনি ক্রোন এক্সপ্রেশন ব্যবহার করে ক্রিয়াকলাপ নিম্নলিখিত উপায়ে নির্ধারণ করতে পারেন:

java -jar diksha-client-0.0.1.jar -lcfg cf1 -cj "কাজের নাম | ফাংশননাম | প্রসঙ্গ | 0 0-59 * * * * | 10"

এই চাকরিতে 10 মিনিটের জন্য প্রতি মিনিটে কাজ চলবে। এডাব্লুএস এসডাব্লুএফ নিজেই ফাংশন ট্রিগার করবে।

বিশদ: https://github.com/milindparikh/diksha

দাবি অস্বীকার: আমি এই প্রকল্পে সহযোগী।

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