#aws-lambda #terraform #aws-lambda-layers
Вопрос:
У меня есть лямбды, которые ссылаются на слой, этот слой поддерживается кем-то другим, и когда выходит новая версия, я должен обновить свой код терраформирования, чтобы поместить последнюю версию в arn (здесь 19).
Есть ли способ в сценарии terraform получить последнюю версию и использовать ее?
module "lambda_function" {
source = "terraform-aws-modules/lambda/aws"
function_name = "my-lambda1"
description = "My awesome lambda function"
handler = "index.lambda_handler"
runtime = "python3.8"
source_path = "../src/lambda-function1"
tags = {
Name = "my-lambda1"
}
layers = [
"arn:aws:lambda:eu-central-1:587522145896:layer:my-layer-name:19"
]
}
Спасибо.
ps : это означает, что сценарий терраформирования слоя не в моем, это другой сценарий, к которому у меня нет доступа.
Ответ №1:
Вы можете использовать aws_lambda_layer_version
источник данных, чтобы узнать последнюю версию.
Например:
module "lambda_function" {
source = "terraform-aws-modules/lambda/aws"
function_name = "my-lambda1"
description = "My awesome lambda function"
handler = "index.lambda_handler"
runtime = "python3.8"
source_path = "../src/lambda-function1"
tags = {
Name = "my-lambda1"
}
layers = [
data.aws_lambda_layer_version.layer_version.arn
]
}
data "aws_lambda_layer_version" "layer_version" {
layer_name = "my-layer-name"
}
Комментарии:
1. кстати, я посмотрел документ, но в нем не говорится о идентификаторе учетной записи, что делать, если я хочу использовать лямбду, которая находится в другой учетной записи? невозможно использовать источник данных?