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-
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 function-logical-id
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