AWS - ключи API доступны в автономной среде без сервера?

Я использую Serverless Offline для разработки веб-проекта.

Мне нужны ключи API для доступа к ресурсу на безсерверной AWS Lamda.

У меня есть serverless.yml с моим сервисом и провайдером.

В Почтальоне, я получаю доступ к своему маршруту ( http://127.0.0.1:3333/segments/UUID/test), и у меня нет никаких ошибок (как запрещенное сообщение), Lambda выполняется...

test:
  handler: src/Api/segment.test
  events:
    - http:
        path: segments/{segmentUuid}/test
        method: post
        request:
          parameters:
            paths:
              segmentUuid: true
        private: true

Рассматриваемый маршрут не защищен частным.

4 ответа

https://www.npmjs.com/package/serverless-offline

Автономный сервер будет эмулировать поведение APIG и создавать случайный токен, который выводится на экран. С помощью этого токена вы можете получить доступ к вашим закрытым методам, добавив x-api-key: generateToken в заголовок вашего запроса. Все ключи API будут использовать один и тот же токен. Чтобы указать свой токен, используйте опцию --apiKey cli.

Команда будет выглядеть так:

sls offline --apiKey any-pregenerated-key

Для локального разработчика используйте это внутри serverless.yml:

      custom:
  serverless-offline:
    apiKey: 'your-key-here'

Или это внутри serverless.ts:

       custom: {
    'serverless-offline': {
      apiKey: 'your-key-here',
    },
  },

Учитывая последние изменения, эта конфигурация работала для меня в автономном режиме без сервера:

        provider: {
    name: 'aws',
    region: region,
    runtime: 'nodejs14.x',
    stage: stage,
    apiGateway:{
      apiKeys: [{
        name: 'test name',
        value: 'sadasfasdasdasdasdafasdasasd'
      }],
    },
  },

https://github.com/dherault/безсерверный-оффлайн/issues/963

бессерверный автономный режим удален--apiKeyкак параметр cli как часть v11.0.0 . Документация на https://www.serverless.com/plugins/serverless-offline в настоящее время устарела: «Чтобы указать собственный токен, используйте опцию --apiKey cli». необходимо удалить.

МИГРАЦИЯ: если вы хотите указать значение apiKey самостоятельно, определите его в поле «провайдер.apiGateway.apiKeys» в бессерверной конфигурации.

В выпуске Issues/1608 происходит обсуждение ; Ответ dnalborczyk должен дать больше информации: https://github.com/dherault/serverless-offline/issues/1608#issuecomment-1306200311 .

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