在无服务器项目中,如何获取将项目部署到同一项目中的另一个 Lambda 函数的 ARN?
In a Serverless project, how can one get the ARN of one Lambda function deployed a the project to another in the same project?
我正在开发一项 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。
我认为最好的方法是使用 serverless-pseudo-parameters plugin 然后执行类似的操作:arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:AsyncService-dev-AsyncWorker
我正在开发一项 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。
我认为最好的方法是使用 serverless-pseudo-parameters plugin 然后执行类似的操作:arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:AsyncService-dev-AsyncWorker