Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membangun fungsi Lambda dengan runtime khusus di AWS SAM
Anda dapat menggunakan perintah sam build
untuk membangun waktu aktif kustom yang diperlukan untuk fungsi Lambda Anda. Anda menyatakan fungsi Lambda untuk menggunakan waktu aktif kustom dengan menentukan Runtime: provided
pada fungsi terebut.
Untuk membangun waktu aktif kustom, nyatakan atribut sumber daya Metadata
dengan entri BuildMethod: makefile
. Anda menyediakan makefile kustom, tempat Anda menyatakan target bangunan formulir build-
yang mencakup perintah pembangunan untuk waktu aktif Anda. Makefile Anda bertanggung jawab untuk menyusun waktu aktif kustom jika diperlukan, dan menyalin artefak bangunan ke lokasi yang tepat yang diperlukan untuk langkah-langkah berikutnya dalam alur kerja Anda. Lokasi makefile ditentukan oleh properti function-logical-id
CodeUri
dari sumber daya fungsi dan harus bernama Makefile
.
Contoh
Contoh 1: Waktu aktif kustom untuk fungsi yang ditulis dalam Rust
catatan
Kami merekomendasikan membangun fungsi Lambda dengan. Cargo Lambda Untuk mempelajari selengkapnya, lihat Membangun fungsi Lambda Karat dengan in Cargo LambdaAWS SAM.
AWS SAM Template berikut mendeklarasikan fungsi yang menggunakan runtime kustom untuk fungsi Lambda yang ditulis dalam Rust, dan menginstruksikan sam build
untuk menjalankan perintah untuk target build. build-HelloRustFunction
Resources: HelloRustFunction: Type: AWS::Serverless::Function Properties: FunctionName: HelloRust Handler: bootstrap.is.real.handler Runtime: provided MemorySize: 512 CodeUri: . Metadata: BuildMethod: makefile
Makefile berikut berisi target bangunan dan perintah yang akan dieksekusi. Perhatikan bahwa properti CodeUri
diatur ke .
, maka makefile harus terletak di direktori root proyek (yaitu, direktori yang sama dengan file templat AWS SAM aplikasi). Nama file tersebut harus Makefile
.
build-HelloRustFunction: cargo build --release --target x86_64-unknown-linux-musl cp ./target/x86_64-unknown-linux-musl/release/bootstrap $(ARTIFACTS_DIR)
Untuk informasi selengkapnya tentang pengaturan lingkungan pengembangan Anda agar dapat mengeksekusi perintah cargo build
di makefile
sebelumnya, lihat postingan blog Waktu aktif Rust untuk AWS Lambda
Contoh 2: Pembuat makefile untuk Python3.12 (alternatif untuk menggunakan pembuat yang dibundel)
Anda mungkin ingin menggunakan pustaka atau modul yang tidak disertakan dalam pembangun yang dipaketkan bersama. Contoh ini menunjukkan AWS SAM template untuk runtime Python3.12 dengan pembuat makefile.
Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.12 Metadata: BuildMethod: makefile
Makefile berikut berisi target bangunan dan perintah yang akan dieksekusi. Perhatikan bahwa properti CodeUri
diatur ke hello_world
, sehingga makefile harus terletak di root subdirektori hello_world
, dan nama file harus Makefile
.
build-HelloWorldFunction: cp *.py $(ARTIFACTS_DIR) cp requirements.txt $(ARTIFACTS_DIR) python -m pip install -r requirements.txt -t $(ARTIFACTS_DIR) rm -rf $(ARTIFACTS_DIR)/bin