Последний лямбда-слой ARN

У меня есть лямбда-слой, который я постоянно обновляю. Этот лямбда-слой имеет несколько версий. Как я могу найти лямбда-слой ARN с последней версией, используя aws cli?

2 ответа

Решение

Я могу сделать это с помощью команды, перечисленной ниже -

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

К сожалению, в настоящее время это невозможно (я столкнулся с той же проблемой).

Вы можете хранить последнюю версию ARN в своем собственном месте (например, DynamoDB) и обновлять ее всякий раз, когда вы публикуете новую версию слоя.

Вы можете создать собственный макрос, чтобы получить последнюю версию лямбда-слоя и использовать ее в качестве справочника.

Следующая функция получает последнюю версию из стека Lambda Layer:

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
Другие вопросы по тегам