使用部署槽,每个环境的 React App 不同 API 个 URL

React App different API URLs per environment using deployment slots

这是一个与使用 Azure 应用服务和部署槽的 CRA React 应用相关的问题。

我们有一个特定于每个环境的后端 API,因此对于“开发”,我们有一个特定的 API,对于“测试”,我们有另一个,基本上只是不同的 URLS,具体取决于关于我们所处的环境。

到目前为止,管道已经解决了这个问题。从 React App 中的“dev”分支构建管道,将 REACT_APP_STAGE 设置为“dev”,然后我们可以在 React App 内部检查我们处于哪个阶段,因此更改要使用的 URL。

但现在棘手的部分是,我们正计划使用部署槽,根据我的理解,这意味着我们可以从 Stage -> Prod 无缝更改,而无需重建项目或使用任何管道。这意味着这两种环境中的 React App 将具有相同的 REACT_APP_STAGE 变量,但它们需要不同。

对于如何解决有关不同 URL 和部署槽的问题,是否有人有任何提示或线索?

我很感激时间!

https://docs.microsoft.com/en-us/azure/app-service/deploy-staging-slots

假设 REACT_APP_STAGE 是一个环境变量,并且您希望根据您的插槽为该变量设置不同的值。

如果您使用应用服务设置,您可以将配置值标记为“粘性”,这样当您交换插槽时,目标环境变量将不会交换。

To configure an app setting or connection string to stick to a specific slot (not swapped), go to the Configuration page for that slot. Add or edit a setting, and then select deployment slot setting. Selecting this check box tells App Service that the setting is not swappable.

https://docs.microsoft.com/en-us/azure/app-service/deploy-staging-slots