CloudFormation: параметр времени выполнения nodejs6.10 больше не поддерживается для создания или обновления функций AWS Lambda. - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь обновить шаблон формирования облака, добавив в него несколько лямбда-функций.Последняя версия шаблона была развернута несколько лет назад, и все лямбда-функции в настоящее время имеют время выполнения node6.10 .

Я обновил время выполнения для всех функций до node10.x , но при развертывании шаблона я получаю следующее сообщение:

Параметр времени выполнения nodejs6.10 больше не поддерживается для создания или обновления функций AWS Lambda

Я создал набор изменений и рассмотрел его, и он включает обновление свойства времени выполнения для каждой лямбда-функции, однако Cloud Formation, похоже, игнорирует его.

Есть личто-то мне не хватает?

1 Ответ

0 голосов
/ 04 июля 2019

К сожалению, я обнаружил, что мне пришлось обновить среду выполнения всех функций в шаблоне за пределами Cloud Formation, чтобы получить стеки для развертывания. Я использовал этот скрипт:

const AWS = require('aws-sdk')

const lambda = new AWS.Lambda(...)

main().catch(err => {
    console.error(err)
    process.exit(1)
})

async function main() {
    const functions = await getFunctions()

    await Promise.all(
        functions
            // filter only functions you want to update
            .filter(...)
            .filter(x => x.Runtime !== 'nodejs10.x')
            .map(updateFunction)
    )
}

async function updateFunction(func) {
    await lambda
        .updateFunctionConfiguration({
            FunctionName: func.FunctionName,
            Runtime: 'nodejs10.x'
        })
        .promise()

    console.log(`function updated: ${func.FunctionName}`)
}

async function getFunctions() {
    let marker
    let functions = []

    do {
        const result = await lambda
            .listFunctions({
                Marker: marker
            })
            .promise()

        functions = [...functions, ...result.Functions]
        marker = result.NextMarker
    } while (marker)

    return functions
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...