আসুন একটি সার্ভারহীন ফাংশন সহ একটি QR কোড জেনারেটর তৈরি করি! PlatoBlockchain ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.

আসুন একটি সার্ভারহীন ফাংশন সহ একটি QR কোড জেনারেটর তৈরি করি!

QR কোড মজার, তাই না? আমরা তাদের ভালবাসি, তারপর ঘৃণা করি, তারপর আবার ভালবাসি। যাইহোক, তারা ইদানীং আবার পপ আপ করা হয়েছে এবং এটা কিভাবে তারা তৈরি করা হয়েছে সম্পর্কে চিন্তা করা হয়েছে. সেখানে একটি গ্যাজিলিয়ন QR কোড জেনারেটরের মতো আছে, কিন্তু বলুন যে এটি এমন কিছু যা আপনার নিজের ওয়েবসাইটে করতে হবে। এই প্যাকেজ এটা করতে পারেন। কিন্তু স্টাফ জেনারেট করার জন্য প্রয়োজনীয় সবকিছুর জন্য এটির ওজনও 180 KB-এর বেশি। আপনি আপনার বাকি স্ক্রিপ্টগুলির সাথে এটি সমস্ত পরিবেশন করতে চান না।

এখন, আমি ক্লাউড ফাংশন ধারণার জন্য অপেক্ষাকৃত নতুন, কিন্তু আমি শুনেছি যে মৌমাছির হাঁটু ঠিক এইরকম কিছুর জন্য। এইভাবে, ফাংশনটি একটি সার্ভারে কোথাও থাকে যা প্রয়োজন হলে কল করা যেতে পারে। ফাংশন চালানোর জন্য একটি সামান্য API মত সাজান.

কিছু হোস্ট কিছু ধরণের ক্লাউড ফাংশন বৈশিষ্ট্য অফার করে। DigitalOcean তাদের মধ্যে একটি হতে হবে! এবং, ফোঁটাগুলির মতো, ফাংশনগুলি স্থাপন করা বেশ সহজ।

স্থানীয়ভাবে একটি ফাংশন ফোল্ডার তৈরি করুন

DigitalOcean এর একটি CLI আছে যা একটি কমান্ড সহ যা আমাদের জন্য জিনিসগুলিকে ভারাক্রান্ত করবে, তাই cd যেখানেই আপনি জিনিসগুলি সেট আপ এবং চালাতে চান:

doctl serverless init --language js qr-generator

ভাষাটি স্পষ্টভাবে ঘোষণা করা হয়েছে লক্ষ্য করুন। DigitalOcean ফাংশন এছাড়াও PHP এবং Python সমর্থন করে।

আমরা নামক একটি সুন্দর পরিষ্কার প্রকল্প পেতে qr-generator সঙ্গে একটি /packages ফোল্ডার যা সমস্ত প্রকল্পের ফাংশন ধারণ করে। সেখানে একটি নমুনা ফাংশন আছে, কিন্তু আমরা আপাতত এটি উপেক্ষা করতে পারেন এবং একটি তৈরি করতে পারেন qr এর ঠিক পাশে ফোল্ডার:

আসুন একটি সার্ভারহীন ফাংশন সহ একটি QR কোড জেনারেটর তৈরি করি! PlatoBlockchain ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.
আসুন একটি সার্ভারহীন ফাংশন সহ একটি QR কোড জেনারেটর তৈরি করি!

যে ফোল্ডার যেখানে উভয় qrcode প্যাকেজ এবং আমাদের qr.js ফাংশন লাইভ যাচ্ছে. সুতরাং চল cd মধ্যে packages/sample/qr এবং প্যাকেজ ইনস্টল করুন:

npm install --save qrcode

এখন আমরা একটি নতুন ফাংশন লিখতে পারি qr.js ফাইল:

const qrcode = require('qrcode') exports.main = (args) => { return qrcode.toDataURL(args.text).then(res => ({ headers: { 'content-type': 'text/html; charset=UTF-8' }, body: args.img == undefined ? res : `<img src="${res}">` }))
} if (process.env.TEST) exports.main({text:"hello"}).then(console.log)

যে সব করছেন প্রয়োজন হয় qrcode প্যাকেজ এবং রপ্তানি করা একটি ফাংশন যা মূলত একটি উৎপন্ন করে <img> উৎসের জন্য একটি base64 PNG দিয়ে ট্যাগ করুন। এমনকি আমরা টার্মিনালে এটি পরীক্ষা করতে পারি:

doctl serverless functions invoke sample/qr -p "text:css-tricks.com"

কনফিগার ফাইল চেক করুন

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

targetNamespace: ''
parameters: {}
packages: - name: sample environment: {} parameters: {} annotations: {} actions: - name: hello binary: false main: '' runtime: 'nodejs:default' web: true parameters: {} environment: {} annotations: {} limits: {}

সেই হাইলাইট করা লাইনগুলি দেখুন? দ্য packages: name সম্পত্তি যেখানে packages ফোল্ডার ফাংশন লাইভ, যা একটি ফোল্ডার বলা হয় sample এক্ষেত্রে. দ্য actions/ name বৈশিষ্ট্য হল ফাংশনের নাম, যা ফাইলের নাম। এটা hello ডিফল্টরূপে যখন আমরা প্রকল্পটি স্পিন আপ করি, কিন্তু আমরা আমাদের নামকরণ করি qr.js, তাই আমাদের সেই লাইনটি থেকে পরিবর্তন করা উচিত hello থেকে qr এগিয়ে যাওয়ার আগে।

ফাংশন স্থাপন করুন

আমরা কমান্ড লাইন থেকে সরাসরি এটা করতে পারি! প্রথমত, আমরা DigitalOcean স্যান্ডবক্স পরিবেশের সাথে সংযোগ করি তাই আমাদের কাছে পরীক্ষার জন্য একটি লাইভ URL আছে:

## You will need an DO API key handy
doctl sandbox connect

এখন আমরা ফাংশন স্থাপন করতে পারি:

doctl sandbox deploy qr-generator

একবার স্থাপন করা হলে, আমরা একটি URL এ ফাংশন অ্যাক্সেস করতে পারি। URL কি? এর জন্য একটি আদেশ আছে:

doctl sbx fn get sample/qr --url
https://faas-nyc1-2ef2e6cc.doserverless.co/api/v1/web/fn-10a937cb-1f12-427b-aadd-f43d0b08d64a/sample/qr

হেক হ্যাঁ! বাকি স্ক্রিপ্টগুলির সাথে পুরো প্যাকেজটি পাঠানোর আর দরকার নেই! আমরা সেই URL টি হিট করতে পারি এবং সেখান থেকে QR কোড তৈরি করতে পারি।

ডেমো

We fetch এপিআই এবং যে সত্যিই এটি আছে সব!

কোডপেন এম্বেড ফলব্যাক

আসুন একটি সার্ভারহীন ফাংশন সহ একটি QR কোড জেনারেটর তৈরি করি! মূলত প্রকাশিত সিএসএস-ট্রিকস। তোমার উচিত নিউজলেটার পান.

সময় স্ট্যাম্প:

থেকে আরো সিএসএস কৌশল