En introduksjon til tilgjengelig utløser for å påkalle en lambda -funksjon

En introduksjon til tilgjengelig utløser for å påkalle en lambda -funksjon
AWS Lambda er en fantastisk skybasert tjeneste som revolusjonerte den serverløse verden. Det er faktisk en programvare som en tjeneste (SaaS) som enkelt og raskt kan settes opp og er nyttig for å redusere det samlede budsjettet for skyinfrastrukturen din. Det du må gjøre er bare å designe koden din og kjøre den ved hjelp av lambda -funksjonen.

Nå er poenget her du skal utføre koden din i funksjonen, og svaret på dette er at det er en lang liste over metoder som du kan påkalle eller utløse Lambda -funksjonene dine. Dette inkluderer mange andre AWS -tjenester som kan brukes til å kalle ønsket funksjon når det er nødvendig.

I denne artikkelen skal du se en kort forklaring på tjenestene og teknikkene som kan brukes til å påkalle Lambda -funksjonene dine i Amazon.

Typer påkallinger

Før vi kommer lenger, la oss diskutere følgende to hovedtyper av påkallinger som Lambda -funksjonen kan håndtere.

  • Synkrone påkallinger
  • Asynkrone påkallinger
  1. Synkrone påkallinger
    I synkrone påkallinger må tjenesten som påkaller Lambda vente til resultatene blir returnert til den og deretter fortsette resten av prosessen. Vi kan også si at utgangen fra lambda -funksjonen er påkrevd av selve funksjonen eller tjenesten som påkalte denne lambda.
  2. Asynkrone påkallinger

    Her er det ingen ventetid på at Lambda -funksjonene gir resultatene tilbake til Invoker. Dette brukes hovedsakelig til varsler eller for å utløse noen andre uavhengige hendelser i AWS. Tjenesten som ønsker å påkalle lambda -funksjonen, sender bare avtrekkeren, og at operasjonen står i kø i lambda og vil bli utført på sin tur.

Forskjellige måter å påkalle lambda

Her skal du se mange måter å påkalle Lambda -funksjonene. Å vite dette er veldig nyttig for deg neste gang du designer din enkle, men kostnadseffektive AWS-infrastruktur.

Påkalle Lambda -funksjonene direkte

I de fleste tilfeller er Lambda -funksjonene designet for å utløses ved hjelp av andre tjenester, men du kan påkalle dem direkte ved hjelp av AWS Management Console, AWS CLI og gjennom funksjons -URL.

Påkalle lambda fra ledelseskonsoll

Når du oppretter en hvilken. De Test Knappen er tilgjengelig under kodeseksjonen i lambda -funksjonen.

Du kan lage en tilpasset hendelse i tillegg til å bruke konsollen med ditt tilpassede hendelsesmønster.

På denne måten kan lambda -funksjonen utløses fra AWS -konsollen.

Aws cli

AWS gir deg muligheten til å bruke alle ressursene sine ved å bruke AWS -kommandolinjegrensesnittet. Enhver lambda -funksjon kan også påberopes med denne CLI. Dette kan være veldig effektivt for å teste ting i utviklingsstadiene. Å følge AWS CLI -kommandoen kan brukes som en trigger for å påkalle lambda -funksjonen.

ubuntu@ubuntu: ~ $ aws lambda påkaller \
--funksjonsnavn \
--nyttelast \
--Cli-Binary-format < base64 | raw-in-base64-out >

Funksjonen utløses vellykket, og du kan også observere dette i utgangen.

Funksjons url

Funksjons -URL er faktisk et HTTP -endepunkt som du kan konfigurere for Lambda -funksjonene dine. Denne URLen kan brukes til å utløse Lambda -funksjonene, og du kan også dele denne URL -en med andre brukere selv utenfor AWS -kontoen din for å påkalle Lambda -funksjonene. Selv om du bør være forsiktig med funksjonsadresser, kan alle med denne lenken utløse Lambda -funksjonen din utallige ganger, og alle kostnadene vil være på hodet.

En funksjons -URL kan konfigureres mens du oppretter så vel som etter å ha opprettet Lambda -funksjonen. For dette, bare gå til de avanserte innstillingene i konfigurasjonsdelen og sjekk Aktiver funksjons url eske.

I tilfelle du ikke har lagt ved en funksjons -URL mens du oppretter lambda -funksjonen, kan du gjøre det senere. For dette må du gå til kategorien Konfigurasjon, velg Funksjons -URL -en og klikk på Opprett funksjons url.

På denne måten opprettes funksjons url og brukes til å påkalle lambda -funksjonen.

Påkalle Lambda -funksjoner ved hjelp av AWS -tjenester

Mange AWS -tjenester kan konfigureres som en trigger for å påkalle lambda -funksjonen. Du trenger bare å konfigurere AWS -tjenestene som en trigger for å påkalle lambda -funksjonen. Her går vi gjennom alle disse tjenestene med en forklaring om hvordan du bruker dem som Lambda -utløser.

API Gateway

Dette er en AWS -tjeneste som brukes mye til å opprette og administrere API -ene i applikasjonsmodellen din. APIer gir en veldig fleksibel måte å generere forespørsler eller samtaler fra en programvarepakke til en annen pakke som vi ikke kan eksponere direkte og bare vil holde oss bak kulissene.

For å legge til enhver tjeneste som en trigger i Lambda -funksjonen din, bare gå til lambda -funksjonen og klikk på Legg til trigger.

Deretter kan du velge tjenesten du vil legge ved som en trigger til Lambda -funksjonen din. For denne delen velger vi API Gateway som utløser for Lambda -funksjonen.

Konfigurer deretter tjenesten slik du vil at den skal handle i applikasjonsstrukturen din.

Det er to typer API -er støttet av API -gatewayen, og disse kan brukes til å påkalle en lambda -funksjon.

HTTP API -er: De brukes til å generere HTTP -endepunktene som blir dirigert til Lambda -funksjonene dine. HTTP APIer gir mindre funksjonalitet og er rimeligere å bruke.

Rest APIer: Hvis du vil ha flere funksjoner i API -en din, må du gå for et REST API. Disse APIene kan påkalle lambda -funksjonen og bruke de samme HTTP -metodene, og gi mer fleksibilitet og uavhengighet.

S3 bøtte

Det er mange brukssaker der du vil se at S3 -bøtter fungerer som en utløser for å påkalle lambda -funksjonen. Du kan konfigurere en S3 -bøtte for å utløse Lambda -funksjonen for en spesifikk S3 -hendelse.

For eksempel vil du samle metadataene til en hvilken som helst fil når den lastes opp til bøtta. For dette utvikler du en kode og distribuerer den på lambda -funksjonen. For Lambda -utløseren, velg S3 -bøtta. For arrangementstypen, velg Sett objekt. Slik at når en ny fil legges til i bøtta, utløses lambda -funksjonen og metadataene til objektet blir samlet og lagret på destinasjonsstedet når du spesifiserer.

Det kan være mange andre scenarier der S3 kan brukes som en trigger for å påkalle lambda -funksjonen.

Last balanser

Anta at applikasjonen din er designet for å kjøre på Lambda-funksjoner, da Lambda-funksjonen er den mest kostnadseffektive løsningen for en enkel skybasert applikasjon. For å eksponere søknaden din for sluttbrukerne, kan det være lurt å knytte en belastningsbalanse foran den. For denne delen velger du lastbalansen som fungerer som utløser for å påkalle lambda -funksjonen. Husk at du bare kan sette opp applikasjonsbelastningsbalansen for denne oppgaven, da andre belastningsbalanser ikke støttes av Lambda -funksjoner.

For å legge til applikasjonsbelastningsbalansen til lambda -funksjonen, må du først opprette en målgruppe og lambda -funksjonen legges til den målgruppen. Nå kan den nyopprettede målgruppen legges til lytterne av applikasjonsbelastningsbalansen.

Cloudfront

Amazon CloudFront er faktisk et CDN (Content Delivery Network) og brukes til å cache applikasjonsdataene på kantsteder som er mye nærmere sluttbrukere sammenlignet med de faktiske applikasjonsserverne. Ved hjelp av CloudFront kan du virkelig forbedre responstiden for å betjene det statiske innholdet til sluttbrukere over hele kloden.

Lambda -funksjonene kan utløses ved hjelp av CloudFront -tjenesten. For dette må du distribuere Lambda -funksjonen din på kantsteder over hele kloden kjent som lambda@edge.

Du kan stille CloudFront som utløser for å sende forespørslene til lambda@Egde gjennom CloudFront for å forbedre responstiden. Siden lambda@Edge er distribuert på alle kantstedene over hele kloden, møter sluttbrukerne minimum responstid ved å få tilgang til Lambda utplassert nærmeste kantsted.

For å konfigurere dette, bare gå til Legg til trigger og velg CloudFront -tjenesten. Der vil du se distribuere til lambda@edge alternativ.

Nå trenger du bare å fullføre konfigurasjonstrinnene og få det i gang.

Cloudwatch logger

Hver gang du tenker på å overvåke i AWS Cloud, er det første som kommer til tankene CloudWatch, da dette er en veldig enorm overvåkningstjeneste som kan konfigureres for forskjellige tjenester på en veldig nyttig måte.

CloudWatch -logger, som navnet definerer, er en loggingstjeneste som kan brukes til å lagre alle slags logger. Du kan opprette forskjellige logggrupper for forskjellige tjenester for å holde loggene adskilt. Disse loggene kan brukes til å utløse din lambda -funksjon basert på hendelsene de mottar, uavhengig av tjenesten eller prosedyren som produserer disse hendelsene.

Du kan enten konfigurere utløseren fra Lambda -funksjonskonsollen eller direkte fra CloudWatch -logger. For å gjøre dette fra CloudWatch -konsollen, gå til CloudWatch -tjenesten og åpne logggruppene. Her må du opprette et Lambda -abonnementsfilter.

Velg deretter Lambda -funksjonen du vil ha, og du er god til å gå.

Nå, når CloudWatch får den loggstrømmen, fungerer den som en utløser for å påkalle lambda -funksjonen.

Eventbridge

Amazon Eventbridge (tidligere kjent som CloudWatch Events) er en AWS -tjeneste som lar deg lage hendelsesreglene for å utløse en spesifikk AWS -tjeneste på en spesifikk hendelse som skjer i en AWS -konto.

Det er et bredt utvalg av regler som du kan angi AWS-tjenester (som EC2 Instance Creation eller RDS Database Events) samt tredjepartstjenester (for eksempel GitHub Push Event). Disse reglene kan knyttes nærmere til andre tjenester som Lambda -funksjoner på en slik måte at når denne regelen er oppfylt, påkaller den Lambda -funksjonen.

Hvis du allerede har en EventBridge -regel, kan du enkelt legge til denne regelen som en utløser til Lambda -funksjonen din. Velg Eventbridge som utløser og oppgi navnet på regelen.

En eksisterende regel er lagt til her som en trigger, men du kan også opprette en regel på dette tidspunktet.

Dynamodb

Du har kanskje visst at DynamoDB bare er en NoSQL -database, og den fremstår som en helt egen tjeneste i AWS. Dette er en fullstendig konfigurert serverløs database, og du kan bare begynne å lage tabeller i den. Disse dynamoDB -tabellene kan konfigureres til å fungere som utløsere for å påkalle lambda -funksjonene.

Dataene fra DynamoDB kan lastes til Lambda som inngang i form av partier, og den blir behandlet ved hjelp av koden som er distribuert i Lambda.

Kinesis

Hvis du vil samle inn og analysere sanntidsdata med høy hastighet, kan du dra nytte av AWS Kinesis. Anta at du vil behandle dataene som er samlet inn av Kinesis -datastrømmene ved å bruke Lambda -funksjonene. Du trenger ganske enkelt å utløse Lambda -funksjonen din hver gang dataene blir registrert av kinesis.

Du er nettopp ferdig med å konfigurere din kinesis datastrøm for å påkalle lambda -funksjonen.

Sns

Det er ganske enkelt en varslingstjeneste som ofte brukes til å sende varsler fra den ene AWS -tjenesten til den andre fordi det noen ganger ikke er noen måte å konfigurere varslene direkte fra den ene tjenesten til den andre. Lambda -funksjonene kan utløses ved hjelp av denne tjenesten.

Lag et SNS -emne først, og bruk det deretter til å påkalle Lambda -funksjonen.

Du må velge navnet på SNS -emnet ditt. Det er ingen andre konfigurasjoner eller innstillinger.

Konklusjon

Amazon Lambda er virkelig et gjennombrudd innen skyarkitektur. Søknadsutvikling og distribusjon har aldri vært så lett og grei før den. Den lar deg ganske enkelt opprette koden din i ethvert felles rammeverk og laste opp koden din til Lambda, og den blir utført. Det er en lang liste over andre tjenester som kan kobles med AWS Lambda og fungere som en trigger for å påkalle Lambda -funksjonen din bare når det er påkrevd. Det er ingen kontinuerlige kjørekostnader for serveren, men du vil bli belastet avhengig av antall triggere og tid for utførelse av kode.