අද අපි ඊනියා නිර්මාණය කරමු. Yandex කාර්යය (නිල නාමය
මම සම්ප්රදායික සේවාදායකයන්ගේ විරුද්ධවාදියෙක් (නමුත් උමතුවෙන් තොරව) සහ ඊනියා ආධාරකරුවෙකි. serverless (සේවාදායක රහිත) විසඳුම්, මන්ද මම සේවාදායකයන් පරිපාලනය කිරීමට කැමති නැති (සහ මම ඇත්තටම නොදන්නේ කෙසේදැයි) සහ ඊටත් වඩා, ඒවා පූරණය නොවන කාලය සඳහා ගෙවන්න. තවත් දෙයක් නම් කාර්යයන්. කවුරුහරි මා නොමැතිව ඔවුන්ට සේවය කරයි, මම ඇමතුම් සඳහා පමණක් ගෙවමි. 2019 ඔක්තෝබර් මස මුලදී, Yandex එය ඉදිරිපත් කළේය Yandex Cloud කාර්යයන් - රුසියානු සමූහාණ්ඩුවේ පළමුවැන්නා බව පෙනේ serverless. විශේෂයෙන් හොඳ දෙය නම් ඇලිස්ගේ කුසලතා සඳහා ඔවුන් සාමාන්යයෙන් නොමිලේ, එබැවින් ඔවුන් එතැන් සිට මගේ පර්යන්ත දර්ශනයේ සිටීමයි. නමුත් අපි දැනටමත් ආරම්භ කරමු.
අපි හිතමු මේ ජවනිකාව. ඔබගේ අයදුම්පත (උදාහරණයක් ලෙස, ඇලිස්ගේ දක්ෂතාවය
කෙසේද යන්න ගැන Yandex කාර්යයන් දත්ත සමුදායේ ඇතුළත් කිරීම් කරන්න Cloud Firestore අපි දැනටමත් එය නිබන්ධනය තුළ බැලුවෙමු
1. SendGrid හි ගිණුමක් සාදන්න
අදහස් දැක්වීම්SendGrid යනු මගේ තේරීම පමණි, එය මම හේතු කිහිපයක් නිසා කළෙමි, ප්රධාන එක නම් ඔවුන් Node.js සඳහා සූදානම් කළ SDK එකක් තිබීමයි. ඔබට වෙනත් ඕනෑම තැපැල් සේවාවක් තෝරාගත හැක.
අපි ඉදිරියට යමු
ඊළඟ පියවරේදී අපි තෝරා ගනිමු Node.js:
ඊළඟට අපි අපේ දේ සඳහා ඉදිරිපත් වෙමු API-key නම (යතුරු ලැයිස්තුවේ කොන්සෝලයේ පමණක් දර්ශනය වනු ඇත, සහ අපගේ අනාගත කේතය සමඟ කිසිදු සම්බන්ධයක් නැත; මම දැන් ආවේ නොදිරන දෙයක් demo-api-key) සහ බොත්තම ඔබන්න යතුර සාදන්න:
යතුර උත්පාදනය වනු ඇත, අපි එය පිටපත් කර ගැඹුරුම විශ්වාසය තබා ගන්නෙමු. තවද අපට බොත්තමක් සහිත තිරයක් ඇත ඒකාබද්ධතාවය තහවුරු කරන්න, පහත පින්තූරයේ මෙන්, නමුත් අපි එය තවම ක්ලික් නොකරමු, නමුත් අපි කේතය ලිවීමට යමු:
2. ලිවීමේ කේතය
නමුත් ඔබට පෙනෙන පරිදි කේතයම හාස්යජනක ලෙස කුඩායි - පේළි 22 යි!
පෙළට #8 මගේ විද්යුත් තැපෑල දෘඪ කේත කර ඇත (ඒ නිසා ලැජ්ජාවෙන් සඟවා ඇත) - කරුණාකර ඔබගේ එක සඳහන් කරන්න. සැබෑ ජීවිතයේ දී, අපට සියලු දත්ත ලැබෙනු ඇත (ඇතුළු විද්යුත් තැපෑල) වස්තුවෙන් උත්සවය. උදාහරණයක් ලෙස, ක්රමය නම් තැපැල් වස්තුවක් අපගේ කාර්යයට යවනු ලැබේ පරිශීලක ක්ෂේත්රය සමඟ (දේපල) විද්යුත් තැපෑල, මෙම ක්ෂේත්රයේ අගය මෙලෙස ලබා ගත හැක:
const { user } = event;
const email = user.email;
සහ විද්යුත් තැපැල් ලිපිනය ක්රමය භාවිතා කර ශ්රිතයට යවන්නේ නම් ගන්නඋදාහරණයක් ලෙස: https://functions.yandexcloud.net/123abc?[email protected]
පරාමිති අගය විද්යුත් තැපෑල ඔබට එය මේ ආකාරයෙන් ලබා ගත හැකිය:
const email = event.queryStringParameters.email;
වස්තුවක හරියටම අඩංගු වන්නේ කුමක්දැයි බැලීමට උත්සවය, ඔබට සරලම නිර්මාණය කළ හැකිය Yandex කාර්යය සහ විමසුම් සමඟ එය කරකවන්න:
module.exports.handler = async function (event) {
return {
'statusCode': 200,
'body': JSON.stringify(event)
};
};
මෙය නිල ලේඛනවල වඩාත් විස්තරාත්මකව (නමුත් අඩු පැහැදිලිව) සාකච්ඡා කෙරේ
එබැවින්, ව්යාපෘති නාමාවලියක් සාදන්න (උදාහරණයක් ලෙස, තැපැල්කරු), එයට යන්න, ව්යාපෘතිය ආරම්භ කරන්න, පරායත්තතා ස්ථාපනය කරන්න:
mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv
මෙහිදී අවශ්ය වන්නේ පැකේජය පමණි @sendgrid/mail. ප්ලාස්ටික් බෑගය ඊමේල් වලංගුකාරකය වලංගු භාවය සඳහා විද්යුත් තැපැල් ලිපිනය පරීක්ෂා කරයි (මම වහාම අනුමාන නොකළේ කෙසේද?), නමුත් අපට එය විශ්වාස නම් (එය අප නොමැතිව දැනටමත් දිගු කාලයක් පරීක්ෂා කර ඇත), අපට එය ස්ථාපනය කිරීමට අවශ්ය නැත (සහ, ඇත්ත වශයෙන්ම, අපි එය කේතය තුළ පරීක්ෂා කිරීමට අවශ්ය නැත). ප්ලාස්ටික් බෑගය dotenv ගොනුවකින් වාර්තා කියවීමට නිර්මාණය කර ඇත .env ධාවන කාල විචල්යයන් ලෙස. නමුත් තුළ Yandex කාර්යයන් මෙම විචල්යයන් සෘජුවම ධාවන කාල පරිසරයට තැබිය හැකිය. කෙසේද? - මම එය පහතින් පෙන්වන්නම්. එබැවින් පැකේජය dotenv ඔබට එය ස්ථාපනය කළ නොහැක, සහ ගොනුව .env - නිර්මාණය නොකරන්න, ඒ සමඟම කේතය ගොනුවේ ඇත index.js වෙනස් කරන්න එපා. නමුත් මෙන්න අපි මෙම පැකේජය ස්ථාපනය කර ඇති නිසා අපි ගොනු සාදන්නෙමු index.js и .env:
touch index.js
touch .env
ගොනුවේ index.js ඉහත තිර පිටපතේ පෙන්වා ඇති කේත පේළි 22ක් ලියන්න (පේළියේ පමණි #8 ඔබගේ විද්යුත් තැපෑල වෙනස් කරන්න), සහ ගොනුවේ .env - (කිසිදු උද්ධෘත හෝ විරාම ලකුණු නොමැතිව) යුගලය සඳහන් කරන්න - ප්රධාන නම/අගය APIඅපට මෑතකදී කොන්සෝලයෙන් ලැබුණු SendGrid:
SENDGRID_API_KEY=ඔබේ-ඉතා රහසිගත-sendgrid-api-key
ඔබට අඩු වැඩ අවශ්ය නම්, ගබඩාව ක්ලෝන කර පැකේජ ස්ථාපනය කරන්න:
git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i
ගොනුවේ index.js, පෙළට #8 ඊ - මේල් වෙනස් කරන්න; මූල නාමාවලියෙහි ගොනුවක් සාදන්න .env, සහ එහි යතුරේ නම/අගය දක්වන්න API, ඉහත පෙන්වා ඇති පරිදි.
3. යෙදවීම
අඩු වැඩි වශයෙන් පැහැදිලිව සහ විස්තරාත්මකව Yandex.Cloud සහ එය එහි තැබිය යුතු ආකාරය Yandex කාර්යයන් මගේ ලිපියේ විස්තර කර ඇත
අපි නිර්මාණය කරනවා තැපැල්- සංරක්ෂිතය (අපි එය කියමු, උදාහරණයක් ලෙස, mailer.zip), අපි නාමාවලිය ඇතුළත් කරන්නෙමු node_modules සහ ගොනු .env, index.js - අපගේ ව්යාපෘති නාමාවලියෙන් සියල්ල:
අපි නමින් ශ්රිතයක් සාදන්නෙමු... නිවැරදිව - තැපැල්කරු, වම් සංචාලන මෙනුව තුළ අපි ඇතුල් කරන්නෙමු සංස්කාරකය, අවශ්ය ක්ෂේත්ර පුරවා ටැබ් එකට මාරු කරන්න ZIP සංරක්ෂිතය අපගේ ලේඛනාගාරය බාගන්න mailer.zip:
සහ බාගත කිරීම සඳහා කලින් සඳහන් කළ විකල්පය මෙන්න API යතුර ව්යාපෘතියේ ගොනුවක් සෑදීමට වඩා කෙලින්ම මෙහි .env, සහ පැකේජය ස්ථාපනය නොකරන්න dotenv. නමුත් අපි මේ සියල්ල දැනටමත් කර ඇත, එබැවින් මම එය පෙන්වන්නේ තොරතුරු සඳහා පමණි. එනම්, අනුපිටපත් කිරීමට අවශ්ය නැත!
දැන් ඉහළ දකුණු කෙළවරේ ඇති බොත්තම ක්ලික් කරන්න අනුවාදය සාදන්න, සහ තත්පර කිහිපයක් ඉන්න. සෑම දෙයක්ම සූදානම් වූ විට, අපි ස්වයංක්රීයව කොටස වෙත යන්නෙමු දළ විශ්ලේෂණය. එහිදී අපි විකල්පය සක්රිය කරමු පොදු කාර්යයඑවිට ඔබට බාහිර ලෝකයෙන් එය සමඟ අන්තර් ක්රියා කළ හැකිය.
සෙල්ලිපිය ඉදිරිපිට නිල් පැහැති සබැඳිය ඔබට පෙනේ ඇමතුම් සබැඳිය? එය ක්ලික් කරන්න. හිස් බ්රවුසර කවුළුවක් විවෘත වනු ඇත... නමුත් රැඳී සිටින්න - මට විද්යුත් තැපෑලක් ලැබුණි:
දැන් ඔබට කොන්සෝලය වෙත ආපසු යා හැක SendGrid, සහ බොත්තම ඔබන්න ඒකාබද්ධතාවය තහවුරු කරන්න. පද්ධතිය එහි නාලිකා හරහා සෑම දෙයක්ම පරීක්ෂා කරනු ඇත, එහි ප්රතිඵලයක් ලෙස එය මෙවැනි තිරයක් ආපසු ලබා දිය යුතුය:
එපමණයි, යාලුවනේ (සහ ගැහැණු ළමයින්, ඇත්ත වශයෙන්ම) - සියල්ල ඇත්තෙන්ම ඉතා සරල හා අලංකාරයි! තවත් ලිපි තිබේවි. මෙවැනි දෙයක් කියවීමට කැමති අය සිටී නම්, ඔබට අතපසු නොවන පරිදි දායක වන්න.
4. පරිත්යාග
මූලාශ්රය: www.habr.com