本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
sam build
本页提供 Amazon Serverless Application Model 命令行界面的参考信息 (Amazon SAM CLI) sam build
命令。
-
有关简介 Amazon SAM CLI,请参阅 什么是 Amazon SAMCLI?
-
有关使用方法的文档 Amazon SAM CLI
sam build
命令,请参阅使用 Amazon SAM 进行构建简介。
sam build
命令用于让应用程序为开发工作流程的后续步骤(例如,本地测试或部署到 Amazon Web Services 云)做好准备。
使用量
$
sam build
<arguments>
<options>
参数
- 资源 ID
-
可选。指示生成 Amazon SAM 在Amazon SAM 模板中声明的单个资源。指定资源的构建构件将是唯一可用于工作流程中后续命令的构建构件,即
sam package
和sam deploy
。
选项
--base-dir, -s
DIRECTORY
-
根据此目录解析函数或层的源代码的相对路径。如果要更改源代码文件夹相对路径的解析方式,请使用此选项。默认情况下,相对路径是根据 Amazon SAM 模板的位置进行解析的。
除了正在构建的根应用程序或堆栈中的资源外,此选项还应用嵌套应用程序或堆栈。
此选项适用于以下资源类型和属性:
-
资源类型:
AWS::Serverless::Function
属性:CodeUri
-
资源类型:
AWS::Serverless::Function
资源属性:Metadata
条目:DockerContext
-
资源类型:
AWS::Serverless::LayerVersion
属性:ContentUri
-
资源类型:
AWS::Lambda::Function
属性:Code
-
资源类型:
AWS::Lambda::LayerVersion
属性:Content
-
--beta-features | --no-beta-features
-
允许或拒绝测试版功能。
--build-dir, -b
DIRECTORY
-
已构建的构件的存储目录路径。使用此选项可移除此目录及其所有内容。
--build-image
TEXT
-
您要URI为构建提取的容器镜像。默认情况下,从 Amazon P ECR ublic 中 Amazon SAM 提取容器镜像。使用此选项可从其他位置提取映像。
您可以多次指定该选项。此选项的每个实例都可以采用字符串或键值对。如果您指定一个字符串,则URI它是用于应用程序中所有资源的容器镜像。例如,
sam build --use-container --build-image amazon/aws-sam-cli-build-image-python3.8
。如果您指定键值对,则键是资源名称,值是用于该资源的容器映像URI的值。例如sam build --use-container --build-image Function1=amazon/aws-sam-cli-build-image-python3.8
。如果使用键值对,您可以为不同的资源指定不同的容器映像。在指定了
--use-container
选项的情况下此选项才适用,否则会导致错误。 --build-in-source | --no-build-in-source
-
提供
--build-in-source
以便直接在源文件夹中生成项目。--build-in-source
选项支持以下运行时和构建方法:-
运行时 — 任意 Node.js 该
sam init --runtime
选项支持的运行时间。 -
构建方法:
Makefile
、esbuild
。
--build-in-source
选项与以下选项不兼容:-
--hook-name
-
--use-container
默认值:
--no-build-in-source
-
--cached | --no-cached
-
启用或禁用缓存的构建。使用此选项可以重复使用与之前版本相比未更改的构建工件。 Amazon SAM 评估您是否更改了项目目录中的任何文件。默认情况下,不会缓存构建。如果调用了
--no-cached
选项,将会覆盖 samcofig.toml 中的cached = true
设置。注意
Amazon SAM 不会评估在您未提供特定版本的情况下,您是否更改了项目所依赖的第三方模块。例如,如果您的 Python 函数包含带有该条目的
requirements.txt
文件requests=1.x
,并且最新的请求模块版本从更改1.1
为1.2
,则在运行非缓存版本之前, Amazon SAM 不会提取最新版本。 --cache-dir
-
在指定了
--cached
的情况下用于存储缓存构件的目录。默认缓存目录为.aws-sam/cache
。 --config-env
TEXT
-
在配置文件中指定要使用的默认参数值的环境名称。默认值为“default”。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件。
--config-file
PATH
-
包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中,默认值为“
samconfig.toml
”。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件。 --container-env-var, -e
TEXT
-
要传递到构建容器的环境变量。您可以多次指定该选项。此选项的每个实例都采用键值对,其中键是资源和环境变量,值是环境变量的值。例如:
--container-env-var Function1.GITHUB_TOKEN=TOKEN1 --container-env-var Function2.GITHUB_TOKEN=TOKEN2
。在指定了
--use-container
选项的情况下此选项才适用,否则会导致错误。 --container-env-var-file, -ef
PATH
-
包含容器环境变量值的JSON文件的路径和文件名。有关容器环境变量文件的更多信息,请参阅容器环境变量文件。
在指定了
--use-container
选项的情况下此选项才适用,否则会导致错误。 --debug
-
开启调试日志记录以打印调试消息 Amazon SAM CLI 生成,并显示时间戳。
--docker-network
TEXT
-
指定现有人员的名称或 ID Docker 联网那个 Lambda Docker 容器应与默认桥接网络一起连接。如果未指定,则 Lambda 容器仅连接到默认网桥 Docker 网络。
--exclude, -x
-
要从
sam build
中排除的资源的名称。例如,如果模板包含Function1
、Function2
和Function3
,并且您运行sam build --exclude Function2
,则只会构建Function1
和Function3
。 --help
-
显示此消息并退出。
--hook-name
TEXT
-
用于扩展的挂钩的名称 Amazon SAM CLI 功能。
可接受的值:
terraform
。 --manifest , -m
PATH
-
要使用的自定义依赖项清单文件(例如 package.json)的路径,而不是默认路径。
--no-use-container
-
允许您使用IDE工具包设置默认行为的选项。您也可以使用
sam build --no-use-container
在本地计算机上运行构建,而不是 docker 容器。 --parallel
-
启用并行构建。使用此选项并行构建 Amazon SAM 模板的函数和图层。默认情况下,函数和层是按顺序构建的。
--parameter-overrides
-
(可选)包含编码为键值对的 Amazon CloudFormation 参数覆盖的字符串。使用与 Amazon Command Line Interface (Amazon CLI) 相同的格式。例如:'
ParameterKey
=KeyPairName
,ParameterValue
=MyKey
ParameterKey
=InstanceType
,ParameterValue
=t1.micro
'。此选项与--hook-name
不兼容。 --profile
TEXT
-
您的凭证文件中用于获取 Amazon 凭证的特定个人资料。
--region
TEXT
-
Amazon Web Services 区域 要部署到的。例如,us-east-1。
--save-params
-
将您在命令行中提供的参数保存到 Amazon SAM 配置文件中。
--skip-prepare-infra
-
如果没有进行任何基础架构更改,则跳过准备阶段。使用
--hook-name
选项。 --skip-pull-image
-
指定命令是否应跳过下拉最新 Docker 映像获取 Lambda 运行时的操作。
--template-file, --template, -t
PATH
-
Amazon SAM 模板文件的路径和文件名
[default: template.[yaml|yml]]
。此选项与--hook-name
不兼容。 --terraform-project-root-path
-
包含您的顶级目录的相对或绝对路径 Terraform 配置文件或函数源代码。如果这些文件位于包含您的目录之外 Terraform root 模块,使用此选项指定其绝对路径或相对路径。此选项要求将
--hook-name
设置为terraform
。 --use-container
,-u
-
如果函数依赖于具有本地编译的依赖项的程序包,请使用此选项在类似于 Lambda 的 Docker 容器中构建函数。
示例
有关使用 sam build
子命令的详细示例和深入演练,请参阅使用 Amazon SAM 进行构建简介。