本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
构建自定义运行时
您可以使用 sam 生成
命令,以构建您的 Lambda 功能。您声明了您的 Lambda 函数,通过指定 Runtime: provided
功能。
要构建自定义运行时,请声明 Metadata
资源属性,带 BuildMethod: makefile
条目。您提供自定义makefile,在此您可以声明表单的构建目标 build-
包含运行时的构建命令。必要时,您的makefile负责编译自定义运行时,并将构建工件复制到工作流程中后续步骤所需的适当位置。
function-logical-id
Examples
示例 1:Rust中写入的函数的自定义运行时
以下 AWS SAM 模板声明使用自定义运行时 Lambda 在Rust中编写的功能,并指示 sam 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
包含构建目标和将执行的命令。
build-HelloRustFunction: cargo build --release --target x86_64-unknown-linux-musl cp ./target/x86_64-unknown-linux-musl/release/bootstrap $(ARTIFACTS_DIR)
有关设置开发环境以执行 cargo build
命令 makefile
,请参阅 锈蚀运行时 AWS Lambda
示例 2:MakefileBuilderforPython3.7(替代使用捆绑构建工具)
您可能想要使用捆绑构建程序中未包含的库或模块。此示例显示了 AWS SAM 使用makefile生成器的Python3.7运行时模板。
Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.7 Metadata: BuildMethod: makefile
以下 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