Opprette Lambda -lag
AWS gir følgende fire måter å lage lagene i Lambda:
I denne bloggen vil vi bruke AWS -konsollen til å lage Lambda -laget som inkluderer forespørsler modul. For å lage laget, oppretter du en tom katalog først for å legge til koden for laget.
ubuntu@ubuntu: ~ $ mkdir demo_requests
Gå til den nyopprettede katalogen og installere forespørsler modul.
ubuntu@ubuntu: ~ $ cd demo_requests
ubuntu@ubuntu: ~ $ pip3 installer forespørsler -t .
Denne kommandoen installerer forespørsler bibliotek i denne mappen. For å bruke dette forespørsler Modul som et lag, zip denne mappen først ved å bruke følgende kommando:
ubuntu@ubuntu: ~ $ zip -r demo_requests.Zip Demo_requests
Etter å ha opprettet en zip -fil av modulen, gå til Lambda -konsollen og klikk på Lag Tab fra venstre sidepanel.
Det åpner lambda -lagkonsollen. Du kan legge til laget ditt ved å klikke på Lag lag knapp.
En ny side ser ut til å legge inn detaljene i Lambda -laget. Gi navnet og beskrivelsen av laget. For denne demoen bruker vi demo_layer som navnet på laget.
Nå er det to alternativer for å gi koden til laget - den ene er å laste opp en zip -fil, og den andre er å laste opp koden fra S3 -konsollen. For denne demoen laster vi opp zip -filen som inkluderer forespørsler modul.
Til kompatibel arkitektur alternativer, la den være tom og ikke merke av i noen boks for dette alternativet. Ettersom lagkoden vår inkluderer en forespørsler modul som er en python -modul, er runtime for dette laget Python. Etter å ha lagt inn all nødvendig lagkonfigurasjon, klikker du på skape knapp for å lage laget.
Bruker Lambda -laget i Lambda -funksjonen din
I forrige seksjon opprettet vi et lambda -lag som inkluderer en forespørsler modul. Nå, i denne delen, legger vi til dette lambda -laget i vår lambda -funksjon. For å legge til et Lambda -lag i Lambda -funksjonen, klikker du på Lambda -funksjonen og blar ned til lag seksjon.
Klikk på annonsend et lag knapp for å legge til et nytt lag i lambda -funksjonen din. Det åpner en ny side som ber om Lambda Layer -detaljer. Det er tre typer Lambda -lagkilder:
For å legge et lag til lambda -funksjonen som vi opprettet i vår konto, må vi velge alternativet tilpassede lag som lagkilde. Etter å ha valgt lagkilden, velg et lag du opprettet i forrige seksjon og klikker på Legg til knapp for å legge til laget i lambda -funksjonen.
Nå, etter å ha lagt til laget, trenger du ikke å installere forespørsler modul i lambda -funksjonen når vi importerer forespørsler modul via lambda -laget.
Deling av Lambda -lag
Som standard er Lambda -laget privat og kan bare brukes på AWS -kontoen din. Men du kan administrere tillatelsene til Lambda -laget ditt ved å bruke kommandolinjegrensesnittet for å dele lagene med en annen AWS -konto eller organisasjon. AWS -konsoll har ikke funksjonen i å dele lambda -lagene med andre AWS -kontoer. De ADD-lag-versjon-tillatelse Metoden brukes til å dele lagene ved å bruke kommandolinjegrensesnittet. I de kommende delene av bloggen vil vi se hvordan vi kan dele Lambda -lagene med andre AWS -kontoer eller organisasjoner.
Deling av Lambda -lag til spesifikk AWS -konto
For å dele Lambda -laget, ADD-lag-versjon-tillatelse Metode for kommandolinjegrensesnitt brukes. Du må spesifisere navnet på laget du vil dele uttalelsen-ID, versjonsnummer og AWS-konto-ID som du vil dele laget. Følgende er kommandoen for å dele Lambda -laget med en annen AWS -konto ved å bruke kommandolinjegrensesnittet:
ubuntu@ubuntu: ~ $ aws lambda add-lags-versjon-tillatelse \
--Lagnavn Demo_Layer \
--Handling Lambda: GetLayerVersion \
--uttalelse-id-uttalelse-1 \
--Versjonsnummer 1
--rektor\
Deling av Lambda -lag offentlig
For å dele et Lambda -lag på AWS -kontoen din offentlig for å være tilgjengelig på alle AWS -kontoene, trenger du bare å endre rektor Parameter for kommandoen som brukes i forrige seksjon. I stedet for å spesifisere en AWS -konto -ID, må du bruke en "*" som rektor for å dele Lambda -laget offentlig på tvers av alle AWS -kontoene.
ubuntu@ubuntu: ~ $ aws lambda add-lags-versjon-tillatelse \
--Lagnavn Demo_Layer \
--Statement-ID Statement-2 \
--Handling Lambda: GetLayerVersion \
--rektor * \
--Versjonsnummer 1
Deling av Lambda -lag med alle AWS -kontoer i en organisasjon
Akkurat som en AWS -konto, kan Lambda -lagene også deles med alle AWS -kontoene i en organisasjon. For å dele Lambda -laget med alle kontoer i en organisasjon, må du legge til Organisasjon-ID parameter i ADD-lag-versjon-tillatelse kommando. Her er kommandoen for å dele Lambda -laget til alle AWS -kontoer i en organisasjon:
ubuntu@ubuntu: ~ $ aws lambda add-lags-versjon-tillatelse \
--Lagnavn Demo_Layer \
--uttalelse-id-uttalelse-3 \
--Handling Lambda: GetLayerVersion \
--rektor * \
--Organisasjon-ID\
--Versjonsnummer 1
Konklusjon
I denne bloggen studerte vi hvordan vi lager og deler Lambda -laget for å gjenbruke de små biter av koden vår til forskjellige Lambda -funksjoner. Vi lærte hvordan du oppretter en zip -fil av et Python Requests -bibliotek og opprettet et Lambda -lag ved hjelp av denne zip -filen. Etter å ha opprettet Lambda -laget, la vi dette lambda -laget til vår lambda -funksjon for å øke kode -gjenbrukbarheten. Vi diskuterte også hvordan vi kan dele Lambda -lagene med spesifikke AWS -kontoer og alle kontoer i en organisasjon.