Een inleiding tot beschikbare triggers om een ​​lambdafunctie op te roepen

Een Inleiding Tot Beschikbare Triggers Om Een Lambdafunctie Op Te Roepen



AWS Lambda is een geweldige cloudgebaseerde service die een revolutie teweegbracht in de serverloze wereld. Het is eigenlijk een software as a service (SaaS) die eenvoudig en snel kan worden ingesteld en nuttig is om het totale budget van uw cloudinfrastructuur te verlagen. Wat u hoeft te doen, is gewoon uw code ontwerpen en deze uitvoeren met behulp van de lambda-functie.

Het punt hier is hoe je je code in de functie moet uitvoeren en het antwoord hierop is dat er een lange lijst met methoden is waarmee je je lambda-functies kunt aanroepen of activeren. Dit omvat vele andere AWS-services die kunnen worden gebruikt om de gewenste functie op te roepen wanneer dat nodig is.

In dit artikel krijg je een korte uitleg over de diensten en technieken die kunnen worden toegepast om je lambda-functies in Amazon aan te roepen.







Soorten aanroepingen

Laten we, voordat we verder gaan, de volgende twee hoofdtypen aanroepen bespreken die de lambda-functie aankan.



  • Synchrone aanroepingen
  • Asynchrone aanroepen
  1. Synchrone aanroepingen
    Bij synchrone aanroepen moet de service die de lambda aanroept wachten tot de resultaten zijn teruggestuurd en vervolgens doorgaan met de rest van het proces. We kunnen ook zeggen dat de uitvoer van de lambda-functie wordt vereist door de functie of service zelf die deze lambda heeft aangeroepen.
  2. Asynchrone aanroepen

    Hier is er geen wachttijd voor de lambda-functies om de resultaten terug te geven aan de aanroeper. Dit wordt voornamelijk gebruikt voor meldingen of om andere onafhankelijke gebeurtenissen in AWS te activeren. De service die de lambda-functie wil aanroepen, stuurt gewoon de trigger en die bewerking wordt in de wachtrij geplaatst in de lambda en wordt op zijn beurt uitgevoerd.



Verschillende manieren om Lambda op te roepen

Hier zul je talloze manieren zien om de lambda-functies aan te roepen. Dit wetende is zeer nuttig voor u de volgende keer dat u uw eenvoudige maar kostenefficiënte AWS-infrastructuur ontwerpt.





Rechtstreeks de Lambda-functies oproepen

In de meeste gevallen zijn de lambda-functies ontworpen om te worden geactiveerd met andere services, maar u kunt ze rechtstreeks aanroepen via de AWS-beheerconsole, AWS CLI en via de functie-URL.

Lambda aanroepen vanuit Management Console

Wanneer u een lambda-functie in uw AWS-console maakt, kunt u deze eenvoudig activeren met behulp van de testrun-optie in de console. De Testen knop is beschikbaar onder de codesectie van de lambda-functie.



U kunt een aangepaste gebeurtenis maken en de console gebruiken met uw aangepaste gebeurtenispatroon.

Op deze manier kan de lambda-functie worden geactiveerd vanaf de AWS-console.

AWS CLI

AWS geeft u de mogelijkheid om al zijn bronnen te gebruiken met behulp van de AWS-opdrachtregelinterface. Met deze CLI kan ook elke lambda-functie worden aangeroepen. Dit kan heel effectief zijn om dingen te testen tijdens de ontwikkelingsfasen. Het volgen van het AWS CLI-commando kan worden gebruikt als een trigger om de lambda-functie op te roepen.

[e-mail beveiligd] :~$ aws lambda aanroepen \
--functie-naam < Voer de naam van de Lambda-functie in > \
--lading < Invoerwaarde voor Lambda-functie > \
--cli-binair-formaat < base64 | raw-in-base64-out > < Uitvoerbestandsnaam >

De functie is succesvol geactiveerd en u kunt dit ook aan de uitgang zien.

Functie-URL

Functie-URL is eigenlijk een HTTP-eindpunt dat u kunt configureren voor uw lambda-functies. Deze URL kan worden gebruikt om de lambda-functies te activeren en u kunt deze URL ook delen met andere gebruikers, zelfs buiten uw AWS-account, om de lambda-functies aan te roepen. Hoewel je voorzichtig moet zijn met functie-URL's, kan iedereen met deze link je lambda-functie ontelbare keren activeren en alle kosten komen op je hoofd.

Een functie-URL kan zowel tijdens het maken als na het maken van de lambda-functie worden geconfigureerd. Ga hiervoor gewoon naar de geavanceerde instellingen in het configuratiegedeelte en controleer de Functie-URL inschakelen doos.

Als u geen functie-URL hebt bijgevoegd tijdens het maken van de lambda-functie, kunt u dit later doen. Hiervoor moet u naar het configuratietabblad gaan, de functie-URL selecteren en op . klikken Functie-URL maken .

Op deze manier wordt de functie-URL gemaakt en gebruikt om de lambda-functie aan te roepen.

Lambda-functies aanroepen met AWS-services

Veel AWS-services kunnen worden geconfigureerd als een trigger om de lambda-functie aan te roepen. U hoeft alleen de AWS-services als een trigger te configureren om de lambda-functie aan te roepen. Hier nemen we al deze services door met een uitleg over hoe je ze kunt gebruiken als je lambda-triggers.

API-gateway

Dit is een AWS-service die veel wordt gebruikt om de API's in uw applicatiemodel te maken en te beheren. API's bieden een zeer flexibele manier om verzoeken of oproepen van het ene softwarepakket naar het andere pakket te genereren die we niet direct kunnen onthullen en die we gewoon achter de schermen willen houden.

Om een ​​service als trigger aan uw lambda-functie toe te voegen, gaat u gewoon naar de lambda-functie en klikt u op trigger toevoegen.

Vervolgens kunt u de dienst selecteren die u als trigger aan uw lambda-functie wilt koppelen. Voor deze sectie selecteren we de API-gateway als trigger voor de lambda-functie.

Configureer vervolgens de service zoals u wilt dat deze werkt in uw applicatiestructuur.

Er zijn twee typen API's die door de API-gateway worden ondersteund en deze kunnen worden gebruikt om een ​​lambda-functie aan te roepen.

HTTP API's : Ze worden gebruikt om de HTTP-eindpunten te genereren die naar uw lambda-functies worden gerouteerd. HTTP-API's bieden minder functionaliteit en zijn minder duur in gebruik.

REST API's : Wil je meer features in je API, dan moet je voor een REST API gaan. Deze API's kunnen de lambda-functie aanroepen en dezelfde HTTP-methoden gebruiken, wat zorgt voor meer flexibiliteit en onafhankelijkheid.

S3-emmer

Er zijn veel gevallen waarin u zult zien dat S3-buckets fungeren als een trigger om de lambda-functie aan te roepen. U kunt een S3-bucket configureren om de lambda-functie te activeren voor een specifieke S3-gebeurtenis.

U wilt bijvoorbeeld de metadata van elk bestand verzamelen wanneer het naar uw bucket wordt geüpload. Hiervoor ontwikkel je een code en implementeer je deze op de lambda-functie. Selecteer voor de Lambda-trigger de S3-bucket. Selecteer voor het type evenement object plaatsen . Zodat, wanneer een nieuw bestand aan de bucket wordt toegevoegd, de lambda-functie wordt geactiveerd en de metadata van het object wordt verzameld en opgeslagen op de bestemmingslocatie wanneer u dit opgeeft.

Er kunnen veel andere scenario's zijn waarbij S3 kan worden gebruikt als een trigger om de lambda-functie aan te roepen.

Load Balancer

Stel dat uw toepassing is ontworpen om op lambda-functies te draaien, aangezien de lambda-functie de meest kosteneffectieve oplossing is voor een eenvoudige cloudgebaseerde toepassing. Om uw toepassing aan de eindgebruikers bloot te stellen, wilt u er misschien een load balancer voor plaatsen. Selecteer voor deze sectie de load balancer die fungeert als trigger om de lambda-functie aan te roepen. Onthoud dat u alleen de load balancer van de toepassing voor deze taak kunt instellen, aangezien andere load balancers niet worden ondersteund door lambda-functies.

Om de applicatie load balancer toe te voegen aan de lambda-functie, moet je eerst een doelgroep aanmaken en de lambda-functie wordt aan die doelgroep toegevoegd. Nu kan de nieuw aangemaakte doelgroep worden toegevoegd aan de listeners van de applicatie load balancer.

CloudFront

Amazon CloudFront is eigenlijk een CDN (Content Delivery Network) en wordt gebruikt om de applicatiegegevens in de cache op te slaan op edge-locaties die veel dichter bij de eindgebruikers zijn in vergelijking met de eigenlijke applicatieservers. Met CloudFront kunt u de responstijd echt verbeteren om de statische inhoud aan eindgebruikers over de hele wereld te leveren.

De lambda-functies kunnen worden geactiveerd met behulp van de CloudFront-service. Hiervoor moet u uw lambda-functie inzetten op edge-locaties over de hele wereld die bekend staan ​​als: [e-mail beveiligd]

U kunt de CloudFront instellen als trigger om de verzoeken naar de [e-mail beveiligd] via CloudFront om de responstijd te verbeteren. als de [e-mail beveiligd] wordt ingezet op alle edge-locaties over de hele wereld, hebben de eindgebruikers te maken met minimale responstijd door toegang te krijgen tot de lambda-locatie die het dichtst bij de edge is geïmplementeerd.

Om dit te configureren, gaat u gewoon naar trigger toevoegen en kies de CloudFront-service. Daar zie je de inzetten om [e-mail beveiligd] keuze.

Nu hoeft u alleen nog maar de configuratiestappen te voltooien en aan de slag te gaan.

CloudWatch-logboeken

Telkens wanneer u denkt aan monitoring in de AWS-cloud, is CLoudWatch het eerste dat in u opkomt, omdat dit een zeer uitgebreide monitoringservice is die op een zeer nuttige manier voor verschillende services kan worden geconfigureerd.

CloudWatch-logboeken, zoals de naam al aangeeft, is een logboekservice die kan worden gebruikt om allerlei soorten logboeken op te slaan. U kunt verschillende logboekgroepen maken voor verschillende services om de logboeken gescheiden te houden. Deze logboeken kunnen worden gebruikt om uw lambda-functie te activeren op basis van de gebeurtenissen die ze ontvangen, ongeacht de service of procedure die deze gebeurtenissen produceert.

U kunt de trigger configureren vanaf de lambda-functieconsole of rechtstreeks vanuit de CloudWatch-logboeken. Om dit vanuit de CloudWatch-console te doen, gaat u gewoon naar de CloudWatch-service en opent u de loggroepen. Hier moet u een lambda-abonnementsfilter maken.

Kies vervolgens de lambda-functie die je wilt en je bent klaar om te gaan.

Nu, wanneer CloudWatch die logstream ontvangt, fungeert het als een trigger om de lambda-functie aan te roepen.

EventBridge

Amazon EventBridge (voorheen bekend als CloudWatch Events) is een AWS-service waarmee u gebeurtenisregels kunt maken om een ​​specifieke AWS-service te activeren voor een specifieke gebeurtenis die plaatsvindt in een AWS-account.

Er is een grote verscheidenheid aan regels die u kunt instellen voor AWS-services (zoals het maken van EC2-instanties of RDS-databasegebeurtenissen) en voor services van derden (zoals GitHub-pushgebeurtenissen). Deze regels kunnen verder worden gekoppeld aan andere services zoals lambda-functies op een zodanige manier dat wanneer aan deze regel wordt voldaan, deze de lambda-functie aanroept.

Als je al een EventBridge-regel hebt ingesteld, kun je deze regel eenvoudig als trigger toevoegen aan je lambda-functie. Selecteer de EventBridge als uw trigger en geef eenvoudig de naam van de regel op.

Een bestaande regel wordt hier als trigger toegevoegd, maar u kunt op dit punt ook een regel maken.

DynamoDB

U wist misschien dat DynamoDB slechts een NoSQL-database is en dat het verschijnt als een volledig afzonderlijke service in AWS. Dit is een volledig geconfigureerde serverloze database en u kunt er gewoon direct tabellen in maken. Deze DynamoDB-tabellen kunnen worden geconfigureerd om te fungeren als triggers om de lambda-functies aan te roepen.

De gegevens uit de DynamoDB kunnen als invoer in de vorm van batches in lambda worden geladen en worden verwerkt met behulp van de code die in lambda wordt ingezet.

Kinesis

Als u de realtime gegevens in een hoog tempo wilt verzamelen en analyseren, kunt u profiteren van AWS Kinesis. Stel dat u de door de Kinesis-gegevensstromen verzamelde gegevens wilt verwerken met behulp van de lambda-functies. U hoeft alleen maar uw lambda-functie te activeren telkens wanneer de gegevens door de Kinesis worden geregistreerd.

U bent zojuist klaar met het configureren van uw Kinesis-gegevensstroom om de lambda-functie op te roepen.

SNS

Het is gewoon een meldingsservice die vaak wordt gebruikt om meldingen van de ene AWS-service naar de andere te sturen, omdat er soms geen manier is om de meldingen rechtstreeks van de ene service naar de andere te configureren. Met deze service kunnen de lambda-functies worden geactiveerd.

Maak eerst een SNS-onderwerp en gebruik het vervolgens om uw lambda-functie aan te roepen.

U moet de naam van uw SNS-onderwerp selecteren. Er zijn geen andere configuraties of instellingen.

Conclusie

Amazon Lambda is echt een doorbraak in cloudarchitectuur. Applicatie-ontwikkeling en -implementatie waren nog nooit zo eenvoudig en ongecompliceerd. Hiermee kunt u eenvoudig uw code in elk gemeenschappelijk raamwerk maken en uw code uploaden naar lambda en deze wordt uitgevoerd. Er is een lange lijst met andere services die kunnen worden gekoppeld aan AWS lambda en die kunnen fungeren als een trigger om uw lambda-functie alleen op te roepen wanneer dit nodig is. Er zijn geen continue bedrijfskosten van de server, maar er worden kosten in rekening gebracht afhankelijk van het aantal triggers en het tijdstip waarop de code wordt uitgevoerd.