Yandex කාර්යයන් තැපැල් යැවීම

Yandex කාර්යයන් තැපැල් යැවීම

අද අපි ඊනියා නිර්මාණය කරමු. Yandex කාර්යය (නිල නාමය Yandex Cloud කාර්යයන්), එය තැපැල් සේවාව සමඟ ඒකාබද්ධ විය SendGrid සාමකාමීව නිදා සිටින පරිශීලකයින්ට "සබන්" යවනු ඇත (විහිළුවට - අපි සියල්ලෝම ස්පෑම් වලට විරුද්ධ බව මම දනිමි).

මම සම්ප්‍රදායික සේවාදායකයන්ගේ විරුද්ධවාදියෙක් (නමුත් උමතුවෙන් තොරව) සහ ඊනියා ආධාරකරුවෙකි. serverless (සේවාදායක රහිත) විසඳුම්, මන්ද මම සේවාදායකයන් පරිපාලනය කිරීමට කැමති නැති (සහ මම ඇත්තටම නොදන්නේ කෙසේදැයි) සහ ඊටත් වඩා, ඒවා පූරණය නොවන කාලය සඳහා ගෙවන්න. තවත් දෙයක් නම් කාර්යයන්. කවුරුහරි මා නොමැතිව ඔවුන්ට සේවය කරයි, මම ඇමතුම් සඳහා පමණක් ගෙවමි. 2019 ඔක්තෝබර් මස මුලදී, Yandex එය ඉදිරිපත් කළේය Yandex Cloud කාර්යයන් - රුසියානු සමූහාණ්ඩුවේ පළමුවැන්නා බව පෙනේ serverless. විශේෂයෙන් හොඳ දෙය නම් ඇලිස්ගේ කුසලතා සඳහා ඔවුන් සාමාන්‍යයෙන් නොමිලේ, එබැවින් ඔවුන් එතැන් සිට මගේ පර්යන්ත දර්ශනයේ සිටීමයි. නමුත් අපි දැනටමත් ආරම්භ කරමු.

අපි හිතමු මේ ජවනිකාව. ඔබගේ අයදුම්පත (උදාහරණයක් ලෙස, ඇලිස්ගේ දක්ෂතාවය මතක තබා ගන්න සහ අමතක කරන්න මාර්ගය වන විට, ද ක්රියා කරයි Yandex කාර්යයන්) ඩිජිටල් නිෂ්පාදනයක් මිලදී ගැනීමට පරිශීලකයාට ආරාධනා කරයි, උදාහරණයක් ලෙස, අමතර විකල්ප, සහ පරිශීලකයා ගෙවීමක් කරයි. යම් ආකාරයක ගෙවීම් පද්ධතියක් (ව්‍යාකූල ලෙස සමාන වේ Yandex.Money) ගෙවීම ක්‍රියාවට නංවා එය ඔබ සපයන ලිපිනයට යවයි (සහ අපට ඇමතීමට සබැඳියක් ඇත Yandex කාර්යයන්) HTTP-ගෙවුම්කරුගේ මුදල, සම්පූර්ණ නම, දුරකථන අංකය සහ විද්‍යුත් තැපෑල වැනි ගෙවීම් විස්තර අඩංගු ඉල්ලීමක්. අපට මෙම දත්ත යම් ආකාරයකින් සැකසීමට අවශ්‍යයි, උදාහරණයක් ලෙස: ප්‍රමාණය පරීක්ෂා කරන්න, දත්ත සමුදායේ සුදුසු ඇතුළත් කිරීම් කරන්න, පරිශීලකයින්ට යවන්න කෙටි පණිවිඩ и විද්යුත් තැපෑල ගෙවීම් ලදුපත තහවුරු කිරීම සහ වැඩිදුර උපදෙස් සමඟ. ඉතින් ඔබම ක්ෂුද්ර සේවා.

කෙසේද යන්න ගැන Yandex කාර්යයන් දත්ත සමුදායේ ඇතුළත් කිරීම් කරන්න Cloud Firestore අපි දැනටමත් එය නිබන්ධනය තුළ බැලුවෙමු ඇලිස්ට හැමදේම මතකයි (සහ අනාගතයේදී, මම හිතන්නේ, අපි වෙනත් දත්ත සමුදායක් සඳහා උදාහරණයක් සලකා බලමු - Yandex දත්ත සමුදාය) පරිශීලකයින්ට යවන ආකාරය ගැන කෙටි පණිවිඩ සහ අපගේ යෙදුම සමඟ ඒකාබද්ධ කරන්න Yandex.Money - අපි එය නුදුරු අනාගතයේදී විසඳන්නෙමු. දැන් අපි ලිපි යැවීම සමඟ කටයුතු කරමු.

1. SendGrid හි ගිණුමක් සාදන්න

අදහස් දැක්වීම්SendGrid යනු මගේ තේරීම පමණි, එය මම හේතු කිහිපයක් නිසා කළෙමි, ප්‍රධාන එක නම් ඔවුන් Node.js සඳහා සූදානම් කළ SDK එකක් තිබීමයි. ඔබට වෙනත් ඕනෑම තැපැල් සේවාවක් තෝරාගත හැක.

අපි ඉදිරියට යමු ගිණුම් ලියාපදිංචි කිරීමේ පිටුවට සහ එහි ලියාපදිංචි පෝරමය පුරවන්න. ඊට පස්සේ අපි යනවා උපකරණ පුවරුව, සංචාලන පැනලයේ තෝරන්න ඊමේල් API -> ඒකාබද්ධ කිරීමේ මාර්ගෝපදේශය, සහ ප්‍රධාන පුවරුවේ - වෙබ් API සහ බොත්තම ඔබන්න තෝරා. සෑම දෙයක්ම පින්තූරයේ මෙන්:

Yandex කාර්යයන් තැපැල් යැවීම

ඊළඟ පියවරේදී අපි තෝරා ගනිමු Node.js:

Yandex කාර්යයන් තැපැල් යැවීම

ඊළඟට අපි අපේ දේ සඳහා ඉදිරිපත් වෙමු API-key නම (යතුරු ලැයිස්තුවේ කොන්සෝලයේ පමණක් දර්ශනය වනු ඇත, සහ අපගේ අනාගත කේතය සමඟ කිසිදු සම්බන්ධයක් නැත; මම දැන් ආවේ නොදිරන දෙයක් demo-api-key) සහ බොත්තම ඔබන්න යතුර සාදන්න:

Yandex කාර්යයන් තැපැල් යැවීම

යතුර උත්පාදනය වනු ඇත, අපි එය පිටපත් කර ගැඹුරුම විශ්වාසය තබා ගන්නෙමු. තවද අපට බොත්තමක් සහිත තිරයක් ඇත ඒකාබද්ධතාවය තහවුරු කරන්න, පහත පින්තූරයේ මෙන්, නමුත් අපි එය තවම ක්ලික් නොකරමු, නමුත් අපි කේතය ලිවීමට යමු:

Yandex කාර්යයන් තැපැල් යැවීම

2. ලිවීමේ කේතය

නමුත් ඔබට පෙනෙන පරිදි කේතයම හාස්‍යජනක ලෙස කුඩායි - පේළි 22 යි!

Yandex කාර්යයන් තැපැල් යැවීම

පෙළට #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 - අපගේ ව්‍යාපෘති නාමාවලියෙන් සියල්ල:

Yandex කාර්යයන් තැපැල් යැවීම

අපි නමින් ශ්‍රිතයක් සාදන්නෙමු... නිවැරදිව - තැපැල්කරු, වම් සංචාලන මෙනුව තුළ අපි ඇතුල් කරන්නෙමු සංස්කාරකය, අවශ්‍ය ක්ෂේත්‍ර පුරවා ටැබ් එකට මාරු කරන්න ZIP සංරක්ෂිතය අපගේ ලේඛනාගාරය බාගන්න mailer.zip:

Yandex කාර්යයන් තැපැල් යැවීම

සහ බාගත කිරීම සඳහා කලින් සඳහන් කළ විකල්පය මෙන්න API යතුර ව්‍යාපෘතියේ ගොනුවක් සෑදීමට වඩා කෙලින්ම මෙහි .env, සහ පැකේජය ස්ථාපනය නොකරන්න dotenv. නමුත් අපි මේ සියල්ල දැනටමත් කර ඇත, එබැවින් මම එය පෙන්වන්නේ තොරතුරු සඳහා පමණි. එනම්, අනුපිටපත් කිරීමට අවශ්ය නැත!

Yandex කාර්යයන් තැපැල් යැවීම

දැන් ඉහළ දකුණු කෙළවරේ ඇති බොත්තම ක්ලික් කරන්න අනුවාදය සාදන්න, සහ තත්පර කිහිපයක් ඉන්න. සෑම දෙයක්ම සූදානම් වූ විට, අපි ස්වයංක්රීයව කොටස වෙත යන්නෙමු දළ විශ්ලේෂණය. එහිදී අපි විකල්පය සක්රිය කරමු පොදු කාර්යයඑවිට ඔබට බාහිර ලෝකයෙන් එය සමඟ අන්තර් ක්‍රියා කළ හැකිය.

Yandex කාර්යයන් තැපැල් යැවීම

සෙල්ලිපිය ඉදිරිපිට නිල් පැහැති සබැඳිය ඔබට පෙනේ ඇමතුම් සබැඳිය? එය ක්ලික් කරන්න. හිස් බ්‍රවුසර කවුළුවක් විවෘත වනු ඇත... නමුත් රැඳී සිටින්න - මට විද්‍යුත් තැපෑලක් ලැබුණි:

Yandex කාර්යයන් තැපැල් යැවීම

දැන් ඔබට කොන්සෝලය වෙත ආපසු යා හැක SendGrid, සහ බොත්තම ඔබන්න ඒකාබද්ධතාවය තහවුරු කරන්න. පද්ධතිය එහි නාලිකා හරහා සෑම දෙයක්ම පරීක්ෂා කරනු ඇත, එහි ප්රතිඵලයක් ලෙස එය මෙවැනි තිරයක් ආපසු ලබා දිය යුතුය:

Yandex කාර්යයන් තැපැල් යැවීම

එපමණයි, යාලුවනේ (සහ ගැහැණු ළමයින්, ඇත්ත වශයෙන්ම) - සියල්ල ඇත්තෙන්ම ඉතා සරල හා අලංකාරයි! තවත් ලිපි තිබේවි. මෙවැනි දෙයක් කියවීමට කැමති අය සිටී නම්, ඔබට අතපසු නොවන පරිදි දායක වන්න.

4. පරිත්යාග

Yandex කාර්යයන් තැපැල් යැවීම

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න