Heddiw byddwn yn creu yr hyn a elwir. Swyddogaeth Yandex (enw swyddogol
Rwyf hefyd yn wrthwynebydd (ond heb ffanatigiaeth) o weinyddion traddodiadol, ac yn gefnogwr i'r hyn a elwir. di-weinydd atebion (di-weinydd), oherwydd dydw i ddim yn hoffi (a dwi ddim yn gwybod sut i) weinyddu gweinyddwyr, a hyd yn oed yn fwy felly, talu am yr amser pan nad ydyn nhw'n cael eu llwytho. Peth arall yw swyddogaethau. Mae rhywun yn eu gwasanaethu heb i mi, a dim ond am alwadau rwy'n talu. Ar ddechrau mis Hydref 2019, cyflwynodd Yandex ei Swyddogaethau Cwmwl Yandex - mae'n ymddangos mai dyma'r cyntaf yn Ffederasiwn Rwsia di-weinydd. A’r hyn sy’n arbennig o braf yw eu bod nhw’n rhad ac am ddim yn gyffredinol ar gyfer sgiliau Alice, felly maen nhw wedi bod yn fy ngweledigaeth ymylol ers hynny. Ond gadewch i ni ddechrau yn barod.
Gadewch i ni ddychmygu'r senario hwn. Eich cais (er enghraifft, sgil Alice
Ynglŷn â sut o Swyddogaethau Yandex gwneud cofnodion yn y gronfa ddata Storfa Dân Cwmwl rydym eisoes wedi edrych arno yn y tiwtorial
1. Creu cyfrif yn SendGrid
NodynFy newis yn unig yw SendGrid, a wneuthum am sawl rheswm, a'r prif un oedd bod ganddynt SDK parod ar gyfer Node.js. Gallwch ddewis unrhyw wasanaeth postio arall.
Gadewch i ni symud ymlaen
Yn y cam nesaf rydym yn dewis Node.js:
Nesaf rydym yn dod i fyny gyda ar gyfer ein API-enw'r allwedd (bydd yn cael ei arddangos yn y consol yn y rhestr o allweddi yn unig, ac nid oes ganddo unrhyw beth i'w wneud â'n cod yn y dyfodol; fe wnes i feddwl am anfarwol demo-api-allwedd) a gwasgwch y botwm Creu Allwedd:
Bydd yr allwedd yn cael ei gynhyrchu, byddwn yn ei gopïo a'i gadw'n gwbl gyfrinachol. A bydd gennym sgrin gyda botwm Dilysu Integreiddio, fel yn y llun isod, ond ni fyddwn yn ei glicio eto, ond gadewch i ni symud ymlaen i ysgrifennu'r cod:
2. Côd ysgrifennu
Ond mae'r cod ei hun, fel y gwelwch, yn chwerthinllyd o fach - 22 llinell!
Mewn llinell #8 Mae fy e-bost wedi'i god caled (ac felly wedi'i guddio'n swil) - nodwch eich un chi. Mewn bywyd go iawn, byddwn yn derbyn yr holl ddata (gan gynnwys e-bost) o wrthddrych digwyddiad. Er enghraifft, os yw'r dull SWYDD anfonir gwrthrych i'n swyddogaeth defnyddiwr gyda chae (eiddo) e-bost, gellir cael gwerth y maes hwn fel hyn:
const { user } = event;
const email = user.email;
Ac os yw'r cyfeiriad e-bost yn cael ei drosglwyddo i'r swyddogaeth gan ddefnyddio'r dull GET, er enghraifft: https://functions.yandexcloud.net/123abc?[email protected]
gwerth paramedr e-bost gallwch ei gael fel hyn:
const email = event.queryStringParameters.email;
Edrych ar beth yn union sydd wedi'i gynnwys mewn gwrthrych digwyddiad, gallwch chi greu'r symlaf Swyddogaeth Yandex a'i droelli ag ymholiadau:
module.exports.handler = async function (event) {
return {
'statusCode': 200,
'body': JSON.stringify(event)
};
};
Trafodir hyn yn fanylach (ond yn llai clir) yn y ddogfennaeth swyddogol
Felly, creu cyfeiriadur prosiect (er enghraifft, postwyr), ewch ato, cychwyn y prosiect, gosod dibyniaethau:
mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv
Yma dim ond y pecyn sydd ei angen @sendgrid/mail. Bag plastig e-bost-ddilyswr yn gwirio dilysrwydd y cyfeiriad e-bost (sut na wnes i ddyfalu ar unwaith?), ond os ydym yn sicr ohono (mae eisoes wedi'i wirio ers amser maith hebom ni), nid oes rhaid i ni ei osod (ac, o wrth gwrs, nid oes rhaid i ni ei wirio yn y cod). Bag plastig dotenv wedi'i gynllunio i ddarllen cofnodion o ffeil .env fel newidynnau amser rhedeg. Ond yn Swyddogaethau Yandex Mae'n bosibl gosod y newidynnau hyn yn uniongyrchol i'r amgylchedd amser rhedeg. Sut? - Byddaf yn ei ddangos isod. Felly y pecyn dotenv ni allwch ei osod hefyd, a'r ffeil .env - peidiwch â chreu, ac ar yr un pryd mae'r cod yn y ffeil mynegai.js peidiwch â newid. Ond yma rydym wedi gosod y pecyn hwn, felly rydym yn creu ffeiliau mynegai.js и .env:
touch index.js
touch .env
Mewn ffeil mynegai.js ysgrifennwch 22 llinell o god a ddangosir yn y sgrinlun uchod (dim ond yn y llinell #8 newid eich e-bost), ac yn y ffeil .env - (heb unrhyw ddyfyniadau nac atalnodi) nodwch y pâr - enw/gwerth allweddol APIa gawsom yn ddiweddar yn y consol SendGrid:
SENDGRID_API_KEY=eich-allwedd-gyfrinachol iawn-sendgrid-api
Ac os ydych chi eisiau llai o waith, cloniwch yr ystorfa a gosodwch y pecynnau:
git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i
Mewn ffeil mynegai.js, mewn llinell #8 newid e-bost; creu ffeil yn y cyfeiriadur gwraidd .env, ac ynddo nodwch enw/gwerth yr allwedd API, fel y dangosir ychydig uchod.
3. Deploy
Mwy neu lai yn glir ac yn fanwl am Yandex.Cloud a sut i'w osod yno Swyddogaethau Yandex a ddisgrifir yn fy erthygl
Rydym yn creu zip-archive (gadewch i ni ei alw, er enghraifft, mailer.zip), yn yr hwn yr ydym yn cynnwys y cyfeiriadur nod_modiwlau a ffeiliau .env, mynegai.js - popeth o'n catalog prosiect:
Rydym yn creu ffwythiant gyda'r enw... yn gywir - postwyr, yn y ddewislen llywio chwith rydym yn mynd i mewn Y golygydd, llenwch y meysydd gofynnol, a newidiwch i'r tab Archif ZIP lawrlwythwch ein harchif mailer.zip:
A dyma'r opsiwn a grybwyllwyd yn flaenorol i'w lawrlwytho Allwedd API yn uniongyrchol yma, yn hytrach na chreu ffeil yn y prosiect .env, a pheidiwch â gosod y pecyn dotenv. Ond rydyn ni eisoes wedi gwneud hyn i gyd, felly rydw i'n ei ddangos er gwybodaeth yn unig. Hynny yw, nid oes angen dyblygu!
Nawr yn y gornel dde uchaf cliciwch y botwm Creu Fersiwn, ac aros ychydig eiliadau. Pan fydd popeth yn barod, byddwn yn mynd i'r adran yn awtomatig Adolygu. Yma byddwn yn galluogi'r opsiwn swyddogaeth gyhoeddusfel y gallwch ryngweithio ag ef o'r byd y tu allan.
Rydych chi'n gweld y ddolen las gyferbyn â'r arysgrif Dolen i'r alwad? Cliciwch arno. Bydd ffenestr bori wag yn agor... Ond arhoswch - derbyniais e-bost:
Nawr gallwch chi ddychwelyd i'r consol SendGrid, a gwasgwch y botwm Dilysu Integreiddio. Bydd y system yn gwirio popeth trwy ei sianeli, ac o ganlyniad dylai ddychwelyd sgrin fel hyn:
Dyna ni, bois (a merched, wrth gwrs) - mae popeth yn syml iawn ac yn gain! Bydd mwy o erthyglau. Os oes gan unrhyw un ddiddordeb mewn darllen rhywbeth fel hyn, tanysgrifiwch fel nad ydych chi'n colli allan.
4. Rhoddion
Ffynhonnell: hab.com