在设置路由时无法选择阶段

0

【以下的问题经过翻译处理】 我已经设置了一个具有自定义域的API网关。自定义域的设置如下:

API: TulipPager
Stage: v1
Path: tulip/v1
Default endpoint: Enabled

在API网关配置中,我创建了两个阶段:v1和v2。现在的设置是,当我访问:

https://mycustom.domain.com/tulip/v1/test

我会收到响应 - 它正常工作!

现在,我想做的下一步是为阶段v1和v2设置不同的路由。实际上,表格基本相同,但必须指向不同的集成(一个是v1 lambda,一个是v2 lambda)。

我的问题是:当我进入控制台 > API Gateway > 此API的路由时,有一个用于选择阶段的下拉菜单,但它是灰色的。我无法弄清楚如何为阶段v1和v2设置单独的路由。

有人可以解释为什么阶段下拉菜单会变灰,即使我定义了两个阶段也是如此吗?是否两个阶段都处于自动部署状态有关吗?(我两种方式都尝试过,似乎没有影响)。

在集成配置页面中,下拉菜单也是灰色的。事实上,那是我真正关心的地方。我实际上希望整个API使用相同的路由,但我希望根据阶段选择不同的函数。这是我计划支持API的不同版本的方式。

profile picture
专家
已提问 5 个月前11 查看次数
1 回答
0

【以下的回答经过翻译处理】 只有一个API定义可以部署到多个阶段。你可以更改定义,然后部署。实际上,除非重新部署,否则无法更改已部署的API。

要实现你想要的效果,你需要使用阶段变量。因此,你将创建一个变量,并在每个阶段中为其分配不同的名称。集成将使用阶段变量作为定义的一部分。例如,你可以创建一个名为 functionName 的阶段变量。在阶段v1中,值将是 Function1。在阶段v2中,值将是 Function2。在集成配置中,你将使用 ${stageVariables.functioName} 来代替函数名称。你可以在这里找到更多信息(https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-stages.html)。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则