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.coms3:GetObjectdans3:GetObjectVersionizin. Kami menyarankan Anda untuk membuat cakupan kebijakan denganArnLikekondisiaws:SourceArnyang 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.comuntuk menelepon.kms:DecryptKunci 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:StringAutoDeploymentMode:StringCodeUri:String | CodeUriEgressNetworkConnectorArn:StringEndpointDescription:StringEndpointName:StringEndpointType:StringEntryPoint:StringEnvironmentVariables:MapExecutionRoleArn:StringFunctionName:StringInlineCode:StringKmsKeyArn:StringLoggingConfig:MapMaxConcurrencyPerEnvironment:IntegerReplicaRegions:List | ReplicaRegionsRevisionDescription:StringRevisionWeights:RevisionWeightsRuntime:StringScalingConfig:MapTags:MapThrottleConfig:MapTimeout:Integer
Sifat-sifat
-
AuthType -
Bagaimana titik akhir mengotorisasi permintaan.
-
IamAuth: Lambda mengotorisasi permintaan dengan Signature Version 4 dan IAM. Penelepon memerlukanlambda:InvokeWebFunctionEndpointizin, 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,ApplicationManagedTipe: String
Wajib: Ya
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
AuthTypepropertiAWS::Lambda::WebFunctionEndpointsumber 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
RevisionWeightsapakah diperlukan, tergantung pada EndpointType:-
HomeRegion: gunakan salah satu nilai. DenganDisabled,RevisionWeightsdiperlukan. -
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
Refke parameter didukung. Fungsi intrinsik lainnya tidak didukung.Nilai valid:
LatestRevision,DisabledTipe: String
Wajib: Tidak
Default:
LatestRevisionCloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.
-
-
CodeUri -
Lokasi Amazon S3 dari paket penyebaran. Tentukan
s3://URI atau objek denganbucket/keyBucket,Key, danVersionkunci opsional. Untuk persyaratan bucket, lihat catatan di bagian atas halaman ini.Jenis: String | CodeUri
Wajib: Ya
CloudFormation kompatibilitas: Properti ini mirip dengan
BuildConfig.CodeConfig.S3ObjectpropertiAWS::Lambda::WebFunctionRevisionsumber daya. AWS SAM mengubahs3://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:1Untuk menggunakan versi terbaru dari konektor dalam template yang sama, tentukan!GetAtt. Konektornya ComputeTypesharusMyConnector.LatestVersionArnWebFunction.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.EgressNetworkConnectorArnpropertiAWS::Lambda::WebFunctionRevisionsumber daya. -
EndpointDescription -
Deskripsi titik akhir.
Tipe: String
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
DescriptionpropertiAWS::Lambda::WebFunctionEndpointsumber daya. -
EndpointName -
Nama titik akhir. Mengubah nama menggantikan titik akhir. Mengubah
EndpointTypejuga menggantikan titik akhir, jadi ubahEndpointNamepada saat yang bersamaan. CloudFormation tidak dapat mengganti sumber daya bernama khusus tanpa nama baru.Tipe: String
Wajib: Tidak
Default:
prodCloudFormation kompatibilitas: Properti ini diteruskan langsung ke
EndpointNamepropertiAWS::Lambda::WebFunctionEndpointsumber 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.
MultiRegiondanPerRegionmembutuhkanAutoDeploymentMode: Disabled.Nilai yang valid:
HomeRegion,MultiRegion,PerRegionTipe: String
Wajib: Tidak
Default:
HomeRegionCloudFormation kompatibilitas: Properti ini diteruskan langsung ke
EndpointTypepropertiAWS::Lambda::WebFunctionEndpointsumber daya. -
-
EntryPoint -
File yang dijalankan runtime, relatif terhadap root paket deployment. AWS SAM meneruskannya ke runtime dalam variabel
AWS_LAMBDA_NODEJS_ENTRYPOINTlingkungan yang dicadangkan.Anda tidak dapat menggunakan properti ini ketika
EnvironmentVariablesmerupakan fungsi intrinsik.Tipe: String
Wajib: Tidak
Default:
index.jsCloudFormation 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.EnvironmentVariablespropertiAWS::Lambda::WebFunctionRevisionsumber daya. -
-
ExecutionRoleArn -
ARN dari peran IAM yang diasumsikan fungsi saat dijalankan. Jika Anda tidak menentukan peran, AWS SAM buat peran dengan kebijakan
AWSLambdaBasicExecutionRoleterkelola dan ID logis dari.<resource-logical-id>RoleTipe: String
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
ServiceConfig.ExecutionRoleArnpropertiAWS::Lambda::WebFunctionRevisionsumber 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
FunctionNamepropertiAWS::Lambda::WebFunction,AWS::Lambda::WebFunctionRevision, danAWS::Lambda::WebFunctionEndpointsumber daya. -
InlineCode -
Tidak didukung untuk
AWS::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
KmsKeyArnpropertiAWS::Lambda::WebFunctionRevisionsumber 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.LoggingConfigpropertiAWS::Lambda::WebFunctionRevisionsumber daya. -
MaxConcurrencyPerEnvironment -
Jumlah maksimum permintaan bersamaan yang ditangani oleh setiap lingkungan eksekusi.
Tipe: Integer
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
ServiceConfig.MaxConcurrencyPerEnvironmentpropertiAWS::Lambda::WebFunctionRevisionsumber daya. -
ReplicaRegions -
Daerah untuk mereplikasi fungsi ke. Gunakan properti ini dengan
MultiRegiondanPerRegiontitik akhir. Tentukan daftar kode Wilayah dan grup Wilayah, atau objek denganIncludeRegionsdan opsionalExcludeRegions.Jenis: Daftar | ReplicaRegions
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini mirip dengan
RegionspropertiAWS::Lambda::WebFunctionEndpointsumber daya. AWS SAM memperluas kelompok Wilayah dan berlakuExcludeRegionsuntuk menghasilkan daftar Wilayah. -
RevisionDescription -
Deskripsi revisi yang dibuat oleh penerapan ini.
Tipe: String
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
DescriptionpropertiAWS::Lambda::WebFunctionRevisionsumber daya. -
RevisionWeights -
Peta ID revisi untuk bobot lalu lintas. Gunakan properti ini kapan
AutoDeploymentModesajaDisabled. 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
AutoDeploymentModeDisableddanEndpointTypesedangHomeRegion.CloudFormation kompatibilitas: Properti ini mirip dengan
RevisionWeightspropertiAWS::Lambda::WebFunctionEndpointsumber daya. AWS SAM mengubah peta menjadi daftarRevisionIddanWeightobjek. -
Runtime -
Runtime untuk fungsi, misalnya
nodejs24.x.Tipe: String
Wajib: Ya
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
BuildConfig.RuntimeConfig.RuntimepropertiAWS::Lambda::WebFunctionRevisionsumber daya. -
ScalingConfig -
Konfigurasi penskalaan untuk titik akhir, seperti jumlah maksimum lingkungan eksekusi.
Tipe: Peta
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
ScalingConfigpropertiAWS::Lambda::WebFunctionEndpointsumber daya. -
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
TagspropertiAWS::Lambda::WebFunctionsumber daya.TagsProperti di AWS SAM terdiri dari pasangan kunci-nilai (sedangkan dalam properti CloudFormation ini terdiri dari daftarTagobjek). Juga, AWS SAM secara otomatis menambahkanlambda:createdBy:SAMtag 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
ThrottleConfigpropertiAWS::Lambda::WebFunctionEndpointsumber 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:
30CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
ServiceConfig.TimeoutSecondspropertiAWS::Lambda::WebFunctionRevisionsumber 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, dan. <resource-logical-id>Revision Misalnya, <resource-logical-id>Endpoint!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-idTimeout: 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-idEndpointName: 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-idEgressNetworkConnectorArn: !GetAtt MyConnector.LatestVersionArn