sam 生成 - AWS Serverless Application Model
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

sam 生成

构建无服务器应用程序,并准备在工作流程中执行后续步骤,如本地测试应用程序或将其部署到 AWS 云。

命令处理您的 sam build 模板文件、应用程序代码以及任何适用的特定于语言的文件和依赖项,并按照工作流程中后续步骤所需的格式和位置复制构建构件。AWS SAM您可以在包括在应用程序中的清单文件中指定依赖项,例如 requirements.txt(对于 Python 函数)或 package.json(对于 Node.js 函数)。

您的应用程序的构建项目格式取决于其程序包类型。您可以使用 AWS Lambda 属性指定 PackageType 函数的程序包类型。选项包括:

  • Zip – 一个 .zip 文件存档,其中包含您的应用程序代码及其依赖项。如果将代码打包为 .zip 文件存档,则必须为函数指定 Lambda 运行时。

  • Image 容器映像,包括基本操作系统、运行时和扩展以及应用程序代码及其依赖项。–

有关 Lambda 程序包类型的更多信息,请参阅 中的 Lambda 部署程序包AWS Lambda Developer Guide

如果某个资源包含具有 Metadata 条目的 BuildMethod 资源属性,sam build 将根据 BuildMethod 条目的值构建该资源。的有效值为 BuildMethod 运行时或 Lambda 的标识符:makefile

  • Lambda 运行时标识符。针对 Lambda 运行时构建资源。有关支持的运行时标识符的列表,请参阅 AWS Lambda 运行时

  • makefile 您必须具有包含名为 makefile 的生成目标的 build-resource-logical-id。 在这种情况下,sam build 将执行构建目标的命令。

要构建层和自定义运行时,您也可以将 Metadata 资源属性与 BuildMethod 条目结合使用。有关构建层的信息,请参阅建筑层。有关构建自定义运行时的信息,请参阅构建自定义运行时

对于具有 Image 程序包类型的无服务器函数资源,请使用 Metadata 资源属性配置构建容器映像所需的 Docker 映像设置。有关构建容器映像的更多信息,请参阅构建应用程序

要查看使用此命令的端到端示例,包括本地测试和部署到 AWS 云,请参阅教程:部署 Hello World 应用程序。命令是 sam build 的一部分。步骤 2:构建应用程序

用量:

sam build [OPTIONS] [RESOURCE_LOGICAL_ID]

示例:

To use this command, update your SAM template to specify the path to your function's source code in the resource's Code or CodeUri property. To build on your workstation, run this command in folder containing SAM template. Built artifacts will be written to .aws-sam/build folder $ sam build To build inside a AWS Lambda like Docker container $ sam build --use-container To build & run your functions locally $ sam build && sam local invoke To build and package for deployment $ sam build && sam package --s3-bucket <bucketname> To build the 'MyFunction' resource $ sam build MyFunction

选项:

选项 描述
-b, --build-dir DIRECTORY 存储所构建构件的文件夹的路径。使用此选项将删除此目录及其所有内容。
-s, --base-dir DIRECTORY 解析 Lambda 函数相对于此文件夹的源代码的相对路径。如果 AWS SAM 模板和源代码不在同一文件夹中,请使用该选项。默认情况下,相对路径是根据模板的位置解析的。
-u, --use-container 如果您的函数依赖于具有本机编译依赖项的包,请使用此标志在类似于 Lambda 的 Docker 容器内构建函数。
-m, --manifest PATH 要使用的自定义依赖项清单文件(例如 package.json)的路径而不是默认路径。
-t, --template-file, --template PATH 模板文件 AWS SAM 的路径和文件名。[default: template.[yaml|yml]]
--parameter-overrides (可选)包含 AWS CloudFormation 参数覆盖的字符串,编码为键/值对。使用与 AWS Command Line Interface (AWS CLI) 相同的格式。例如:'ParameterKey=KeyPairNameParameterValue=MyKey ParameterKey=InstanceTypeParameterValue=t1.micro'
--skip-pull-image 指定该命令是否应跳过为 Lambda 运行时下拉最新的 Docker 映像。
--docker-network TEXT 指定 Lambda Docker 容器应连接到的现有 Docker 网络的名称或 ID 以及默认桥接网络。如果未指定此项,Lambda 容器将仅连接到默认的桥接 Docker 网络。
--parallel 已启用的并行构建。可以使用此标记并行构建 AWS SAM 模板的函数和层。默认情况下,函数和层是按顺序构建的。
--cached 启用缓存的构建。使用此标记可重用尚未从之前的构建更改的构建构件。AWS SAM 评估您是否对项目目录中的文件进行了任何更改。 注意: AWS SAM 不会评估是否对项目所依赖的第三方模块进行了更改(您尚未提供特定版本)。例如,如果您的 Python 函数包含一个具有条目 requirements.txtrequests=1.x 文件,并且最新请求模块版本从 1.1 更改为 1.2,则在您运行非缓存版本之前,AWS SAM 不会拉取最新版本。
--cache-dir 指定 --cached 时存储缓存构件的文件夹。默认缓存目录为 .aws-sam/cache
--profile TEXT 获取 AWS 凭证的凭证文件中的特定配置文件。
--region TEXT 要部署到的 AWS 区域。例如,us-east-1。
--config-file PATH 包含要使用的默认参数值的配置文件的路径和文件名。默认值为项目根目录中的“samconfig.toml”。有关配置文件的详细信息,请参阅 AWS SAM CLI 配置文件
--config-env TEXT 在配置文件中指定要使用的默认参数值的环境名称。默认值为“default”。有关配置文件的详细信息,请参阅 AWS SAM CLI 配置文件
--debug 打开调试日志记录以输出 AWS SAM CLI 生成的调试消息,并显示时间戳。
--help 显示此消息并退出。