【问题标题】:sam package and deploy without packaged parameter filesam打包和部署不打包参数文件
【发布时间】:2021-01-12 04:47:04
【问题描述】:

我们的 sam package 命令是 -

sam package --template-file template.YML --output-template-file packaged-service.yml --s3-bucket $Template_Bucket_Name --s3-prefix service-build-$packagenumber

sam deploy 命令是 -

sam deploy packaged-service.yml --stack-name service --capabilities CAPABILITY_NAMED_IAM --region us-east-1 --s3-bucket $Template_Bucket_Name --s3-prefix service-deploy-$packagenumber --template-file template.YML --parameter-overrides  "ParameterKey=EnvType,ParameterValue=ftest" --no-fail-on-empty-changeset

packaged-service.yml 文件有什么意义?没有它我可以运行部署。那么它实现了什么目的呢?官方包和部署页面不清楚。 packaged-service.yml 有一个指向 s3 存储桶的 codeuri 字段。在上面的例子中,可能文件没有用? 如何在 aws sam deploy 命令期间使用元数据选项?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cloudformation aws-sam aws-sam-cli


    【解决方案1】:

    如果您使用的是最新版本的 SAM CLI,then this package step is now implicitly performed when you do a deploy.

    在早期版本的 SAM 中,如果您的 lambda 函数需要将依赖项打包到存档中,则需要 package 步骤。如果您的 Lambda 是单个 python 文件,这不是 100% 必要的,那么您可以直接访问deploy。 由于大多数 SAM 项目都比较复杂,package 帮助您将项目打包到存档中,将您的工件上传到 S3,然后重写您的 SAM yaml 以引用上传工件的新 S3 位置。

    我认为 AWS 团队最终发现这个打包步骤有点多余,而且几乎总是在部署之前执行,所以 they streamlined the process with an update made in November 2019 这使得这个过程变得更加简单。

    package 命令仍然包含在内,以实现向后兼容性,并在某些团队仍需要多阶段构建和部署过程时提供更大的灵活性。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2018-12-14
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2011-03-02
      • 2011-02-19
      相关资源
      最近更新 更多