Wat Zijn De Lambda-Functies, En Hoe Gebruik Je Ze?

0
254

AWS Lambda-functies zijn een manier om code uit te voeren zonder provisioning of het beheer van uw eigen servers. In plaats van een always-online toepassing zijn, lopen ze een enkele functie in de cloud, die kan worden geactiveerd in reactie op API of andere evenementen in uw AWS account.

Hoe Gebruik Je Lambda-Functies?

Lambda is een compute, duidelijk en eenvoudig zijn, en het is waarschijnlijk de simpelste van allemaal. Eerder dan het huren van een server met een bepaald aantal kernen en de hoeveelheid RAM die je upload gewoon de code, en het uitvoeren van de functie. Meestal hoeft u niet deze handmatig starten; in plaats daarvan, zult u het te voeren op basis van acties van andere AWS diensten. Bijvoorbeeld, het uitvoeren van een functie om afbeeldingen te herschalen, wanneer een nieuw bestand wordt geplaatst in de S3 (een methode die wordt gebruikt door de Seattle Times te groot effect), of het opvragen van een database wanneer een verzoek wordt verzonden naar de API Gateway.

Bronnen van de Computer worden automatisch wordt gegeven aan het uitvoeren van de functie, en het zal zo veel geheugen nodig heeft voor zo lang als de taak blijft. Je bent gewoon gefactureerd op basis van het aantal functie-aanroepen en de hoeveelheid geheugen die elke aanroep gebruikt.

Dit maakt Lambda-zeer flexibel voor gebruik als back-end. Traditionele toepassingen zijn meestal monolithische; u hebt een server (of een vloot van hen) het uitvoeren van uw aanvraag. U kan afzonderlijke servers voor web hosting, databases, en andere dingen, maar veel toepassingen zijn gebouwd op deze manier—een grote uitvoerbaar, veel bewegende delen.

Met alles zo met elkaar verbonden, en zonder strikte volgorde, dit kan krijgen rommelig echt snel. Het is ook moeilijker om de schaal effectief; als u vindt dat een deel van uw aanvraag is het knelpunt, het is misschien moeilijk te elimineren zonder het schalen van de volledige applicatie en het sterk verhogen van uw AWS wetsvoorstel in het proces.

In plaats daarvan, kunt u zich snijdt het knelpunt volledig en naar Lambda. Immers, Lambda niet schelen als u uw functie de tien keer een maand of tien miljoen keer per maand.

Dit kunt Lambda om zeer efficiënt, en, wanneer goed toegepast, kan het bespaart u een hoop geld. Adam Pash van Postlight was in staat om het vallen van de maandelijkse AWS factuur van meer dan $10.000 tot $370, gewoon door over te schakelen naar Lambda en het optimaliseren van het geheugen gebruik.

Terwijl het niet gaat om een drastische of eenvoudig voor iedere toepassing, Lambda heeft een aantal grote voordelen die het een cruciaal onderdeel van AWS line-up van het berekenen van diensten.

Voor niet-bedrijfskritische applicaties, het geeft ook een zeer goedkope manier om het uitvoeren van een toepassing die u moet maken API-verzoeken. Bijvoorbeeld, je zou kunnen dienen voor een statische web app zonder servers op alle, door op te slaan uw website in de S3, waar het door CloudFront, en verbinding maken met een Lambda-backend via de API Gateway, die communiceert met een DynamoDB tabel.

Hoeveel Ze Kosten?

Zoals de meeste van AWS, Lambda-de prijsstelling is zeer veel “pay-as-you-go” – model. In plaats van het betalen van een prijs voor de hele server, u betaalt alleen voor het exacte bedrag van de middelen die uw toepassing wordt gebruikt—je bent nooit te betalen voor niet-actieve tijd, niet zelfs een tweede van. Dit maakt natuurlijk Lambda heel efficiënt, op de top van de mogelijkheid om knelpunten weg te werken in monolithische applicaties.

Lambda-lasten zijn als volgt, voor ons-oosten-1:

  • $0,20 per 1M aanvragen
  • $0.000016667 voor elke GB-tweede

De eerste lading het meest logisch; als je 100 miljoen bezoeken in een maand, je betaalt een $20 kosten voor.

De tweede lading is veel meer verwarrend. In principe betaalt u op basis van het gebruik van het geheugen van uw functies, want dat is meestal de beperkende factor voor AWS. Als uw functie opstart, wijst 1024 MB RAM, en wordt uitgevoerd voor een enkele seconde, betaalt u $0.000001667 voor. Dat is een vrij laag aantal, maar aan de overkant van 1M verzoeken, het is $1.667.

Natuurlijk, zult u willen kiezen voor een runtime dat het geheugen efficiënt. NodeJS wordt vaak gebruikt, want het is vrij licht ten opzichte van runtimes zoals Java. Echter, Java sneller kan worden voor taken die langer duren om te voltooien, en omdat u niet betaalt voor de tijd besteed initialiseren van de runtime (d.w.z. een “koude start”), het is niet altijd zo slecht als het lijkt op papier.

Het is allemaal een afweging spel, maar je wilt om te kijken naar het minimaliseren van twee dingen—het gebruik van het geheugen en de tijd besteed aan het uitvoeren van de functie. Er is geen expliciete vergoeding voor meer functies, maar u betaalt per seconde, per GB, 256 MB functie die wordt uitgevoerd voor twee seconden kost ongeveer hetzelfde als een 512 MB functie die wordt uitgevoerd voor één.

Aan De Slag

Meld u aan bij uw AWS account en ga dan naar de Lambda-Management Console.

Er zijn twee primaire tabbladen hier. De eerste is voor Toepassingen; Lambda-toepassingen beheren van meerdere functies, en in het bijzonder worden automatisch geïmplementeerd met behulp van een SAM-sjabloon. Dit stelt hen in staat om te worden bijgehouden op Git versie en beheerd, en dat helpt enorm bij het werken met honderden functies.

Het tweede tabblad is voor de verschillende functies. Als je alleen het maken van een stand-alone Lambda functie, of gewoon voor de gek rond te krijgen het gevoel voor, je moet beginnen hier en maak een functie die vanuit het niets, want het is veel eenvoudiger.

U kunt een nieuwe functie van de “Functies” tab:

Je hebt een paar opties hier. U kunt de functie volledig uit het niets, die zal het initialiseren van de functie met niets meer dan een hallo wereld. U kunt er ook voor kiezen gebruik te maken van een vooraf gedefinieerde sjabloon, of zelfs het downloaden van een functie van de Lambda-server is niet vereist toepassing repository.

Als je aan het maken bent het zelf, u zult moeten kiezen voor een uitvoering. De Lambda is een paar om te kiezen uit de standaard:

U kunt ook uw eigen runtime te voeren welke taal je wilt.

Als het eenmaal is gemaakt, kunt u het bewerken van de functie van de pagina. De standaard NodeJS functie exporteert een handler die wordt aangeroepen wanneer de functie reageert op gebeurtenissen.

Wij raden het gebruik van AWS is Cloud9 IDE voor het werken met Lambda-functies. Het is een web-gebaseerde IDE gebouwd op dezelfde editor die gebruikt wordt op de standaard functie-editor, maar met het extra voordeel van het veel gemakkelijker voor testen en debuggen.

Als u wilt uw functie reageren op API-verzoeken, van de eenvoudigste methode om dat instellen is met API Gateway. U kunt een nieuwe API en hebben deze route bepaalde eindpunten rechtstreeks naar een specifieke Lambda functie, die zal omgaan met de aanvraag en stuur een reactie.

Anders kunt u een trigger in de “Designer” aan de bovenkant, zoals wanneer een object wordt geplaatst in een bepaalde S3 bucket. U kunt ook een doel opgeven dat de resultaten worden gestuurd, zoals een SQS wachtrij, SNS onderwerp, of andere Lambda functie.

De Lambda-functie met de rechten die door de uitvoering rol die werd gemaakt. Als je toegang hebt tot andere AWS middelen, u zult moeten geven de toestemming om dit te doen in de IAM Management Console.