山姆·布莱德 - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

山姆·布莱德

Amazon Serverless Application Model命令行界面 (Amazon SAMCLI)sam build 命令的选项。

用量

$ sam build <arguments> <options>

Arguments

参数 描述
RESOURCE_LOGICAL_ID 可选。指示Amazon SAM构建Amazon SAM模板中声明的单个资源。指定资源的构建工件将是工作流程中唯一可用于后续命令的构件,即sam packagesam deploy

选项

选项 描述
--hook-name TEXT

用于扩展Amazon SAM CLI 功能的挂钩的名称。

可接受的值:terraform.

--skip-prepare-infra 如果未对基础架构进行任何更改,则跳过准备阶段。与--hook-name选项一起使用。
-b, --build-dir DIRECTORY 存储已建构件的目录路径。使用此选项可删除此目录及其所有内容。
-s, --base-dir DIRECTORY 解析相对于该目录的函数或图层源代码的相对路径。如果要更改解析源代码文件夹相对路径的方式,请使用此选项。默认情况下,相对路径是相对于Amazon SAM模板的位置进行解析的。

除了您正在构建的根应用程序或堆栈中的资源外,此选项还应用嵌套应用程序或堆栈。

此选项适用于以下资源类型和属性:

  • 资源类型:AWS::Serverless::Function属性:CodeUri

  • 资源类型:AWS::Serverless::Function资源属性:Metadata条目:DockerContext

  • 资源类型:AWS::Serverless::LayerVersion属性:ContentUri

  • 资源类型:AWS::Lambda::Function属性:Code

  • 资源类型:AWS::Lambda::LayerVersion属性:Content

-u, --use-container 如果您的函数依赖于具有原生编译依赖项的包,请使用此选项在类似 Lambda 的 Docker 容器中构建您的函数。
-e, --container-env-var TEXT 要传递到构建容器的环境变量。您可以多次指定该选项。此选项的每个实例都采用一个键值对,其中键是资源和环境变量,值是环境变量的值。例如:--container-env-var Function1.GITHUB_TOKEN=TOKEN1 --container-env-var Function2.GITHUB_TOKEN=TOKEN2

此选项仅在指定该--use-container选项时适用,否则会导致错误。

-ef, --container-env-var-file PATH 包含容器环境变量值的 JSON 文件的路径和文件名。有关容器环境变量文件的更多信息,请参阅容器环境变量文件

此选项仅在指定该--use-container选项时适用,否则会导致错误。

--build-image TEXT

您要下拉最新镜像获取 Builder。默认情况下,从 Amazon ECR Public 中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选项时适用,否则会导致错误。

-m, --manifest PATH 要使用的自定义依赖项清单文件(例如 package.json)的路径,而不是默认路径。
-t, --template-file, --template PATH Amazon SAM模板文件的路径和文件名[default: template.[yaml|yml]]。此选项与不兼容--hook-name
--parameter-overrides (可选)包含Amazon CloudFormation编码为键值对的字符串。使用与Amazon Command Line Interface (Amazon CLI) 相同的格式。例如:'ParameterKey=KeyPairName、=、ParameterValueMyKeyParameterKey =InstanceTypeParameterValue =t1.micro'。此选项与不兼容--hook-name
--skip-pull-image 指定命令是否应跳过下拉最新 Docker 镜像获取 Lambda 运行时的操作。
--docker-network TEXT 指定 Lambda Docker 容器应连接到的现有 Docker 网络的名称或 ID,以及默认的桥接网络。如果未指定此项,Lambda 容器将仅连接到默认的桥接 Docker 网络。
--beta-features | --no-beta-features 允许或拒绝测试版功能。
--parallel 启用parallel 构建。使用此选项可parallel 构建Amazon SAM模板的功能和层。默认情况下,函数和层是按顺序构建的。
--cached | --no-cached 启用或禁用缓存构建。使用此选项可重用与先前版本相比没有更改的编译工件。 Amazon SAM评估您是否更改了项目目录中的任何文件。默认情况下,编译版本不会被缓存。如果调用该--no-cached选项,它将覆盖 samcofig.toml 中的cached = true设置。注意:Amazon SAM不评估您是否更改了项目所依赖的第三方模块,而您没有提供特定版本。例如,如果您的 Python 函数包含带有条目的requirements.txtrequests=1.x文件,并且最新的请求模块版本从1.1更改为,则在运行非缓存版本之前Amazon SAM不会提取最新版本。1.2
--cache-dir 指定时存储缓存构件--cached的目录。默认的缓存目录是.aws-sam/cache
-x, --exclude 要从 SAM CLI 版本中排除的资源的名称。例如,如果您的模板包含Function1Function2、和,Function3并且您运行sam build --exclude Function2,则只Function3会生成Function1和。
--profile TEXT 您的凭证文件中用于获取Amazon证书的特定配置文件。
--region TEXT 要部署到的Amazon区域。例如,us-east-1。
--config-file PATH 包含要使用的默认参数值的配置文件的路径和文件名。项目目录根目录中的默认值为samconfig.toml “”。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件
--config-env TEXT 环境名称,用于指定要使用的配置文件中的默认参数值。默认值为 “默认”。有关配置文件的详细信息,请参阅 Amazon SAM CLI 配置文件
--debug 打开调试日志记录以打印Amazon SAM CLI 生成的调试消息并显示时间戳。
--help 显示此消息并退出。