View a markdown version of this page

AWS::Serverless::WebFunction - AWS Serverless Application Model

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS::Serverless::WebFunction

Membuat Fungsi AWS Lambda Web, yang melayani permintaan HTTP melalui endpoint terkelola. Tidak seperti Fungsi Peristiwa Lambda, yang berjalan sebagai respons terhadap pemanggilan dan peristiwa, Fungsi Web menjalankan server web Anda dan menerima permintaan HTTP secara langsung. Dari satuAWS::Serverless::WebFunction, AWS SAM menghasilkan Fungsi Web, revisi yang tidak dapat diubah yang berisi kode dan konfigurasi Anda, dan titik akhir yang mengarahkan lalu lintas ke satu atau beberapa revisi.

catatan

Ketika Anda menyebarkan ke AWS CloudFormation, AWS SAM mengubah AWS SAM sumber daya Anda menjadi CloudFormation sumber daya. Untuk informasi selengkapnya, lihat Dihasilkan CloudFormation sumber daya untuk AWS SAM.

penting

Kode fungsi Anda harus menjalankan server HTTP yang mendengarkan pada host dan port dalam variabel AWS_LAMBDA_HTTP_ENDPOINT lingkungan. Runtime tidak diaturPORT. Secara default, runtime berjalan index.js di root paket deployment. Gunakan EntryPointuntuk menjalankan file yang berbeda.

penting

Bucket Amazon S3 yang menyimpan paket penerapan Anda harus memenuhi persyaratan berikut:

  • Pembuatan versi diaktifkan.

  • Kebijakan bucket memberikan izin lambda.amazonaws.com s3:GetObject dan s3:GetObjectVersion izin. Kami menyarankan Anda untuk membuat cakupan kebijakan dengan ArnLike kondisi aws:SourceArn yang cocok dengan revisi fungsi, misalnyaarn:aws:lambda:us-east-1:111122223333:web-function/my-function/revision/*.

  • Jika objek dienkripsi SSE-KMS, ia menggunakan kunci terkelola pelanggan yang kebijakan kuncinya memungkinkan lambda.amazonaws.com untuk menelepon. kms:Decrypt Kunci AWS terkelola untuk Amazon S3 (aws/s3) tidak didukung, karena Anda tidak dapat mengubah kebijakan utamanya.

Untuk contoh kebijakan bucket, lihat Kebijakan Bucket untuk Lambda di Panduan AWS Lambda Pengembang.

CodeUriharus mereferensikan objek di Amazon S3. sam packagePerintah sam build and tidak mendukung jalur lokal untuk sumber daya ini.

Sintaksis

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

YAML

Type: AWS::Serverless::WebFunction Properties: AuthType: String AutoDeploymentMode: String CodeUri: String | CodeUri EgressNetworkConnectorArn: String EndpointDescription: String EndpointName: String EndpointType: String EntryPoint: String EnvironmentVariables: Map ExecutionRoleArn: String FunctionName: String InlineCode: String KmsKeyArn: String LoggingConfig: Map MaxConcurrencyPerEnvironment: Integer ReplicaRegions: List | ReplicaRegions RevisionDescription: String RevisionWeights: RevisionWeights Runtime: String ScalingConfig: Map Tags: Map ThrottleConfig: Map Timeout: Integer

Sifat-sifat

AuthType

Bagaimana titik akhir mengotorisasi permintaan.

  • IamAuth: Lambda mengotorisasi permintaan dengan Signature Version 4 dan IAM. Penelepon memerlukan lambda:InvokeWebFunctionEndpoint izin, yang diberikan melalui kebijakan berbasis sumber daya pada fungsi tersebut.

  • ApplicationManaged: titik akhir bersifat publik. Fungsi Anda harus mengotorisasi setiap permintaan itu sendiri.

Nilai valid: IamAuth, ApplicationManaged

Tipe: String

Wajib: Ya

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke AuthType properti AWS::Lambda::WebFunctionEndpoint sumber daya.

AutoDeploymentMode

Bagaimana titik akhir merutekan lalu lintas lintas di seluruh revisi.

  • LatestRevision: mengirimkan 100% lalu lintas ke revisi yang dibuat oleh penerapan ini.

  • Disabled: rute lalu lintas menurut RevisionWeights.

Nilai mana yang dapat Anda gunakan, dan RevisionWeights apakah diperlukan, tergantung pada EndpointType:

  • HomeRegion: gunakan salah satu nilai. DenganDisabled, RevisionWeights diperlukan.

  • MultiRegionatauPerRegion: gunakanDisabled. Jika Anda menghilangkanRevisionWeights, titik akhir merutekan 100% lalu lintas ke revisi yang dibuat di tumpukan yang sama, sehingga Anda dapat membuat titik akhir dalam satu penerapan. Lalu lintas tidak berpindah ke revisi yang dibuat oleh penerapan selanjutnya.

Nilai harus diselesaikan ketika AWS SAM mengubah template. A Ref ke parameter didukung. Fungsi intrinsik lainnya tidak didukung.

Nilai valid: LatestRevision, Disabled

Tipe: String

Wajib: Tidak

Default: LatestRevision

CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

CodeUri

Lokasi Amazon S3 dari paket penyebaran. Tentukan s3://bucket/key URI atau objek denganBucket,Key, dan Version kunci opsional. Untuk persyaratan bucket, lihat catatan di bagian atas halaman ini.

Jenis: String | CodeUri

Wajib: Ya

CloudFormation kompatibilitas: Properti ini mirip dengan BuildConfig.CodeConfig.S3Object properti AWS::Lambda::WebFunctionRevision sumber daya. AWS SAM mengubah s3:// URI menjadiBucket,Key, danVersionId.

EgressNetworkConnectorArn

ARN yang memenuhi syarat versi dari konektor jaringan yang merutekan lalu lintas keluar fungsi melalui VPC Anda. ARN harus diakhiri dengan nomor versi, misalnya. arn:aws:lambda:us-east-1:123456789012:network-connector:my-connector:1 Untuk menggunakan versi terbaru dari konektor dalam template yang sama, tentukan!GetAtt MyConnector.LatestVersionArn. Konektornya ComputeTypesharusWebFunction.

Jika Anda menentukan string literal, AWS SAM periksa apakah itu adalah ARN konektor jaringan yang memenuhi syarat versi. Fungsi intrinsik dilewatkan dan divalidasi oleh layanan. Mengubah nilai ini menciptakan revisi baru.

Tipe: String

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke ServiceConfig.EgressNetworkConnectorArn properti AWS::Lambda::WebFunctionRevision sumber daya.

EndpointDescription

Deskripsi titik akhir.

Tipe: String

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke Description properti AWS::Lambda::WebFunctionEndpoint sumber daya.

EndpointName

Nama titik akhir. Mengubah nama menggantikan titik akhir. Mengubah EndpointType juga menggantikan titik akhir, jadi ubah EndpointName pada saat yang bersamaan. CloudFormation tidak dapat mengganti sumber daya bernama khusus tanpa nama baru.

Tipe: String

Wajib: Tidak

Default: prod

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke EndpointName properti AWS::Lambda::WebFunctionEndpoint sumber daya.

EndpointType

Di mana titik akhir melayani lalu lintas.

  • HomeRegion: melayani dari Wilayah tumpukan.

  • MultiRegion: mereplikasi fungsi ke Wilayah di ReplicaRegionsdan merutekan setiap permintaan ke Wilayah terdekat.

  • PerRegion: mengekspos titik akhir terpisah di setiap Region replika.

MultiRegiondan PerRegion membutuhkanAutoDeploymentMode: Disabled.

Nilai yang valid:HomeRegion,MultiRegion, PerRegion

Tipe: String

Wajib: Tidak

Default: HomeRegion

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke EndpointType properti AWS::Lambda::WebFunctionEndpoint sumber daya.

EntryPoint

File yang dijalankan runtime, relatif terhadap root paket deployment. AWS SAM meneruskannya ke runtime dalam variabel AWS_LAMBDA_NODEJS_ENTRYPOINT lingkungan yang dicadangkan.

Anda tidak dapat menggunakan properti ini ketika EnvironmentVariables merupakan fungsi intrinsik.

Tipe: String

Wajib: Tidak

Default: index.js

CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

EnvironmentVariables

Key-value pasangan untuk ditetapkan sebagai variabel lingkungan untuk revisi.

  • Kunci harus dimulai dengan huruf dan hanya berisi huruf, angka, dan garis bawah.

  • Nilai harus tidak kosong dan paling banyak 4.096 karakter.

  • AWS SAM mengkonversi angka dan nilai Boolean ke string.

Tipe: Peta

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke ServiceConfig.EnvironmentVariables properti AWS::Lambda::WebFunctionRevision sumber daya.

ExecutionRoleArn

ARN dari peran IAM yang diasumsikan fungsi saat dijalankan. Jika Anda tidak menentukan peran, AWS SAM buat peran dengan kebijakan AWSLambdaBasicExecutionRole terkelola dan ID logis dari<resource-logical-id>Role.

Tipe: String

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke ServiceConfig.ExecutionRoleArn properti AWS::Lambda::WebFunctionRevision sumber daya.

FunctionName

Nama fungsi. Nama fungsi harus unik dalam akun di semua Wilayah. Jika Anda tidak menentukan nama, buat AWS SAM satu dari ID logis dan ID tumpukan, paling banyak 64 karakter. Mengubah nama menggantikan fungsi, revisinya, dan titik akhirnya.

Tipe: String

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke FunctionName propertiAWS::Lambda::WebFunction,AWS::Lambda::WebFunctionRevision, dan AWS::Lambda::WebFunctionEndpoint sumber daya.

InlineCode

Tidak didukung untukAWS::Serverless::WebFunction. Gunakan CodeUri.

Tipe: String

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

KmsKeyArn

ARN dari AWS KMS kunci yang digunakan untuk mengenkripsi variabel lingkungan revisi.

Tipe: String

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke KmsKeyArn properti AWS::Lambda::WebFunctionRevision sumber daya.

LoggingConfig

Konfigurasi logging untuk revisi, seperti grup log dan tingkat log.

Tipe: Peta

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke ServiceConfig.TelemetryConfig.LoggingConfig properti AWS::Lambda::WebFunctionRevision sumber daya.

MaxConcurrencyPerEnvironment

Jumlah maksimum permintaan bersamaan yang ditangani oleh setiap lingkungan eksekusi.

Tipe: Integer

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke ServiceConfig.MaxConcurrencyPerEnvironment properti AWS::Lambda::WebFunctionRevision sumber daya.

ReplicaRegions

Daerah untuk mereplikasi fungsi ke. Gunakan properti ini dengan MultiRegion dan PerRegion titik akhir. Tentukan daftar kode Wilayah dan grup Wilayah, atau objek dengan IncludeRegions dan opsionalExcludeRegions.

Jenis: Daftar | ReplicaRegions

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini mirip dengan Regions properti AWS::Lambda::WebFunctionEndpoint sumber daya. AWS SAM memperluas kelompok Wilayah dan berlaku ExcludeRegions untuk menghasilkan daftar Wilayah.

RevisionDescription

Deskripsi revisi yang dibuat oleh penerapan ini.

Tipe: String

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke Description properti AWS::Lambda::WebFunctionRevision sumber daya.

RevisionWeights

Peta ID revisi untuk bobot lalu lintas. Gunakan properti ini kapan AutoDeploymentMode sajaDisabled. Tentukan hingga dua revisi. Setiap bobot adalah bilangan bulat dari 1 hingga 100, dan bobot harus bertambah hingga 100.

Jenis: RevisionWeights

Diperlukan: Bersyarat. Diperlukan kapan AutoDeploymentMode Disabled dan EndpointType sedangHomeRegion.

CloudFormation kompatibilitas: Properti ini mirip dengan RevisionWeights properti AWS::Lambda::WebFunctionEndpoint sumber daya. AWS SAM mengubah peta menjadi daftar RevisionId dan Weight objek.

Runtime

Runtime untuk fungsi, misalnyanodejs24.x.

Tipe: String

Wajib: Ya

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke BuildConfig.RuntimeConfig.Runtime properti AWS::Lambda::WebFunctionRevision sumber daya.

ScalingConfig

Konfigurasi penskalaan untuk titik akhir, seperti jumlah maksimum lingkungan eksekusi.

Tipe: Peta

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke ScalingConfig properti AWS::Lambda::WebFunctionEndpoint sumber daya.

Tags

Peta pasangan kunci-nilai yang menentukan tag yang ditambahkan ke fungsi dan peran eksekusi yang dihasilkan. AWS SAM

Tipe: Peta

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini mirip dengan Tags properti AWS::Lambda::WebFunction sumber daya. TagsProperti di AWS SAM terdiri dari pasangan kunci-nilai (sedangkan dalam properti CloudFormation ini terdiri dari daftar Tag objek). Juga, AWS SAM secara otomatis menambahkan lambda:createdBy:SAM tag ke fungsi dan ke peran default yang dihasilkan untuk itu.

ThrottleConfig

Konfigurasi throttling untuk titik akhir, seperti tingkat permintaan maksimum.

Tipe: Peta

Wajib: Tidak

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke ThrottleConfig properti AWS::Lambda::WebFunctionEndpoint sumber daya.

Timeout

Waktu maksimum, dalam hitungan detik, fungsi dapat dijalankan per permintaan. Nilai yang valid adalah dari 3 hingga 900.

Tipe: Integer

Wajib: Tidak

Default: 30

CloudFormation kompatibilitas: Properti ini diteruskan langsung ke ServiceConfig.TimeoutSeconds properti AWS::Lambda::WebFunctionRevision sumber daya.

Nilai Pengembalian

Ref

Ketika ID logis dari sumber daya ini disediakan untuk fungsi Ref intrinsik, ia mengembalikan ARN dari Fungsi Web. Di mana Anda membutuhkan nama fungsi, gunakan nilai FunctionName sebagai gantinya.

Untuk informasi lebih lanjut tentang menggunakan fungsi Ref, lihat Ref di Panduan Pengguna AWS CloudFormation .

Fn:: GetAtt

Fn::GetAtt mengembalikan nilai untuk atribut yang ditentukan dari jenis ini. Berikut ini adalah atribut yang tersedia dan nilai-nilai kembali sampel.

Untuk informasi lebih lanjut tentang Fn::GetAtt, lihat Fn::GetAtt di Panduan Pengguna AWS CloudFormation

FunctionArn

Nama Sumber Daya Amazon (ARN) dari Fungsi Web.

State

Keadaan Fungsi Web saat ini.

StateReason

Alasan untuk keadaan saat ini dari Fungsi Web.

CreatedAt

Waktu dimana Web Function dibuat.

UpdatedAt

Waktu Fungsi Web terakhir diperbarui.

Untuk mereferensikan revisi atau titik akhir yang AWS SAM menghasilkan, gunakan ID logisnya, <resource-logical-id>Revision dan. <resource-logical-id>Endpoint Misalnya, !GetAtt MyWebFunctionEndpoint.DomainName mengembalikan nama domain dari endpoint untuk Fungsi Web dengan ID MyWebFunction logis. Untuk informasi selengkapnya, lihat CloudFormation sumber daya yang dihasilkan ketika AWS::Serverless::WebFunction ditentukan.

Contoh

Fungsi Web Dasar

Contoh berikut membuat Web Function dengan IAM-authorized endpoint di Region stack. AWS SAM menghasilkan peran eksekusi, dan titik akhir merutekan semua lalu lintas ke revisi yang dibuat penerapan ini.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version: object-version-id Timeout: 30 Outputs: EndpointUrl: Value: !Sub https://${MyWebFunctionEndpoint.DomainName}

Pisahkan lalu lintas antara dua revisi

Contoh berikut menonaktifkan penyebaran otomatis dan mengirimkan 90% lalu lintas ke satu revisi yang ada dan 10% ke yang lain. Kedua revisi harus sudah ada.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: s3://amzn-s3-demo-bucket/webfn-v2.zip AutoDeploymentMode: Disabled RevisionWeights: rev-abc123: 90 rev-def456: 10

Multi-Region Fungsi Web

Contoh berikut mereplikasi fungsi ke Wilayah AS kecuali us-west-1 dan merutekan setiap permintaan ke Wilayah terdekat. Karena RevisionWeights dihilangkan, titik akhir merutekan semua lalu lintas ke revisi yang dibuat di tumpukan ini.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version: object-version-id EndpointName: prodmr EndpointType: MultiRegion AutoDeploymentMode: Disabled ReplicaRegions: IncludeRegions: - US ExcludeRegions: - us-west-1

Fungsi Web dengan jalan keluar VPC

Contoh berikut membuat konektor jaringan untuk Fungsi Web dan merutekan lalu lintas keluar fungsi melalui subnet konektor dan grup keamanan.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyConnector: Type: AWS::Serverless::NetworkConnector Properties: ComputeTypes: - WebFunction VpcConfig: SubnetIds: - subnet-0abc123def4567890 - subnet-0def456abc7890123 SecurityGroupIds: - sg-0abc1234abcde0001 NetworkProtocol: IPv4 MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version: object-version-id EgressNetworkConnectorArn: !GetAtt MyConnector.LatestVersionArn