Последний лямбда-слой 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