1

我创建了一个新的 Flex 项目作为我们现有生产 Flex 项目的暂存环境。我们有一个我们的 flex 插件调用的后端服务,我也创建了一个后端服务的暂存版本。我想了解如何在我们的 flex 插件中进行特定于环境的配置,以便我可以部署相同的插件,但将它们指向不同的后端服务 URL。

这样做似乎有三种可能的选择:

  1. 更改appConfig.js以添加不同的配置,键入帐户 ID。可能这可以在运行TWILIO_ACCOUNT_ID时利用环境变量npm run deploy来添加适当的配置,尽管我不清楚它是如何工作的。
  2. 使用 Twilio CLI 或 REST API 将新值推backend_service_url送到 Flex 配置。每个项目都这样做一次应该有效。虽然我不清楚我将把它放在配置 JSON 中的哪个位置,以及如何在插件中读回它。
  3. 在插件加载时调用的每个项目中设置一个 Twilio 函数,并返回项目特定的配置。

请让我知道最佳实践是什么,并让我开始了解如何实施。

4

2 回答 2

2

从我们的电子邮件线程跟进,以防它对其他人有用。

选项 2 可能是实现这一目标的最简单方法。第一步是检查您的 Flex 配置中已存储的内容。如果您安装了 Twilio CLI,您可以通过运行:

twilio api:flex:v1:configuration:fetch -o=json

您应该收到一个配置标志列表。attributes 键是我们有兴趣更新的键。它看起来像这样:

    "attributes": {
      "seenOnboarding": true,
      "demoPhoneNumber": "+1 203 941 6714"
    }

下一步将用我们在请求中包含的任何内容替换这些属性,因此您需要在下一个请求中包含现有属性。

您可以使用以下 API 请求更新您的 Flex 配置:

curl https://flex-api.twilio.com/v1/Configuration -X POST -u ACxxx:auth_token \
    -H 'Content-Type: application/json' \
    -d '{
        "account_sid": "ACxxx",
        "attributes": {
            "myCustomVariable": "My custom value",
            "seenOnboarding": true,
            "demoPhoneNumber": "+1 234 567 8900"
        }
    }'

在 Flex 插件内部,您可以通过manager对象引用设置属性:

init(flex, manager) {
   console.log(manager.serviceConfiguration.attributes.myCustomVariable);
}
于 2019-12-21T01:08:20.893 回答
0

我决定在运行时通过包含 accountSid => baseURL 对象来确定基本 API URL:

const BASE_URL_BY_ACCOUNT_SID = {
  AC123: "mystagingurl.com/api/v3",
  AC888: "myprodurl.com/api/v3"
}

然后,您可以使用此哈希值在运行时使用存储在 Redux 存储(或 Flex 配置)中的帐户 SID 进行查找。

于 2020-07-08T17:05:37.350 回答