Creazione di funzioni Lambda con runtime personalizzati in AWS SAM - AWS Serverless Application Model

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di funzioni Lambda con runtime personalizzati in AWS SAM

Puoi usare il sam build comando per creare i runtime personalizzati richiesti per la tua funzione Lambda. Dichiari che la tua funzione Lambda utilizzi un runtime personalizzato Runtime: provided specificando la funzione.

Per creare un runtime personalizzato, dichiarate l'attributo Metadata resource con una voce. BuildMethod: makefile Fornisci un makefile personalizzato, in cui dichiari un obiettivo di compilazione del modulo build-function-logical-id che contiene i comandi di build per il tuo runtime. Il makefile è responsabile della compilazione del runtime personalizzato, se necessario, e della copia degli elementi di compilazione nella posizione corretta richiesta per le fasi successive del flusso di lavoro. La posizione del makefile è specificata dalla CodeUri proprietà della risorsa della funzione e deve essere denominata. Makefile

Esempi

Esempio 1: runtime personalizzato per una funzione scritta in Rust

Nota

Consigliamo di creare funzioni Lambda con. Cargo Lambda Per ulteriori informazioni, consulta Creazione di funzioni Rust Lambda con in Cargo LambdaAWS SAM.

Il AWS SAM modello seguente dichiara una funzione che utilizza un runtime personalizzato per una funzione Lambda scritta in Rust e sam build indica di eseguire i comandi per build-HelloRustFunction l'obiettivo di compilazione.

Resources: HelloRustFunction: Type: AWS::Serverless::Function Properties: FunctionName: HelloRust Handler: bootstrap.is.real.handler Runtime: provided MemorySize: 512 CodeUri: . Metadata: BuildMethod: makefile

Il seguente makefile contiene l'obiettivo di compilazione e i comandi che verranno eseguiti. Nota che la CodeUri proprietà è impostata su., quindi il makefile deve trovarsi nella directory principale del progetto (ovvero, la stessa directory del file AWS SAM modello dell'applicazione). Il nome del file deve essere. Makefile

build-HelloRustFunction: cargo build --release --target x86_64-unknown-linux-musl cp ./target/x86_64-unknown-linux-musl/release/bootstrap $(ARTIFACTS_DIR)

Per ulteriori informazioni sulla configurazione dell'ambiente di sviluppo per l'esecuzione del cargo build comando precedentemakefile, consultate il AWS Lambda post sul blog di Rust Runtime for.

Esempio 2: Makefile builder per Python3.12 (alternativa all'utilizzo del builder in bundle)

Potresti voler usare una libreria o un modulo che non è incluso in un builder in bundle. Questo esempio mostra un AWS SAM modello per un runtime Python3.12 con un generatore di makefile.

Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.12 Metadata: BuildMethod: makefile

Il seguente makefile contiene l'obiettivo di compilazione e i comandi che verranno eseguiti. Nota che la CodeUri proprietà è impostata suhello_world, quindi il makefile deve trovarsi nella radice della hello_world sottodirectory e il nome del file deve essere. 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