Tim*_*Tim 10 aws-lambda aws-api-gateway aws-cdk
我正在尝试在单个堆栈中部署 S3 静态网站和 API 网关/lambda。
S3 静态站点中的 javascript 调用 lambda 来填充 HTML 列表,但它需要知道用于 lambda 集成的 API 网关 URL。
目前,我像这样生成了一个 RestApi ......
const handler = new lambda.Function(this, "TestHandler", {
runtime: lambda.Runtime.NODEJS_10_X,
code: lambda.Code.asset("build/test-service"),
handler: "index.handler",
environment: {
}
});
this.api = new apigateway.RestApi(this, "test-api", {
restApiName: "Test Service"
});
const getIntegration = new apigateway.LambdaIntegration(handler, {
requestTemplates: { "application/json": '{ "statusCode": "200" }' }
});
const apiUrl = this.api.url;
Run Code Online (Sandbox Code Playgroud)
但是在 cdk 部署上,apiUrl =
"https://${Token[TOKEN.39]}.execute-api.${Token[AWS::Region.4]}.${Token[AWS::URLSuffix.1]}/${Token[TOKEN.45]}/"
因此,直到静态站点需要该值之后,才会解析/生成 url。
如何计算/查找/获取 API 网关 URL 并更新 cdk 部署上的 javascript?
或者有没有更好的方法来做到这一点?即静态 javascript 是否有一种优雅的方式来检索 lambda api 网关 url?
谢谢。
小智 0
您正在创建 LambdaIntegration,但它未连接到您的 API。
要将其添加到 API 的根目录,请执行以下操作: this.api.root.addMethod(...) 并使用它来连接您的 LambdaIntegration 和 API。
这应该会给你一个带有 URL 的端点
| 归档时间: |
|
| 查看次数: |
1279 次 |
| 最近记录: |