Creazione di runtime personalizzati - 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 runtime personalizzati

È possibile utilizzare ilstessa costruzione comando per creare runtime personalizzati necessari per la funzione Lambda. Dichiarate che la vostra funzione Lambda utilizza un runtime personalizzato specificandoRuntime: provided la funzione.

Per creare un runtime personalizzato, dichiarate l'attributoMetadata resource con unaBuildMethod: makefile voce. Fornisci un makefile personalizzato, in cui dichiari un target di build del modulobuild-function-logical-id che contiene i comandi di compilazione per il tuo runtime. Il tuo makefile è responsabile della compilazione del runtime personalizzato, se necessario, e della copia degli artefatti della build nella posizione corretta richiesta per le fasi successive del flusso di lavoro. La posizione del makefile è specificata dallaCodeUri proprietà della risorsa della funzione e deve essere denominataMakefile.

Esempi

Esempio 1: runtime personalizzato per una funzione scritta in Rust

IlAWS SAM modello seguente dichiara una funzione che utilizza un runtime personalizzato per una funzione Lambda scritta in Rust e indica disam build eseguire i comandi per il target dibuild-HelloRustFunction compilazione.

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

Il makefile seguente contiene il target di build e i comandi che verranno eseguiti. Nota che laCodeUri proprietà è impostata su., quindi il makefile deve trovarsi nella directory principale del progetto (ovvero la stessa directory del fileAWS SAM modello dell'applicazione). Il nome del file deve essereMakefile.

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 eseguire ilcargo build comando precedentemakefile, consulta il post di Rust Runtime per ilAWS Lambda blog.

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

Potresti voler usare una libreria o un modulo che non è incluso in un generatore in bundle. Questo esempio mostra unAWS SAM modello per un runtime Python 3.7 con un generatore di makefile.

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

Il makefile seguente contiene il target di build e i comandi che verranno eseguiti. Nota che laCodeUri proprietà è impostata suhello_world, quindi il makefile deve trovarsi nella radice dellahello_world sottodirectory e il nome del file deve essereMakefile.

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