ఈ రోజు మనం అని పిలవబడే వాటిని సృష్టిస్తాము. Yandex ఫంక్షన్ (అధికారిక పేరు
నేను సాంప్రదాయ సర్వర్లకు ప్రత్యర్థిని (కానీ మతోన్మాదం లేకుండా) మరియు పిలవబడే వాటికి మద్దతుదారుని. serverless (సర్వర్లెస్) సొల్యూషన్లు, ఎందుకంటే సర్వర్లను నిర్వహించడం నాకు ఇష్టం లేదు (మరియు నిజంగా ఎలా తెలియదు) మరియు ఇంకా ఎక్కువగా - అవి లోడ్ చేయని సమయానికి చెల్లించడం. మరొక విషయం విధులు. నేను లేకుండా ఎవరైనా వారికి సేవలు అందిస్తారు మరియు నేను కాల్లకు మాత్రమే చెల్లిస్తాను. అక్టోబర్ 2019 ప్రారంభంలో, Yandex దాని సమర్పించబడింది Yandex క్లౌడ్ విధులు - రష్యన్ ఫెడరేషన్లో మొదటిది serverless. మరియు ముఖ్యంగా మంచి విషయం ఏమిటంటే, ఆలిస్ నైపుణ్యాల కోసం వారు సాధారణంగా ఉచితం, కాబట్టి వారు అప్పటి నుండి నా పరిధీయ దృష్టిలో ఉన్నారు. కానీ ఇప్పటికే ప్రారంభిద్దాం.
ఈ దృశ్యాన్ని ఊహించుకుందాం. మీ అప్లికేషన్ (ఉదాహరణకు, ఆలిస్ నైపుణ్యం
ఎలా నుండి Yandex విధులు డేటాబేస్లో ఎంట్రీలు చేయండి క్లౌడ్ ఫైర్స్టోర్ మేము దీనిని ఇప్పటికే ట్యుటోరియల్లో చూశాము
1. SendGridలో ఖాతాను సృష్టించండి
వ్యాఖ్యSendGrid అనేది నా ఎంపిక మాత్రమే, నేను అనేక కారణాల వల్ల దీన్ని తయారు చేసాను, వాటిలో ప్రధానమైనది Node.js కోసం రెడీమేడ్ SDKని కలిగి ఉండటం. మీరు ఏదైనా ఇతర మెయిలింగ్ సేవను ఎంచుకోవచ్చు.
ముందుకు వెళ్దాం
తదుపరి దశలో మేము ఎంచుకుంటాము Node.js:
తదుపరి మేము మా కోసం ముందుకు వస్తాయి API-కీ పేరు (కీల జాబితాలోని కన్సోల్లో మాత్రమే ప్రదర్శించబడుతుంది మరియు మా భవిష్యత్ కోడ్తో ఎటువంటి సంబంధం లేదు; నేను నాశనం చేయలేని దానితో ముందుకు వచ్చాను డెమో-ఎపి-కీ) మరియు బటన్ నొక్కండి కీని సృష్టించండి:
కీ రూపొందించబడుతుంది, మేము దానిని కాపీ చేస్తాము మరియు లోతైన విశ్వాసంతో ఉంచుతాము. మరియు మనకు బటన్తో స్క్రీన్ ఉంటుంది ఏకీకరణను ధృవీకరించండి, దిగువ చిత్రంలో ఉన్నట్లుగా, కానీ మేము దానిని ఇంకా క్లిక్ చేయము, కానీ కోడ్ రాయడానికి కొనసాగండి:
2. కోడ్ రాయడం
కానీ కోడ్, మీరు చూడగలిగినట్లుగా, హాస్యాస్పదంగా చిన్నది - 22 పంక్తులు!
లైన్ లో #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 - మా ప్రాజెక్ట్ కేటలాగ్ నుండి ప్రతిదీ:
మేము పేరుతో ఒక ఫంక్షన్ని సృష్టిస్తాము... సరిగ్గా - మెయిలర్, ఎడమ నావిగేషన్ మెనులో మనం నమోదు చేస్తాము సంపాదకుడు, అవసరమైన ఫీల్డ్లను పూరించండి మరియు ట్యాబ్కు మారండి జిప్ ఆర్కైవ్ మా ఆర్కైవ్ను డౌన్లోడ్ చేయండి mailer.zip:
మరియు ఇక్కడ డౌన్లోడ్ చేసుకోవడానికి గతంలో పేర్కొన్న ఎంపిక ఉంది API కీ ప్రాజెక్ట్లో ఫైల్ను సృష్టించడం కంటే నేరుగా ఇక్కడ ఉంది .env, మరియు ప్యాకేజీని ఇన్స్టాల్ చేయవద్దు dotenv. కానీ మేము ఇప్పటికే ఇవన్నీ చేసాము, కాబట్టి నేను సమాచారం కోసం దీన్ని చూపుతున్నాను. అంటే, డూప్లికేట్ అవసరం లేదు!
ఇప్పుడు ఎగువ కుడి మూలలో బటన్ క్లిక్ చేయండి సంస్కరణను సృష్టించండి, మరియు కొన్ని సెకన్లు వేచి ఉండండి. ప్రతిదీ సిద్ధంగా ఉన్నప్పుడు, మేము స్వయంచాలకంగా విభాగానికి వెళ్తాము పర్యావలోకనం. అక్కడ మేము ఎంపికను ప్రారంభిస్తాము పబ్లిక్ ఫంక్షన్తద్వారా మీరు బయటి ప్రపంచం నుండి దానితో సంభాషించవచ్చు.
మీరు శాసనానికి ఎదురుగా నీలం రంగు లింక్ను చూస్తారు కాల్ లింక్? దాన్ని క్లిక్ చేయండి. ఖాళీ బ్రౌజర్ విండో తెరవబడుతుంది... అయితే వేచి ఉండండి - నాకు ఇమెయిల్ వచ్చింది:
ఇప్పుడు మీరు కన్సోల్కి తిరిగి రావచ్చు SendGrid, మరియు బటన్ నొక్కండి ఏకీకరణను ధృవీకరించండి. సిస్టమ్ దాని ఛానెల్ల ద్వారా ప్రతిదాన్ని తనిఖీ చేస్తుంది మరియు ఫలితంగా ఇది ఇలాంటి స్క్రీన్ను తిరిగి ఇవ్వాలి:
అంతే, అబ్బాయిలు (మరియు అమ్మాయిలు, వాస్తవానికి) - ప్రతిదీ నిజంగా చాలా సులభం మరియు సొగసైనది! మరిన్ని వ్యాసాలు ఉంటాయి. ఎవరైనా ఇలాంటివి చదవడానికి ఆసక్తి కలిగి ఉంటే, సభ్యత్వాన్ని పొందండి, తద్వారా మీరు మిస్ అవ్వకండి.
4. విరాళాలు
మూలం: www.habr.com