Предоставление CloudWatch доступа к лямбда-функции, развернутой с использованием бессерверной платформы

Моя проблема

Я пишу лямбда-функцию, используя бессерверную структуру.

Функция вызывается HTTP-запросом. Он анализирует параметры запроса, извлекает некоторые журналы из группы CloudWatch и выполняет потоковую передачу в соответствии с параметрами и отвечает со сводкой журналов.

Я хотел бы предоставить CloudWatch доступ для чтения к функции Lambda с использованием бессерверного файла конфигурации.

Код

Определение функции (serverless.yml) довольно простое:

service: adam-test-sls
provider:
  name: aws
  runtime: nodejs6.10
  region: eu-central-1
functions:
  hello:
    handler: handler.hello
    events:
      - http:
          path: hello
          method: get

Что я пробовал

  • Поиск на форумах безсерверных фреймворков
  • Гугл-фу
  • Документация по AWS CloudFormation (бессерверная платформа создает файлы CloudFormation из своей конфигурации YAML)

Мой вопрос

Как предоставить разрешения на чтение (и / или запись), которые позволят этой функции Lambda получать доступ к определенным журналам CloudWatch?




Ответы (1)


Бессерверная версия позволяет вам определять роль IAM по умолчанию для всех функций (которые по умолчанию должны иметь доступ к CloudWatch)

Также по умолчанию ваши Lambda-функции имеют разрешение на создание журналов CloudWatch и запись в них.

Вы также можете точно настроить роль IAM для всех функций или даже предоставить детализированные разрешения для каждой функции с помощью атрибута role.

Ссылка здесь

person Pierre    schedule 11.07.2017
comment
Таким образом, я могу использовать существующую роль или определить ее в файле. В последнем случае и при условии, что мне нужно больше, чем журналы CloudWatch - где я могу найти подходящую документацию относительно сопоставления между serverless.yaml и CloudFormation? - person Adam Matan; 11.07.2017
comment
Нет никакой магии. Синтаксис определения роли файла serverless.yaml в точности совпадает с синтаксисом YAML CloudFormation для IAM (docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/). Бессерверная структура не выполняет никаких преобразований. - person Pierre; 11.07.2017
comment
Идеально. Спасибо! - person Adam Matan; 11.07.2017