В проекте без сервера, как можно получить ARN одной функции Lambda, развернутой в другом проекте в том же проекте? - PullRequest
0 голосов
/ 18 октября 2019

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

Это развертывается как Serverless проект. Файл serverless.yml выглядит следующим образом:

service: AsyncService

frameworkVersion: '=1.54.0'

provider:
  name: aws
  runtime: go1.x

package:
  exclude:
    - ./**
  include:
    - ./bin/**

functions:
  FrontEnd:
    handler: bin/FrontEnd
    events:
      - http:
          path: processData
          method: post    
    environment:
      AsyncWorkerARN: ???

  AsyncWorker:
    handler: bin/AsyncWorker    

Вопрос в том, как я могу получить ARN функции AsyncWorker Lambda в переменную окружения функции FrontEnd Lambda без ее жесткого кодирования? Мне нужно, чтобы он мог вызывать AsyncWorker Lambda.

1 Ответ

1 голос
/ 11 ноября 2019

Я думаю, что лучший способ - использовать плагин serverless-pseudo-parameters , а затем сделать что-то вроде: arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:AsyncService-dev-AsyncWorker

...