【发布时间】: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