有没有办法防止别名在部署时重置?

时间:2019-10-29 16:20:28

标签: serverless-framework

我已经使用无服务器设置了CloudFront发行版,并带有几个默认别名。别名可以在serverless.yaml配置范围之外进行更新。分发配置方面发生某些变化时,是否可以防止别名在每次部署时重置为默认值?

如果分发配置没有任何变化,则不会使用默认值重置任何内容。在第一次部署后,我可能会尝试删除别名,以确保从那时起所有配置都不会更新,但这不是工作配置的理想方法。

# serverless.yaml
...
resources:
  Resources:
    myLovelyDistribution:
      Type: AWS::CloudFront::Distribution
      Properties:
        DistributionConfig:
          Aliases:
            - alias1
            - alias2
...

最初,我希望别名部署在每个部署上均保持不变,尽管在serverless.yaml配置范围之外进行了任何更新。既然不是这种情况,如果仅更新发行版,是否有办法强制合并或防止任何重置?

谢谢!

1 个答案:

答案 0 :(得分:0)

否,这是您所无法描述的。但是,我确实有一个想法可供您考虑,但首先要警告...

我必须提醒您您似乎已经知道的内容:使用多种工具和方法更新配置通常是不明智的。只选择一个,然后坚持下去。

现在我的想法是:当面对这些类型的挑战时,我喜欢使用键/值存储将多个工具/方法“粘合”在一起。大多数人都使用“系统管理器”区域中的AWS Parameter Store。

# serverless.yaml
...
resources:
  Resources:
    myLovelyDistribution:
      Type: AWS::CloudFront::Distribution
      Properties:
        DistributionConfig:
          Aliases: [${ssm:/path/to/this/service/CloudFront/Aliases}] 
...

现在,您提到的该过程不在serverless.yaml的范围内,可以由awscli aws ssm put-parameter --parameter-name /path/to/this/service/CloudFront/Aliases --value alias1,alias2,alias3或AWS控制台由人来更新。