Yandex విధులు మెయిల్ పంపుతాయి

Yandex విధులు మెయిల్ పంపుతాయి

ఈ రోజు మనం అని పిలవబడే వాటిని సృష్టిస్తాము. Yandex ఫంక్షన్ (అధికారిక పేరు Yandex క్లౌడ్ విధులు), ఇది మెయిలింగ్ సేవతో కుమ్మక్కైంది SendGrid శాంతియుతంగా నిద్రపోతున్న వినియోగదారులకు “సబ్బు” పంపుతుంది (తమాషాగా - మనమందరం స్పామ్‌కి వ్యతిరేకమని నాకు తెలుసు).

నేను సాంప్రదాయ సర్వర్‌లకు ప్రత్యర్థిని (కానీ మతోన్మాదం లేకుండా) మరియు పిలవబడే వాటికి మద్దతుదారుని. serverless (సర్వర్‌లెస్) సొల్యూషన్‌లు, ఎందుకంటే సర్వర్‌లను నిర్వహించడం నాకు ఇష్టం లేదు (మరియు నిజంగా ఎలా తెలియదు) మరియు ఇంకా ఎక్కువగా - అవి లోడ్ చేయని సమయానికి చెల్లించడం. మరొక విషయం విధులు. నేను లేకుండా ఎవరైనా వారికి సేవలు అందిస్తారు మరియు నేను కాల్‌లకు మాత్రమే చెల్లిస్తాను. అక్టోబర్ 2019 ప్రారంభంలో, Yandex దాని సమర్పించబడింది Yandex క్లౌడ్ విధులు - రష్యన్ ఫెడరేషన్‌లో మొదటిది serverless. మరియు ముఖ్యంగా మంచి విషయం ఏమిటంటే, ఆలిస్ నైపుణ్యాల కోసం వారు సాధారణంగా ఉచితం, కాబట్టి వారు అప్పటి నుండి నా పరిధీయ దృష్టిలో ఉన్నారు. కానీ ఇప్పటికే ప్రారంభిద్దాం.

ఈ దృశ్యాన్ని ఊహించుకుందాం. మీ అప్లికేషన్ (ఉదాహరణకు, ఆలిస్ నైపుణ్యం గుర్తుంచుకో మరియు మర్చిపో ఇది, మార్గం ద్వారా, కూడా పనిచేస్తుంది Yandex విధులు) డిజిటల్ ఉత్పత్తిని కొనుగోలు చేయమని వినియోగదారుని ఆహ్వానిస్తుంది, ఉదాహరణకు, అదనపు ఎంపికలు మరియు వినియోగదారు చెల్లింపును చేస్తారు. ఒక రకమైన చెల్లింపు వ్యవస్థ (గందరగోళంగా పోలి ఉంటుంది Yandex) చెల్లింపును ప్రాసెస్ చేస్తుంది మరియు మీరు అందించిన చిరునామాకు పంపుతుంది (మరియు కాల్ చేయడానికి మాకు లింక్ ఉంటుంది Yandex విధులు) HTTP-మొత్తం, పూర్తి పేరు, ఫోన్ నంబర్ మరియు చెల్లింపుదారు యొక్క ఇమెయిల్ వంటి చెల్లింపు వివరాలను కలిగి ఉన్న అభ్యర్థన. మేము ఈ డేటాను ఏదో ఒక విధంగా ప్రాసెస్ చేయాలనుకుంటున్నాము, ఉదాహరణకు: మొత్తాన్ని తనిఖీ చేయండి, డేటాబేస్‌లో తగిన నమోదులను చేయండి, వినియోగదారులకు పంపండి SMS и ఇ-మెయిల్ చెల్లింపు రసీదు మరియు తదుపరి సూచనల నిర్ధారణతో. కాబట్టి మీరే సూక్ష్మసేవ.

ఎలా నుండి Yandex విధులు డేటాబేస్లో ఎంట్రీలు చేయండి క్లౌడ్ ఫైర్‌స్టోర్ మేము దీనిని ఇప్పటికే ట్యుటోరియల్‌లో చూశాము ఆలిస్ ప్రతిదీ గుర్తుంచుకుంటుంది (మరియు భవిష్యత్తులో, మేము మరొక డేటాబేస్ కోసం ఒక ఉదాహరణను పరిశీలిస్తాము - Yandex డేటాబేస్) వినియోగదారులకు ఎలా పంపాలి అనే దాని గురించి SMS మరియు మా అప్లికేషన్‌ను దీనితో అనుసంధానించండి Yandex.Money - మేము దానిని సమీప భవిష్యత్తులో క్రమబద్ధీకరిస్తాము. ఇప్పుడు లేఖలు పంపడం గురించి మాత్రమే వ్యవహరిస్తాము.

1. SendGridలో ఖాతాను సృష్టించండి

వ్యాఖ్యSendGrid అనేది నా ఎంపిక మాత్రమే, నేను అనేక కారణాల వల్ల దీన్ని తయారు చేసాను, వాటిలో ప్రధానమైనది Node.js కోసం రెడీమేడ్ SDKని కలిగి ఉండటం. మీరు ఏదైనా ఇతర మెయిలింగ్ సేవను ఎంచుకోవచ్చు.

ముందుకు వెళ్దాం ఖాతా నమోదు పేజీకి మరియు అక్కడ రిజిస్ట్రేషన్ ఫారమ్‌ను పూరించండి. అప్పుడు మేము వెళ్తాము డాష్బోర్డ్, నావిగేషన్ ప్యానెల్‌లో ఎంచుకోండి ఇమెయిల్ API -> ఇంటిగ్రేషన్ గైడ్, మరియు ప్రధాన ప్యానెల్లో - వెబ్ API మరియు నజిమేమ్ క్నోప్కు ఎంచుకోండి. ప్రతిదీ చిత్రంలో ఉన్నట్లుగా ఉంది:

Yandex విధులు మెయిల్ పంపుతాయి

తదుపరి దశలో మేము ఎంచుకుంటాము Node.js:

Yandex విధులు మెయిల్ పంపుతాయి

తదుపరి మేము మా కోసం ముందుకు వస్తాయి API-కీ పేరు (కీల జాబితాలోని కన్సోల్‌లో మాత్రమే ప్రదర్శించబడుతుంది మరియు మా భవిష్యత్ కోడ్‌తో ఎటువంటి సంబంధం లేదు; నేను నాశనం చేయలేని దానితో ముందుకు వచ్చాను డెమో-ఎపి-కీ) మరియు బటన్ నొక్కండి కీని సృష్టించండి:

Yandex విధులు మెయిల్ పంపుతాయి

కీ రూపొందించబడుతుంది, మేము దానిని కాపీ చేస్తాము మరియు లోతైన విశ్వాసంతో ఉంచుతాము. మరియు మనకు బటన్‌తో స్క్రీన్ ఉంటుంది ఏకీకరణను ధృవీకరించండి, దిగువ చిత్రంలో ఉన్నట్లుగా, కానీ మేము దానిని ఇంకా క్లిక్ చేయము, కానీ కోడ్ రాయడానికి కొనసాగండి:

Yandex విధులు మెయిల్ పంపుతాయి

2. కోడ్ రాయడం

కానీ కోడ్, మీరు చూడగలిగినట్లుగా, హాస్యాస్పదంగా చిన్నది - 22 పంక్తులు!

Yandex విధులు మెయిల్ పంపుతాయి

లైన్ లో #8 నా ఇమెయిల్ హార్డ్‌కోడ్ చేయబడింది (అందుకే సిగ్గుతో దాచబడింది) - దయచేసి మీది సూచించండి. నిజ జీవితంలో, మేము మొత్తం డేటాను అందుకుంటాము (సహా ఇమెయిల్) వస్తువు నుండి ఈవెంట్. ఉదాహరణకు, పద్ధతి అయితే POST ఒక వస్తువు మన ఫంక్షన్‌కి పంపబడుతుంది యూజర్ ఫీల్డ్‌తో (ఆస్తి) ఇమెయిల్, ఈ ఫీల్డ్ విలువను ఇలా పొందవచ్చు:

const { user } = event;
const email = user.email;

మరియు ఇమెయిల్ చిరునామా పద్ధతిని ఉపయోగించి ఫంక్షన్‌కు పంపబడితే GETఉదాహరణకు: 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=your-very-secret-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), దీనిలో మేము డైరెక్టరీని చేర్చుతాము నోడ్_మాడ్యూల్స్ మరియు ఫైళ్లు .env, index.js - మా ప్రాజెక్ట్ కేటలాగ్ నుండి ప్రతిదీ:

Yandex విధులు మెయిల్ పంపుతాయి

మేము పేరుతో ఒక ఫంక్షన్‌ని సృష్టిస్తాము... సరిగ్గా - మెయిలర్, ఎడమ నావిగేషన్ మెనులో మనం నమోదు చేస్తాము సంపాదకుడు, అవసరమైన ఫీల్డ్‌లను పూరించండి మరియు ట్యాబ్‌కు మారండి జిప్ ఆర్కైవ్ మా ఆర్కైవ్‌ను డౌన్‌లోడ్ చేయండి mailer.zip:

Yandex విధులు మెయిల్ పంపుతాయి

మరియు ఇక్కడ డౌన్‌లోడ్ చేసుకోవడానికి గతంలో పేర్కొన్న ఎంపిక ఉంది API కీ ప్రాజెక్ట్‌లో ఫైల్‌ను సృష్టించడం కంటే నేరుగా ఇక్కడ ఉంది .env, మరియు ప్యాకేజీని ఇన్‌స్టాల్ చేయవద్దు dotenv. కానీ మేము ఇప్పటికే ఇవన్నీ చేసాము, కాబట్టి నేను సమాచారం కోసం దీన్ని చూపుతున్నాను. అంటే, డూప్లికేట్ అవసరం లేదు!

Yandex విధులు మెయిల్ పంపుతాయి

ఇప్పుడు ఎగువ కుడి మూలలో బటన్ క్లిక్ చేయండి సంస్కరణను సృష్టించండి, మరియు కొన్ని సెకన్లు వేచి ఉండండి. ప్రతిదీ సిద్ధంగా ఉన్నప్పుడు, మేము స్వయంచాలకంగా విభాగానికి వెళ్తాము పర్యావలోకనం. అక్కడ మేము ఎంపికను ప్రారంభిస్తాము పబ్లిక్ ఫంక్షన్తద్వారా మీరు బయటి ప్రపంచం నుండి దానితో సంభాషించవచ్చు.

Yandex విధులు మెయిల్ పంపుతాయి

మీరు శాసనానికి ఎదురుగా నీలం రంగు లింక్‌ను చూస్తారు కాల్ లింక్? దాన్ని క్లిక్ చేయండి. ఖాళీ బ్రౌజర్ విండో తెరవబడుతుంది... అయితే వేచి ఉండండి - నాకు ఇమెయిల్ వచ్చింది:

Yandex విధులు మెయిల్ పంపుతాయి

ఇప్పుడు మీరు కన్సోల్‌కి తిరిగి రావచ్చు SendGrid, మరియు బటన్ నొక్కండి ఏకీకరణను ధృవీకరించండి. సిస్టమ్ దాని ఛానెల్‌ల ద్వారా ప్రతిదాన్ని తనిఖీ చేస్తుంది మరియు ఫలితంగా ఇది ఇలాంటి స్క్రీన్‌ను తిరిగి ఇవ్వాలి:

Yandex విధులు మెయిల్ పంపుతాయి

అంతే, అబ్బాయిలు (మరియు అమ్మాయిలు, వాస్తవానికి) - ప్రతిదీ నిజంగా చాలా సులభం మరియు సొగసైనది! మరిన్ని వ్యాసాలు ఉంటాయి. ఎవరైనా ఇలాంటివి చదవడానికి ఆసక్తి కలిగి ఉంటే, సభ్యత్వాన్ని పొందండి, తద్వారా మీరు మిస్ అవ్వకండి.

4. విరాళాలు

Yandex విధులు మెయిల్ పంపుతాయి

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి