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.yaml 或 template.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-envTEXT-
在配置文件中指定要使用的默认参数值的环境名称。默认值为“default”。有关配置文件的详细信息,请参阅 AWS SAMCLI 配置文件。
--config-filePATH-
包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中,默认值为“samconfig.toml”。有关配置文件的详细信息,请参阅 AWS SAMCLI 配置文件。
--debug-
启用调试日志记录,以打印 AWS SAM CLI 生成的调试消息并显示时间戳。
--force-upload-
覆盖 Amazon S3 存储桶中的现有文件。指定此标志可上传构件,即使它们与 Amazon S3 存储桶中的现有构件匹配。
--help-
显示此消息并退出。
--image-repositoryTEXT-
此命令用于上传函数映像的 Amazon Elastic Container Registry (Amazon ECR) 的 URI。对于使用
Image包类型声明的函数是必需的。 --kms-key-idTEXT-
用于加密 Amazon S3 存储桶中静态构件的 AWS Key Management Service (AWS KMS) 密钥的 ID。如果未指定此选项,则 AWS SAM 会使用 Amazon S3 托管加密密钥。
--metadata-
(可选)要附加到模板中引用的所有构件的元数据的映射。
--no-progressbar-
将构件上传到 Amazon S3 时不显示进度条。
--output-template-filePATH-
命令写入打包模板的文件的路径。如果不指定路径,则命令将模板写入标准输出。
--profileTEXT-
凭证文件中用于获取 AWS 凭证的特定配置文件。
--regionTEXT-
要部署到的 AWS Region。例如,us-east-1。
--resolve-s3-
自动创建 Amazon S3 存储桶以用于打包。如果同时指定
--s3-bucket和--resolve-s3选项,则会出现错误。 --s3-bucketTEXT-
此命令用于上传构件的 Amazon S3 存储桶的名称。如果构件大于 51,200 字节,则需要
--s3-bucket或--resolve-s3选项。如果同时指定--s3-bucket和--resolve-s3选项,则会出现错误。 --s3-prefixTEXT-
上传到 Amazon S3 存储桶的构件名称中添加的前缀。前缀名称是 Amazon S3 存储桶的路径名称(文件夹名称)。这仅适用于以
Zip包类型声明的函数。 --save-params-
将您在命令行中提供的参数保存到 AWS SAM 配置文件中。
--signing-profilesLIST-
(可选)用于签署部署包的签名配置文件列表。此参数采用键值对列表,其中密钥是要签名的函数或层的名称,值是签名配置文件,可选的配置文件所有者用
:分隔。例如FunctionNameToSign=SigningProfileName1 LayerNameToSign=SigningProfileName2:SigningProfileOwner。 --template-file, --template, -tPATH-
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-bucketamzn-s3-demo-bucket