使用Serverless Framework部署AWS Lambda函数时,Serverless会创建(或接收)特定的URL端点字符串。我想在
serverless.yml
规范文件的另一部分中使用该字符串(作为变量)。那个URL端点在serverless.yml
中可用作变量吗?Serverless Framework文档关于AWS相关变量似乎没有回答这个问题。
细节:我的serverless.yml
包含类似于以下的provider:
规范:
provider:
name: aws
runtime: python3.6
memorySize: 512
region: ${opt:region, 'eu-west-1'}
profile: ${opt:profile, 'default'}
stage: ${opt:stage, 'staging'}
以及一个以functions:
开头的部分:
functions:
round-control:
name: ${self:provider.stage}-round-control
runtime: nodejs8.10
handler: round/control/app.lambdaHandler
events:
- http:
path: round/control
method: get
在执行serverless deploy --profile [my-aws-profile]
命令后,Lambda函数sample-experiments-staging-round-control
会被部署,并且其访问端点为https://1a234bc5de.execute-api.eu-west-1.amazonaws.com/staging/round/control
。
问题:是否有一个Serverless变量包含1a234bc5de
、1a234bc5de.execute-api
,甚至是1a234bc5de.execute-api.eu-west-1.amazonaws.com
?(如果知道第一个参数,显然我也可以构造出后面两个参数。)
有了这个变量,我可以构建完整的URL终结点,并在serverless.yml
文件的其他位置中使用它。
注意:1a234bc5de
不是动态生成的随机字符串 - 我当前的项目(每个阶段,每个地区)都“固定”为相同的字符串。也许该字符串是在AWS Lambda或AWS API Gateway中生成的?
资源上的
Ref`包含该ID。 - Jochem Schulenklopper