我有一个lambda层,我一直在更新。此lambda层具有多个版本。如何使用aws cli查找具有最新版本的lambda层ARN?
答案 0 :(得分:2)
您可以创建一个自定义宏以获取最新的lambda图层版本,并将其用作参考。
以下函数从Lambda层堆栈中获取最新版本:
import json
import boto3
def latest_lambdalayer(event, context):
fragment = get_latestversion(event['fragment'])
return {
'requestId': event['requestId'],
'status': 'success',
'fragment': fragment
}
def get_latestversion(fragment):
cloudformation = boto3.resource('cloudformation')
stack = cloudformation.Stack('ticketapp-layer-dependencies')
for o in stack.outputs:
if o['OutputKey']=='TicketAppLambdaDependency':
return o['OutputValue']
#return "arn:aws:lambda:eu-central-1:899885580749:layer:ticketapp-dependencies-layer:16"
您在定义Lambda层时会使用它-这里使用相同的全局模板:
Globals:
Function:
Layers:
- !Transform { "Name" : "LatestLambdaLayer"}
Runtime: nodejs12.x
MemorySize: 128
Timeout: 101
答案 1 :(得分:1)
不幸的是,目前不可能(我遇到了同样的问题)。
您可以将最新的ARN保留在自己的位置(例如DynamoDB),并在发布层的新版本时进行更新。
答案 2 :(得分:1)
我可以使用下面列出的命令执行此操作-
aws lambda list-layer-versions --layer-name <layer name> --region us-east-1 --query 'LayerVersions[0].LayerVersionArn'