Definition af serverless-ressourcer
Skriv SAM-skabeloner til at definere Lambda-funktioner, API Gateway-endpoints, DynamoDB-tabeller og andre serverless-komponenter.
Definition af serverless-ressourcer er en gratis Serverløs backend med AWS Lambda og API Gateway-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Serverløs backend med AWS Lambda og API Gateway, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Serverløs backend med AWS Lambda og API Gateway-kurset indeholder 4 lektioner i alt.
Hvad er SAM-skabeloner?
AWS Serverless Application Model (SAM)-skabeloner er en effektiv måde at definere dine serverløse applikationer på ved hjælp af Infrastructure as Code (IaC).
I stedet for manuelt at konfigurere ressourcer i AWS-konsollen beskriver du dem i en YAML- eller JSON-fil. Det gør dine implementeringer gentagelige, versionsstyrede og lettere at administrere.
En SAM-skabelons opbygning
En SAM-skabelon har en tydelig struktur. De vigtigste dele er:
AWSTemplateFormatVersion: Angiver skabelonformatets version.Transform: Er altidAWS::Serverless-2016-10-31for SAM.Description: En kort beskrivelse af din applikation.Resources: Her definerer du alle dine AWS-komponenter.
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: My First SAM App
Resources:
# Your serverless resources go hereDefinition af en serverløs funktion
Kernen i mange serverløse applikationer er AWS Lambda-funktionen. I SAM erklærer du en Lambda-funktion ved hjælp af ressourcetypen AWS::Serverless::Function.
Du skal angive dens handler, runtime og placeringen af dens kode.
Resources:
MyLambdaFunction:
Type: AWS::Serverless::Function
Properties:
Handler: app.lambda_handler
Runtime: python3.9
CodeUri: s3://my-bucket/my-app.zip
MemorySize: 128
Timeout: 30Vigtige Lambda-egenskaber
Lad os gennemgå nogle almindelige egenskaber for AWS::Serverless::Function:
Handler: Indgangspunktet i din kode (f.eks.filename.function_name).Runtime: Kørselstiden for programmeringssproget (f.eks.python3.9,nodejs18.x).CodeUri: Stien til din funktions implementeringspakke (lokalt eller i S3).MemorySize: Den RAM-mængde, der er tildelt funktionen (MB).Timeout: Den maksimale køretid (sekunder).
API Gateway som hændelseskilde
Hvis du vil gøre din Lambda-funktion tilgængelig via et HTTP-slutpunkt, integrerer du den med Amazon API Gateway. I SAM gør du dette ved at føje egenskaben Events til din funktion.
Typen HttpApi foretrækkes ofte på grund af sin enkelhed og omkostningseffektivitet.
Resources:
MyApiFunction:
Type: AWS::Serverless::Function
Properties:
Handler: app.lambda_handler
Runtime: python3.9
CodeUri: s3://my-bucket/api-app.zip
Events:
MyApiEvent:
Type: HttpApi
Properties:
Path: /hello
Method: GETDefinition af en DynamoDB-tabel
Hvis du vil gemme data permanent, kan du definere en DynamoDB-tabel direkte i din SAM-skabelon. SAM tilbyder ressourcetypen AWS::Serverless::SimpleTable, som gør dette nemt.
Den opretter en grundlæggende DynamoDB-tabel med en primærnøgle. Til mere avancerede konfigurationer kan du bruge AWS::DynamoDB::Table.
Resources:
MyDataTable:
Type: AWS::Serverless::SimpleTable
Properties:
PrimaryKey:
Name: id
Type: String
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1IAM-tilladelser til ressourcer
Dine Lambda-funktioner skal ofte have tilladelse til at interagere med andre AWS-tjenester, f.eks. DynamoDB. Du tildeler disse tilladelser ved hjælp af IAM-politikker (Identity and Access Management).
Med SAM kan du knytte politikker direkte til din Lambda-funktions udførelsesrolle ved hjælp af egenskaben Policies.
Resources:
MyLambdaWithDbAccess:
Type: AWS::Serverless::Function
Properties:
Handler: app.lambda_handler
Runtime: python3.9
CodeUri: s3://my-bucket/db-app.zip
Policies:
- DynamoDBReadWriteAccess:
TableName: !Ref MyDataTable # Grants access to MyDataTable
Events:
MyApiEvent:
Type: HttpApi
Properties:
Path: /items
Method: GET
MyDataTable:
Type: AWS::Serverless::SimpleTable
Properties:
PrimaryKey:
Name: id
Type: StringEksport af vigtige værdier
Efter implementeringen af din serverløse applikation har du ofte brug for API'ets slutpunkts-URL eller navnet på din DynamoDB-tabel.
Sektionen Outputs i din SAM-skabelon giver dig mulighed for at eksportere disse værdier, så de er let tilgængelige efter implementeringen.
Outputs:
ApiUrl:
Description: "API Gateway endpoint URL for Prod stage for Hello World function"
Value: !Sub "https://${ServerlessHttpApi}.execute-api.${AWS::Region}.amazonaws.com/hello"En komplet serverløs skabelon
Her er en mere komplet SAM-skabelon, der definerer et HTTP API-slutpunkt, en Lambda-funktion til håndtering af anmodninger og en DynamoDB-tabel til datalagring.
Bemærk, hvordan forskellige ressourcetyper erklæres og forbindes med hinanden.
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: A complete serverless API with Lambda and DynamoDB
Resources:
MyApiFunction:
Type: AWS::Serverless::Function
Properties:
Handler: app.lambda_handler
Runtime: python3.9
CodeUri: s3://my-bucket/full-app.zip
Policies:
- DynamoDBReadWriteAccess:
TableName: !Ref MyItemsTable
Events:
MyApiEvent:
Type: HttpApi
Properties:
Path: /items
Method: GET
MyItemsTable:
Type: AWS::Serverless::SimpleTable
Properties:
PrimaryKey:
Name: itemId
Type: String
Outputs:
ApiEndpoint:
Description: "API Gateway endpoint URL"
Value: !Sub "https://${ServerlessHttpApi}.execute-api.${AWS::Region}.amazonaws.com/items"Kontrol af SAM-skabelonen
Hvilke af følgende er gyldige sektioner på øverste niveau i en SAM-skabelon?
Opsummering: Definition af serverløse ressourcer
I denne lektion lærte du, hvordan du definerer forskellige serverløse ressourcer i en SAM-skabelon. Vi gennemgik:
- Den grundlæggende struktur i en SAM-skabelon.
- Erklæring af
AWS::Serverless::Functiontil Lambda. - Integration af Lambda med API Gateway ved hjælp af
Events. - Definition af
AWS::Serverless::SimpleTabletil DynamoDB. - Tildeling af tilladelser med IAM-
Policies. - Brug af sektionen
Outputstil at eksportere værdier.
Derefter lærer vi, hvordan du implementerer disse skabeloner i AWS!
Lær Serverløs backend med AWS Lambda og API Gateway med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Definition af serverless-ressourcer” gratis?
Ja — hele teksten til “Definition af serverless-ressourcer” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Serverløs backend med AWS Lambda og API Gateway-kurset, skal du opgradere til CoddyKit PRO. Serverløs backend med AWS Lambda og API Gateway-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Definition af serverless-ressourcer”?
Skriv SAM-skabeloner til at definere Lambda-funktioner, API Gateway-endpoints, DynamoDB-tabeller og andre serverless-komponenter. Du øver dig i Serverløs backend med AWS Lambda og API Gateway med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Serverløs backend med AWS Lambda og API Gateway?
Der kræves ingen tidligere erfaring. Serverløs backend med AWS Lambda og API Gateway på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Definition af serverless-ressourcer”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Serverløs backend med AWS Lambda og API Gateway-lektion?
Ja. Alle Serverløs backend med AWS Lambda og API Gateway-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Introduktion til AWS SAM
- Definition af serverless-ressourcer
- Implementering af SAM-applikationer
- Lokal test og fejlfinding med SAM CLI