Size: a a a

2020 November 10

S🕶

Sander 🕶 in AWS_RU
serverless invoke local --function functionName --contextPath lib/context.json
источник

S🕶

Sander 🕶 in AWS_RU
сейчас попробую
источник

S🕶

Sander 🕶 in AWS_RU
еще тогда один вопрос - пока все на месте
источник

S🕶

Sander 🕶 in AWS_RU
архитектурный вопрсо
источник

S🕶

Sander 🕶 in AWS_RU
как мне поднять инфраструктуру на aws lambda?
1) каждый проект у меня имеет свой serverless.yaml файл и отдельно/независимо деплоится, так же деплоится через github actions - после каждого коммита,
2) чтоб сделать между ними связь надо создать sns, sqs, dynamodb и прочее, это надо делать где-то в другом месте (так как копировать одни и те же настройки, в каждом lambda проекте будет странно) и я пришел к такому решению ->
создать github repository, который будет основным для всех проектов (то есть ты скачиваешь этот git repo, чтоб склонировать все остальные проекты, чтоб по одному не клонировать),
в нем и будет лежать serverless.yaml файл для настройки dynamodb, sns, sqs и прочего.
-----
1) этот способ я вычитал где-то в интернете,
2) это я уже сам придумал
3) если я первый раз разворачиваю проект, кроме инфраструктуры sqs, sns, dynamodb - как мне развернуть проекты? ведь каждый проект имеет свой serverless.yaml файл, конечно я могу просто bash скрипт запустить, но может быть если более правильный способ.
4) расскажите если я что-то не очень правильно делаю.
источник

АП

Агент Печенька... in AWS_RU
Ну для начала могу предложить посмотреть в сторону codebuild/codepipline/
источник

S🕶

Sander 🕶 in AWS_RU
ci/cd - я использую github actions, там ведь тоже можно протестировать код, сбилдить и задеплоить
источник

S🕶

Sander 🕶 in AWS_RU
вопрос только, когда разворачиваешь все в самый первый раз, тогда мне надо запустить вначале самый главный servelress.yaml,
а потом все остальные которые лежат в кадлом проекте,
источник

S🕶

Sander 🕶 in AWS_RU
не знаю как codebuild/codepipline - решает эти пробелмы
источник

S🕶

Sander 🕶 in AWS_RU
дайте знать если я что-то плохо объяснил или непонятно моя проблема
источник

V

Victor in AWS_RU
Sander 🕶
как мне поднять инфраструктуру на aws lambda?
1) каждый проект у меня имеет свой serverless.yaml файл и отдельно/независимо деплоится, так же деплоится через github actions - после каждого коммита,
2) чтоб сделать между ними связь надо создать sns, sqs, dynamodb и прочее, это надо делать где-то в другом месте (так как копировать одни и те же настройки, в каждом lambda проекте будет странно) и я пришел к такому решению ->
создать github repository, который будет основным для всех проектов (то есть ты скачиваешь этот git repo, чтоб склонировать все остальные проекты, чтоб по одному не клонировать),
в нем и будет лежать serverless.yaml файл для настройки dynamodb, sns, sqs и прочего.
-----
1) этот способ я вычитал где-то в интернете,
2) это я уже сам придумал
3) если я первый раз разворачиваю проект, кроме инфраструктуры sqs, sns, dynamodb - как мне развернуть проекты? ведь каждый проект имеет свой serverless.yaml файл, конечно я могу просто bash скрипт запустить, но может быть если более правильный способ.
4) расскажите если я что-то не очень правильно делаю.
Варианты:

1. Монорепа
2. Отдельная репа с инфраструктурой и шаринг созданных ресурсов либо через SSM parameter store (soft dependency) либо через Cloudformation Exports (Hard dependency)
источник

S🕶

Sander 🕶 in AWS_RU
Victor
Варианты:

1. Монорепа
2. Отдельная репа с инфраструктурой и шаринг созданных ресурсов либо через SSM parameter store (soft dependency) либо через Cloudformation Exports (Hard dependency)
пытаюсь понять что тут во 2, можешь пояснить пожалуйста вот эти вещи:
- шаринг созданных ресурсов
- Cloudformation Exports (Hard dependency)

я использую serverless, и создаю ресурсы через Resources, ну это и есть cloudformattion под капотом.
источник

V

Victor in AWS_RU
шаринг созданных ресурсов - это когда ты в инфраструктурной репе создаешь очередь, а использовать ее нужно в лямбде
на любой ресурс нужно каким-то образом сослаться
обычно для этого используется ARN
Вот эти ARN к-то передать
Не всегда их можно сгенерить на лету
источник

S🕶

Sander 🕶 in AWS_RU
- шаринг созданных ресурсов - это когда ты в инфраструктурной репе создаешь очередь, а использовать ее нужно в лямбде - ну если я все понял правильно, то вот я так и делаю, у меня основная репа, которая создает всю инфраструктуру.
- хмм разве там нужны "arn", для sqs например,
- я только не очень понял, как мне задеплоить все функции lambda например, когда я первый раз скачал инфраструктурную репо,
в этой репо я могу склонировать все свои проекты в одну папку и получится например:
каждая папка это проект со своей serverless.yaml

lambda1
lambda2
lambda3/serverless.yaml
serverless.yaml
README.md

я вот думал, может как-то из проектов можно взять serverless.yaml и по очериди запустить, баш скрипт это будет мне кажется не самое правильное решение.
источник

S🕶

Sander 🕶 in AWS_RU
вот и столкнулся с проблемой, я отправил в sqs объект, а получаю строку или все токи объект, в типах у меня строка
источник

S🕶

Sander 🕶 in AWS_RU
вот в body у меня строка, а если я все ткои отправил не строку а { test: 1} допустим, то что прийдет? мне надо делать JSON.parse() ?
источник

АП

Агент Печенька... in AWS_RU
Бывает такое, aws любит в поля пихать не объект а json этого объекта.
источник

АП

Агент Печенька... in AWS_RU
Да, JSON.parse().
источник

S🕶

Sander 🕶 in AWS_RU
хорошо что я это уточнил
источник

S🕶

Sander 🕶 in AWS_RU
Агент Печенька
Бывает такое, aws любит в поля пихать не объект а json этого объекта.
большое спасибо
источник