Получите информацию об уже использованной функции AWSLambda для создания аналогичного шаблона развертывания. - PullRequest
1 голос
/ 12 марта 2019

Есть ли возможность получить всю информацию, которая мне нужна для развертывания лямбда-функции со всеми необходимыми ей зависимостями (разрешения, политики, файлы событий вызова) для автоматического развертывания ее позже из шаблона через AWS SAM CLI (или что-либо еще)аналогично)?

Есть ли возможность отследить, как впоследствии была установлена ​​лямбда-функция, без использования элементов пользовательского интерфейса, чтобы это можно было сделать в автоматическом режиме?

Я планирую собратьмодель безсерверного приложения из уже развернутого безсерверного приложения в AWS Lambda.Я не борюсь за развертывание функции на какой-либо платформе, но хочу изучить возможность получения безсерверного приложения от одного поставщика (здесь: AWS) и его миграции на другую платформу (скажем, Azure) в автоматическом режиме.Это именно тот план.Насколько я знаю, все существующие платформы ориентированы на независимое от поставщика развертывание функций без сервера, но я хочу взять одну функцию со всеми ее архитектурными связями (например, события, основанные на триггерах S3) и перенести ее на платформу другого поставщика с сопоставимыми Сервисами.

TLDR: я хочу извлечь уже существующую развернутую лямбда-функцию и получить информацию, аналогичную информации, которую я передаю в шаблоне SAM CLI для первоначального развертывания функции без сервера в AWS.

Одна функция можетбыть распространенным примером создания миниатюр с помощью S3-контейнеров .

1 Ответ

1 голос
/ 12 марта 2019

Вы пробовали Terraform?

Terraform может возвращать выходные данные и устанавливать лямбды и инфраструктуру в виде кода, поэтому вы должны легко развернуть другую лямбду, используя только одну команду terraform apply в вашем клике.

Начиная использовать terraform, сначала немного узнать о установке terraform

Создать main.tf, variables.tf, output.tf и terraform.tfvars

Используйте git для создания версий своего кода terraform, после того, как вы научитесь использовать terraform, вы должны научиться создавать модулей terraform , потому что использование этого является самым сильным способом его использования.

Вы должны добавить код terraform в main.tf, помните, что вам всегда нужно ссылаться на новую переменную, когда вам нужно использовать ее в variables.tf файле. переменные установлены в terraform.tfvars, output.tf будет иметь ссылку на атрибут, которая вам нужна для возврата значений с помощью команды вывода terraform, или вы можете использовать выходные данные в качестве переменных в другой конфигурации terraform.

Для применения Policies или Roles вы можете сделать это в файле .tpl и создать шаблонную функцию terraform .

Начало работы с лямбдой:

Terraform Лямбда-документация: https://www.terraform.io/docs/providers/aws/r/lambda_function.html

Вы должны заархивировать свой код и добавить имя файла zip в ссылку source_code_hash, а затем загрузить его, используя эту конфигурацию terraform. Вы можете следовать тому же примеру документации лямбды terraform.

После того, как лямбда развернута как модуль, вы можете использовать следующую команду terraform output -module =

Например, сетевой модуль amazon-web-service может возвращать следующую информацию, но так же, как вы можете использовать лямбда-вывод для получения некоторой информации о данных, как показано ниже:

application_subnet_cidrs = [
    172.26.36.0/24,
    172.26.38.0/24
]
application_subnets = [
    subnet-0cc58542e12abf485,
    subnet-0bab1bffc0af1b14e
]
persistence_subnet_cidrs = [
    172.26.39.0/24,
    172.26.40.0/24
]
persistence_subnets = [
    subnet-0db668829e4849612,
    subnet-031c4ff888b1e3d3b
]
public_subnets = [
    subnet-096db791faf60cc20,
    subnet-04a305177a6bac31c
]
vpc_id = vpc-0f2fdb66b7ae73e5c

Надеюсь, это поможет вам

...