gpt4 book ai didi

aws-lambda - AWS CDK 将 API 网关 URL 传递到同一堆栈中的静态站点

转载 作者:行者123 更新时间:2023-12-04 11:04:08 24 4
gpt4 key购买 nike

我正在尝试在单个堆栈中部署 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;

但是在 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?

谢谢。

最佳答案

您正在创建 LambdaIntegration,但它未连接到您的 API。
要将其添加到 API 的根目录,请执行以下操作: this.api.root.addMethod(...) 并使用它来连接您的 LambdaIntegration 和 API。
这应该为您提供一个带有 URL 的端点

关于aws-lambda - AWS CDK 将 API 网关 URL 传递到同一堆栈中的静态站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60074546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com