sam package - AWS Serverless Application Model

sam package

AWS Serverless Application Model 命令行界面 (AWS SAM CLI) 打包 AWS SAM 应用程序。

此命令将创建一个包含代码和依赖项的 .zip 文件,并将该文件上传到 Amazon Simple Storage Service (Amazon S3)。AWS SAM 为 Amazon S3 中存储的所有文件启用加密。然后,它返回 AWS SAM 模板的副本,并将对本地构件的引用替换为此命令已将构件上传到的 Amazon S3 位置。

默认情况下,当您使用此命令时,AWS SAM CLI 会假设当前工作目录是项目的根目录。AWS SAM CLI 首先尝试查找使用 sam build 命令构建的模板文件,其位于 .aws-sam 子文件夹中,并命名为 template.yaml。接下来,AWS SAM CLI 尝试在当前工作目录中查找名为 template.yamltemplate.yml 的模板文件。如果您指定 --template 选项,则 AWS SAM CLI 的默认行为将被覆盖,并且只会打包该 AWS SAM 模板及其指向的本地资源。

注意

sam deploy 现在隐式执行 sam package 的功能。您可以直接使用 sam deploy 命令打包和部署应用程序。

使用量

$ sam package <arguments> <options>

参数

Resource ID

要打包的 Lambda 函数的 ID。

此参数是可选的。如果应用程序包含单个 Lambda 函数,则 AWS SAM CLI 会将其打包。如果应用程序包含多个函数,请提供用于打包单个函数的函数 ID。

有效值:资源的逻辑 ID 或资源 ARN。

选项

--config-env TEXT

在配置文件中指定要使用的默认参数值的环境名称。默认值为“default”。有关配置文件的详细信息,请参阅 AWS SAMCLI 配置文件

--config-file PATH

包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中,默认值为“samconfig.toml”。有关配置文件的详细信息,请参阅 AWS SAMCLI 配置文件

--debug

启用调试日志记录,以打印 AWS SAM CLI 生成的调试消息并显示时间戳。

--force-upload

覆盖 Amazon S3 存储桶中的现有文件。指定此标志可上传构件,即使它们与 Amazon S3 存储桶中的现有构件匹配。

--help

显示此消息并退出。

--image-repository TEXT

此命令用于上传函数映像的 Amazon Elastic Container Registry (Amazon ECR) 的 URI。对于使用 Image 包类型声明的函数是必需的。

--kms-key-id TEXT

用于加密 Amazon S3 存储桶中静态构件的 AWS Key Management Service (AWS KMS) 密钥的 ID。如果未指定此选项,则 AWS SAM 会使用 Amazon S3 托管加密密钥。

--metadata

(可选)要附加到模板中引用的所有构件的元数据的映射。

--no-progressbar

将构件上传到 Amazon S3 时不显示进度条。

--output-template-file PATH

命令写入打包模板的文件的路径。如果不指定路径,则命令将模板写入标准输出。

--profile TEXT

凭证文件中用于获取 AWS 凭证的特定配置文件。

--region TEXT

要部署到的 AWS Region。例如,us-east-1。

--resolve-s3

自动创建 Amazon S3 存储桶以用于打包。如果同时指定 --s3-bucket--resolve-s3 选项,则会出现错误。

--s3-bucket TEXT

此命令用于上传构件的 Amazon S3 存储桶的名称。如果构件大于 51,200 字节,则需要 --s3-bucket--resolve-s3 选项。如果同时指定 --s3-bucket--resolve-s3 选项,则会出现错误。

--s3-prefix TEXT

上传到 Amazon S3 存储桶的构件名称中添加的前缀。前缀名称是 Amazon S3 存储桶的路径名称(文件夹名称)。这仅适用于以 Zip 包类型声明的函数。

--save-params

将您在命令行中提供的参数保存到 AWS SAM 配置文件中。

--signing-profiles LIST

(可选)用于签署部署包的签名配置文件列表。此参数采用键值对列表,其中密钥是要签名的函数或层的名称,值是签名配置文件,可选的配置文件所有者用 : 分隔。例如 FunctionNameToSign=SigningProfileName1 LayerNameToSign=SigningProfileName2:SigningProfileOwner

--template-file, --template, -t PATH

AWS SAM 模板所在位置的路径和文件名。

注意

如果指定此选项,则 AWS SAM 只会打包模板及其指向的本地资源。

--use-json

CloudFormation 模板的输出 JSON。默认使用 YAML。

示例

以下示例为 Lambda 函数和 CodeDeploy 应用程序创建和打包构件。构件将上传到 Amazon S3 存储桶。命令的输出是名为 package.yml 的新文件。

$ sam package \ --template-file template.yml \ --output-template-file package.yml \ --s3-bucket amzn-s3-demo-bucket