我正在开发一种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。
答案 0 :(得分:1)
我认为最好的方法是使用serverless-pseudo-parameters plugin,然后执行以下操作:arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:AsyncService-dev-AsyncWorker