Membangun fungsi Lambda dengan runtime khusus - AWS Serverless Application Model

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

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-function-logical-id 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 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 Cargo Lambda.

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