Как добавить параметры для указанных c Lambdas в зависимости от того, из какого хранилища они развертываются? - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь изменить настройку максимального возраста события для Lambdas, используя скрипт bash. В настоящее время сервер не поддерживает этот параметр, поэтому я планирую выполнить его как сценарий bash после развертывания из GitHub.

Подход:

Я рассматриваю вопрос aws для Lambdas в заданном c стеке CloudFormation. Я предполагаю, что при развертывании репо создается новый стек CF. Затем я хочу перебрать функции и с помощью put-function-event-invoke-config изменить максимальный возраст события для каждой лямбды.

Проблема:

Кажется, для put-function-event-invoke-config требуется имя функции При запросе стеков CF вместо этого я получаю лямбда-ARN. Я мог бы сделать некоторые манипуляции со строками, чтобы получить только лямбда-имя, но это кажется грязным способом сделать это.

Я на правильном пути с этим? Есть ли лучший способ?

Редактировать:

Лямбды уже существуют и были развернуты. Я думаю, что мне нужно сделать, это запустить какой-то скрипт, который может go просмотреть список лямбд, которые были развернуты из одного репозитория (в одной среде развернуто несколько репо), и изменить максимальное настройка возраста события по умолчанию 6 часов.

Вот пример выходных данных, когда я использую CLI для запроса CFN с aws cloudformation describe-stacks:

 {
        "StackId": "arn:aws:cloudformation:us-east-1:***:stack/my-repository-name/0sdg70gfs-6124-12ea-a910-93c4ahj3d140",
        "StackName": "my-repository-name",
        "Description": "The AWS CloudFormation template for this Serverless application",
        "CreationTime": "2019-11-18T22:05:44.246Z",
        "LastUpdatedTime": "2019-03-19T23:26:04.382Z",
        "RollbackConfiguration": {},
        "StackStatus": "UPDATE_COMPLETE",
        "DisableRollback": false,
        "NotificationARNs": [],
        "Capabilities": [
            "CAPABILITY_IAM",
            "CAPABILITY_NAMED_IAM"
        ],
        "Outputs": [
            {
                "OutputKey": "TestLambdaFunctionQualifiedArn",
                "OutputValue": "arn:aws:lambda:us-east-1:***:function:my-test-function:3",
                "Description": "Current Lambda function version"
            },

Я знаю, что можно выполнить эту команду, чтобы изменить максимальный возраст события :

$ aws lambda --region us-east-1 put-function-event-invoke-config --function-name my-test-function --maximum-event-age-in-seconds 3600

Но, похоже, требуется --function-name, которого я не вижу в выводе CFN в запросе выше.

Как программно go выполнить все функции в стеке CFN и изменить настройки для максимального возраста события?

1 Ответ

0 голосов
/ 22 апреля 2020

put-function-event-invoke-config принимает ARN, что означает, что можно запрашивать CFN на основе имен стеков, которые соответствуют репо, из которого он был развернут.

Однако я решил использовать list-functions для запроса Lambdas, а затем list-tags, потому что наши развертывания помечены именами репо. Это казалось лучшим вариантом, чем запрашивать CFN (также выходные ARN CFN содержат суффикс, который означает, что put-function-event-invoke-config не будет работать на них).

Затем я могу запустить вывод текста через a для l oop в bash и использовать put-function-event-invoke-config для добавления параметра максимального возраста события.

...