Funzioni Yandex mandanu mail

Funzioni Yandex mandanu mail

Oghje avemu da creà u cusì chjamatu. funzione Yandex (nome ufficiale Funzioni di Yandex Cloud), chì hà colluded cù u serviziu di mailing SendGrid mandarà "sapone" à l'utilizatori di dorme tranquillamente (ghju scherzu - sò chì simu tutti contr'à u puzzicheghju).

Sò ancu un avversariu (ma senza fanatismu) di i servitori tradiziunali, è un sustenidoru di u cusì chjamatu. servitore suluzioni (senza servitore), perchè ùn mi piace micca (è ùn sò micca veramente cumu) amministrà i servitori, è ancu di più, pagà per u tempu quandu ùn sò micca carricati. Un'altra cosa hè e funzioni. Qualchissia li serve senza mè, è pagu solu per e chjama. À u principiu di uttrovi 2019, Yandex hà presentatu u so Funzioni di Yandex Cloud - pare esse u primu in a Federazione Russa servitore. È ciò chì hè particularmente bellu hè chì per e cumpetenze di Alice sò generalmente liberi, cusì sò stati in a mo visione periferica dapoi. Ma cuminciamu digià.

Imaginemu stu scenariu. A vostra applicazione (per esempiu, l'abilità di Alice Ricurdate è scurdate chì, per via, travaglia ancu Funzioni Yandex) invita l'utilizatore à cumprà un pruduttu digitale, per esempiu, opzioni supplementari, è l'utilizatore face un pagamentu. Qualchì tipu di sistema di pagamentu (confusingly similar to Yandex.Money) processa u pagamentu è u manda à l'indirizzu chì furnite (è averemu un ligame per chjamà Funzioni Yandex) HTTP-a dumanda chì cuntene i dettagli di pagamentu, cum'è quantità, nome cumpletu, numeru di telefunu è email di u pagatore. Vulemu processà sta dati in qualchì modu, per esempiu: verificate a quantità, fate entrate appropritate in a basa di dati, mandate à l'utilizatori. SMS и Malice cun cunferma di a ricezione di pagamentu è altre struzzioni. Allora tù stessu microserviziu.

Circa quantu da Funzioni Yandex fà entrate in a basa di dati Cloud Firestore avemu digià vistu in u tutoriale Alice si ricorda di tuttu (è in u futuru, pensu, cunsideremu un esempiu per una altra basa di dati - basa di dati Yandex). Circa cumu mandà à l'utilizatori SMS è integrà a nostra applicazione cù Yandex.Money - avemu da risolve in un futuru vicinu. Avà avemu solu trattà di mandà lettere.

1. Crea un contu in SendGrid

VitaSendGrid hè solu a mo scelta, chì aghju fattu per parechje motivi, u principale hè chì anu un SDK ready-made per Node.js. Pudete sceglie qualsiasi altru serviziu di mailing.

Andemu avanti à a pagina di registrazione di u contu è compie u modulu di iscrizzione quì. Allora andemu à Escrivania, in u pannellu di navigazione selezziunate Email API -> Guida di Integrazione, è nantu à u pannellu principale - API Web è appughjà u buttone Scegli. Tuttu hè cum'è in a stampa:

Funzioni Yandex mandanu mail

In u prossimu passu avemu sceltu Node.js:

Funzioni Yandex mandanu mail

In seguitu venemu per u nostru API-Nome di chjave (sarà affissatu solu in a cunsola in a lista di e chjavi, è ùn hà nunda di fà cù u nostru codice futuru; Aghju ghjustu cun un imperishable demo-api-key) è appughjà u buttone Crea Chjave:

Funzioni Yandex mandanu mail

A chjave serà generata, a copiaremu è a mantene in a più prufonda cunfidenza. È avemu un screnu cù un buttone Verificate l'integrazione, cum'è in a stampa sottu, ma ùn avemu micca cliccà ancu, ma andemu à scrive u codice:

Funzioni Yandex mandanu mail

2. Scrittura codice

Ma u codice stessu, cum'è pudete vede, hè ridiculamente chjucu - 22 linee!

Funzioni Yandex mandanu mail

In fila #8 U mo email hè codificatu (è dunque timidamente oculatu) - per piacè indicà u vostru. In a vita reale, riceveremu tutti i dati (inclusi Sônia) da ughjettu eventu. Per esempiu, se u metudu POST un ughjettu hè mandatu à a nostra funzione Fammi cù campu (proprietà) Sônia, u valore di stu campu pò esse acquistatu cusì:

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

È se l'indirizzu email hè passatu à a funzione cù u metudu GET, per esempiu: https://functions.yandexcloud.net/123abc?[email protected]
valore di paràmetru Sônia pudete piglià cusì:

const email = event.queryStringParameters.email;

Per piglià un ochju à ciò chì esattamente cuntene in un oggettu eventu, pudete creà u più simplice funzione Yandex è torce cù e dumande:

module.exports.handler = async function (event) {
  return {
   'statusCode': 200, 
   'body': JSON.stringify(event)
  };
};

Questu hè discutitu in più detail (ma menu chjaramente) in a documentazione ufficiale ccà.

Allora, crea un repertoriu di prughjettu (per esempiu, mailers), vai à ellu, inizializza u prugettu, installate dipendenze:

mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv

Quì solu u pacchettu hè necessariu @sendgrid/mail. Saccu di plastica email-validator verifica l'indirizzu email per a validità (cumu ùn aghju micca indovinatu subitu ?), ma s'è no simu sicuri di questu (hè digià verificatu per un bellu pezzu senza noi), ùn avemu micca bisognu di stallà (è, di sicuru, ùn avemu micca da verificà in u codice). Saccu di plastica dotenv cuncepitu per leghje i registri da un schedariu .env cum'è variabili di runtime. Ma in Funzioni Yandex Hè pussibule di mette sti variàbili direttamente in l'ambiente di runtime. Cumu? - A mustraraghju quì sottu. Dunque u pacchettu dotenv vi pò dinù ùn stallà lu, è u schedariu .env - ùn creanu micca, è à u stessu tempu u codice hè in u schedariu index.js ùn cambia micca. Ma quì avemu stallatu stu pacchettu, cusì creamu i schedari index.js и .env:

touch index.js
touch .env

In u schedariu index.js scrivite 22 linee di codice mostrate in a screenshot sopra (solu in a linea #8 cambia u vostru email), è in u schedariu .env - (senza virgulette o puntuazione) specificate a coppia - nome di chjave / valore APIchì avemu ricevutu recentemente in a cunsola SendGrid:
SENDGRID_API_KEY=a-vostra-secreta-sendgrid-api-key

È se vulete menu travagliu, clone u repository è installate i pacchetti:

git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i

In u schedariu index.js, in ligna #8 cambià l'email; creà un schedariu in u cartulare radicali .env, è in ellu indicà u nome / valore di a chjave API, cum'è mostra ghjustu sopra.

3. Deploy

Più o menu chjaramente è in dettagliu circa Yandex.Cloud è cumu si mette quì Funzioni Yandex descrittu in u mo articulu Alice in a terra di Bitrix - Mandu l'ignoranti in stu paese, è per tutti l'altri (è quelli chì sò tornati) - po un picculu libru di fumetti (vale à dì una seria di stampi è testu).

Creemu pustale-archiviu (chiamemu, per esempiu, mailer.zip), in quale includemu u repertoriu node_moduli è i schedari .env, index.js - tuttu da u nostru catalogu di prughjettu:

Funzioni Yandex mandanu mail

Creemu una funzione cù u nome ... currettamente - mailers, in u menù di navigazione manca entremu U editore, compie i campi richiesti, è cambia à a tabulazione archiviu ZIP scaricate u nostru archiviu mailer.zip:

Funzioni Yandex mandanu mail

È quì hè l'opzione di scaricamentu prima citata chjave API direttamente quì, invece di creà un schedariu in u prugettu .env, è ùn installate micca u pacchettu dotenv. Ma avemu digià fattu tuttu questu, cusì l'aghju mostratu solu per infurmazione. Questu hè, ùn ci hè bisognu di duplicà!

Funzioni Yandex mandanu mail

Avà in l'angulu superiore destra cliccate u buttone Crea a versione, è aspittà un paru di seconde. Quandu tuttu hè prontu, andemu automaticamente à a rùbbrica riassuntu. Ci hà da attivà l'opzione funzione publicain modu chì pudete interagisce cun ellu da u mondu esternu.

Funzioni Yandex mandanu mail

Vede u ligame blu di fronte à l'inscription Ligame per chjamà? Cliccate lu. Una finestra di navigatore viota si apre... Ma aspetta - aghju ricevutu un email:

Funzioni Yandex mandanu mail

Avà pudete turnà à a cunsola SendGrid, è appughjà u buttone Verificate l'integrazione. U sistema verificarà tuttu per mezu di i so canali, è in u risultatu, deve vultà una schermu cum'è questu:

Funzioni Yandex mandanu mail

Hè cusì, ragazzi (è ragazze, sicuru) - tuttu hè veramente assai simplice è eleganti! Ci sarà più articuli. Sè qualchissia hè interessatu à leghje qualcosa cusì, abbonate per ùn mancate micca.

4. Donazioni

Funzioni Yandex mandanu mail

Source: www.habr.com

Add a comment