کدهای QR خنده دار هستند، درست است؟ ما آنها را دوست داریم، سپس از آنها متنفریم، سپس دوباره آنها را دوست داریم. به هر حال، آنها اخیراً دوباره ظاهر شده اند و این باعث شد که به نحوه ساخت آنها فکر کنم. مانند یک gazillion تولید کننده کد QR وجود دارد، اما بگویید این کاری است که باید در وب سایت خود انجام دهید. این بسته می تواند این کار را انجام دهد. اما وزن آن 180 کیلوبایت برای همه چیزهایی است که برای تولید چیزها نیاز دارد. شما نمی خواهید همه اینها را همراه با بقیه اسکریپت های خود ارائه دهید.
اکنون، من با مفهوم توابع ابری نسبتاً جدید هستم، اما میشنوم که برای چیزی شبیه به این، زانوهای زنبور عسل است. به این ترتیب، تابع در جایی روی سرور زندگی می کند که در صورت نیاز می توان آن را فراخوانی کرد. برای اجرای تابع مانند یک API کوچک مرتب کنید.
برخی از میزبان ها نوعی ویژگی عملکرد ابری را ارائه می دهند. DigitalOcean یکی از آنهاست! و مانند Droplets، استقرار توابع بسیار آسان است.
یک پوشه توابع به صورت محلی ایجاد کنید
DigitalOcean یک CLI دارد که با دستوری چیزها را برای ما داربست می کند، بنابراین cd
هر کجا که میخواهید موارد را تنظیم و اجرا کنید:
doctl serverless init --language js qr-generator
توجه داشته باشید که زبان به صراحت اعلام شده است. توابع DigitalOcean از PHP و Python نیز پشتیبانی می کنند.
ما یک پروژه تمیز خوب به نام دریافت می کنیم qr-generator
با یک /packages
پوشه ای که تمام توابع پروژه را در خود جای می دهد. یک تابع نمونه در آن وجود دارد، اما میتوانیم فعلاً آن را نادیده بگیریم و a ایجاد کنیم 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>
با a 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
پوشه تابع lives است که پوشه ای به نام است sample
در این مورد. این actions/ name
ویژگی نام خود تابع است که نام فایل است. این است hello
بهطور پیشفرض وقتی پروژه را چرخش میکنیم، اما ما پروژه خود را نامگذاری میکنیم qr.js
، بنابراین ما باید آن خط را تغییر دهیم hello
به qr
قبل از حرکت
تابع را مستقر کنید
ما می توانیم این کار را مستقیماً از خط فرمان انجام دهیم! ابتدا، ما به محیط sandbox 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
API و این واقعاً تمام چیزی است که در آن وجود دارد!
بیایید یک تولید کننده کد QR با عملکرد بدون سرور بسازیم! در ابتدا منتشر شد ترفندهای CSS. تو باید دریافت خبرنامه.
- '
- "
- 9
- a
- درباره ما
- دسترسی
- اقدامات
- معرفی
- API
- اساسا
- قبل از
- بدن
- تغییر دادن
- ابر
- رمز
- مفهوم
- اتصال
- کنسول
- ایجاد
- گسترش
- مستقر
- محیط
- همه چیز
- ویژگی
- نام خانوادگی
- از جانب
- تابع
- توابع
- خنده دار
- تولید می کنند
- ژنراتور
- رفتن
- اینجا کلیک نمایید
- برجسته
- دارای
- چگونه
- HTTPS
- اطلاعات
- نصب
- IT
- خود
- جاوا اسکریپت
- کلید
- زبان
- لاین
- خطوط
- کوچک
- زنده
- عشق
- ساخته
- ساخت
- بیش
- متحرک
- نیازهای
- ارائه
- خود
- بسته
- زیبا
- روند
- پروژه
- ویژگی
- کد QR
- RE
- REST
- برگشت
- دویدن
- گودال ماسهبازی
- بدون سرور
- تنظیم
- So
- برخی از
- چیزی
- یک جایی
- چرخش
- پشتیبانی
- پایانه
- آزمون
- تست
- La
- منبع
- اشیاء
- تفکر
- us
- وب
- سایت اینترنتی
- شما