Я впервые использую Пулуми. Я пробовал шаблон Saas отсюда: https://github.com/SimonHoiberg/saas-template
Первая ошибка при «пулуми вверх»
aws:lambda:Function (post-confirmation-fn):
error: 1 error occurred:
* error creating Lambda Function (1): InvalidParameterValueException: The runtime parameter of **nodejs14.x** is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs20.x) while creating or updating functions.
{
RespMetadata: {
StatusCode: 400,
RequestID: "bd01d1cb-9897-456f-89ab-2e75ea03f432"
},
Message_: "The runtime parameter of nodejs14.x is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs20.x) while creating or updating functions.",
Type: "User"
}
Итак, установил Node 21.7 и выполнил поиск NodeJs14 во всех файлах, изменив «nodejs14.x» на «nodejs21.x».
Затем появилась эта ошибка:
Type Name Plan Info
pulumi:pulumi:Stack serverless-aws-react-saas-saasTemplateBackend 1 error
Diagnostics:
pulumi:pulumi:Stack (serverless-aws-react-saas-saasTemplateBackend):
error: Running program 'C:\GitHub\SimonHoiberg-Saas-Template\saas-template-main\back-end/' failed with an unhandled exception:
TSError: ⨯ Unable to compile TypeScript:
resources/pulumi/resolvers/get-cognito-user/source.ts(12,5): error TS2322: Type '"nodejs21.x"' is not assignable to type '"dotnetcore2.1" | "dotnetcore3.1" | "dotnet6" | "go1.x" | "java8" | "java8.al2" | "java11" | "ruby2.5" | "ruby2.7" | "nodejs10.x" | "nodejs12.x" | "nodejs14.x" | "python2.7" | ... 5 more ... | undefined'.
Файл package.json содержал следующее:
{
"name": "serverless-aws-react-saas-back-end",
"devDependencies": {
"@types/node": "^14"
},
"dependencies": {
"@pulumi/aws": "^6.30.0",
"@pulumi/awsx": "^2.7.0",
"@pulumi/pulumi": "^3.0.0"
}
}
Я изменил это (обновил две версии pulumi/aws (и awsx):
{
"name": "serverless-aws-react-saas-back-end",
"devDependencies": {
"@types/node": "^14"
},
"dependencies": {
"@pulumi/aws": "^6.30.0",
"@pulumi/awsx": "^2.7.0",
"@pulumi/pulumi": "^3.0.0"
}
}
Я изменил две строки (в исходном коде) с:
runtime: 'nodejs14.x',
к
runtime: 'nodejs16.x',
(Я попробовал nodejs21.x, но он все еще не работал, похоже, что nodejs16.x поддерживается лучше всего.)
Я запустил «npm install», затем «pulumi up», и все сработало!