如何在 Serverless Framework 的“serverless.yml”文件中获取 URL 端点详细信息作为变量?
How to get URL endpoint detail as variable in Serverless Framework's `serverless.yml` file?
使用Serverless Framework
部署 AWS Lambda 函数,无服务器创建(或接收)
具体 URL 端点字符串。我想使用那个字符串(作为变量)
在 serverless.yml
规范文件的另一部分。
URL 端点是否可用作 serverless.yml
中的变量?
Serverless Framework documentation on AWS-related variables
似乎没有回答那个案例。
详细信息:我的 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
文件的另一个地方。
N.B。 1a234bc5de
不是动态生成的随机数
string - 我当前的项目是(每个阶段,每个区域)'fixed' 到
相同的字符串。也许该字符串是在 AWS Lambda 或
AWS API 网关?
我能够将 URL 和 API 网关端点的唯一 ID 作为环境变量传递给 Lambda 函数,如下所示:
mylambda:
handler: mylambda.handler
runtime: python3.7
events:
- http:
path: id
cors: true
environment:
APIG_UID: !Ref "ApiGatewayRestApi"
APIG_URL:
!Join
- ''
- - 'https://'
- !Ref ApiGatewayRestApi
- '.execute-api.'
- ${opt:region, self:provider.region}
- '.amazonaws.com/'
- ${opt:stage, self:provider.stage}
使用Serverless Framework
部署 AWS Lambda 函数,无服务器创建(或接收)
具体 URL 端点字符串。我想使用那个字符串(作为变量)
在 serverless.yml
规范文件的另一部分。
URL 端点是否可用作 serverless.yml
中的变量?
Serverless Framework documentation on AWS-related variables
似乎没有回答那个案例。
详细信息:我的 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
文件的另一个地方。
N.B。 1a234bc5de
不是动态生成的随机数
string - 我当前的项目是(每个阶段,每个区域)'fixed' 到
相同的字符串。也许该字符串是在 AWS Lambda 或
AWS API 网关?
我能够将 URL 和 API 网关端点的唯一 ID 作为环境变量传递给 Lambda 函数,如下所示:
mylambda:
handler: mylambda.handler
runtime: python3.7
events:
- http:
path: id
cors: true
environment:
APIG_UID: !Ref "ApiGatewayRestApi"
APIG_URL:
!Join
- ''
- - 'https://'
- !Ref ApiGatewayRestApi
- '.execute-api.'
- ${opt:region, self:provider.region}
- '.amazonaws.com/'
- ${opt:stage, self:provider.stage}