У меня есть независимый лямбда-слой, arn извлекается с помощью приведенной ниже команды CLI.
aws lambda list-layer-versions --layer-name my-custom-lambda-layer --region us-east-1 --query 'LayerVersions[0].LayerVersionArn'
Как я могу сослаться на этот вывод в свой шаблон формирования облака, как показано ниже,
Resources:
Parameters:
MYLAYERARN: $(aws lambda list-layer-versions --layer-name my-custom-lambda-layer --region us-east-1 --query 'LayerVersions[0].LayerVersionArn')
Или используйте его непосредственно в любой из моих лямбда-функций, как показано ниже:
Resources:
MyLambdaFuntion:
handler: Hello.lambda_handler
timeout: 60
memorySize: 256
layers:
- $(aws lambda list-layer-versions --layer-name my-custom-lambda-layer --region us-east-1 --query 'LayerVersions[0].LayerVersionArn')
В настоящее время он не выполняет команду CLI AWS, а принимает команду CLI в качестве значения.





Это невозможно, так как вы не можете оценить такие выражения в шаблоне CloudFormation.
Самым простым решением было бы передать уже вычисленное выражение в качестве параметра.
В качестве альтернативы, если вам необходимо использовать решение CloudFormation, вы можете использовать макрос CloudFormation для вызова лямбда-функции, которая выполняет пользовательский код (в этом случае код будет иметь SDK, эквивалентный команде AWS CLI).
Подробнее о макросах CloudFormation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
Пример макроса: https://stackoverflow.com/a/70475459/3390419