Пулуми — ошибки на NodeJS14 — попытка переключиться на NodeJS21 — невозможно скомпилировать TypeScript

Я впервые использую Пулуми. Я пробовал шаблон 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'.
Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Как заставить Remix работать с Mantine и Cloudflare Pages/Workers
Как заставить Remix работать с Mantine и Cloudflare Pages/Workers
Мне нравится библиотека Mantine Component , но заставить ее работать без проблем с Remix бывает непросто.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
TypeScript против JavaScript
TypeScript против JavaScript
TypeScript vs JavaScript - в чем различия и какой из них выбрать?
Синхронизация localStorage в масштабах всего приложения с помощью пользовательского реактивного хука useLocalStorage
Синхронизация localStorage в масштабах всего приложения с помощью пользовательского реактивного хука useLocalStorage
Не все нужно хранить на стороне сервера. Иногда все, что вам нужно, это постоянное хранилище на стороне клиента для хранения уникальных для клиента...
Что такое ленивая загрузка в Angular и как ее применять
Что такое ленивая загрузка в Angular и как ее применять
Ленивая загрузка - это техника, используемая в Angular для повышения производительности приложения путем загрузки модулей только тогда, когда они...
0
0
88
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Файл 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», и все сработало!

Другие вопросы по теме