在无服务器项目中,如何才能将一个Lambda函数的ARN部署到同一项目中的另一个项目中?

时间:2019-10-18 17:12:52

标签: serverless-framework aws-serverless cross-reference

我正在开发一种Web服务,其中一个Lambda函数可处理来自Web浏览器的请求。此请求处理启动了一些可以异步完成的慢工作,因此我有一个单独的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    

问题是如何在不进行硬编码的情况下将AsyncWorker Lambda函数的ARN放入FrontEnd Lambda函数的环境变量中?我在那里需要它来invoke AsyncWorker Lambda。

1 个答案:

答案 0 :(得分:1)

我认为最好的方法是使用serverless-pseudo-parameters plugin,然后执行以下操作:arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:AsyncService-dev-AsyncWorker