最新的 Lambda 层 ARN

Latest Lambda Layer ARN

我有一个不断更新的 lambda 层。这个 lambda 层有多个版本。如何使用 aws cli 找到最新版本的 lambda 层 ARN?

很遗憾,目前无法实现(我也遇到过同样的问题)。

您可以将最新的 ARN 保存在您自己的位置(例如 DynamoDB),并在您发布新版本的层时更新它。

我可以使用下面列出的命令执行此操作 -

aws lambda list-layer-versions --layer-name <layer name> --region us-east-1 --query 'LayerVersions[0].LayerVersionArn'

您可以创建自定义宏以获取最新的 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