【问题标题】:Serverless Framework - Reference Layer sans version, or always latest version无服务器框架 - 参考层无版本,或始终为最新版本
【发布时间】:2020-05-17 06:33:57
【问题描述】:

我有一个独立于任何函数的文件中定义的层,我的函数依赖于层。

如果我部署层,我会获得层的新版本号,我必须重新部署依赖于层的所有项目才能使用新的层版本。

有没有办法让函数引用单独定义的层,没有版本号,或者函数总是引用最新版本?

下面是定义层的serverless.yaml(括号中有一些替换)。

service: layer-dev-npm

provider:
  name: aws
  runtime: nodejs12.x
  region: us-east-1
  profile: [profile-name]
  deploymentBucket:
    name: [bucket-name]

layers:
  LayerDevNPM:
    path: nodejs
    description: "npm dependencies"

非常感谢!

【问题讨论】:

  • 嗨,我认为您可以使用 Ref 来获取 arn 的名称,例如 {Ref: LayerDevNPM} 。另外,为什么要删除图层而不是更新代码?谢谢!
  • @pepo,感谢您的评论。我的理解是,如果层是在引用它的同一文件中定义的,我只能使用 {Ref: LayerDevNPM}。我的图层在单独的文件中定义(更新帖子以反映这一点)。如果我错了,那么我很乐意看到有关如何执行此操作的示例或说明。
  • 嗨@skip,我认为您可以使用Fn::ImportValue,但您需要确保其他堆栈正在导出您需要的值(例如图层)。一些文档链接:docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/…docs.aws.amazon.com/cli/latest/reference/cloudformation/…

标签: aws-lambda serverless-framework


【解决方案1】:

每当您部署模板时,它也会为图层创建新版本。 所以,我会建议单独部署层,然后像这样使用 lambda 中的版本。

layers: - arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:layer:layerName:1(layer version)

【讨论】:

    猜你喜欢
    • 2021-10-20
    • 2023-03-09
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 2022-10-15
    • 1970-01-01
    相关资源
    最近更新 更多