如何为生产和暂存 Twilio Flex 项目设置不同的插件配置?
How do I set up different plugin configuration for production and staging Twilio Flex projects?
我创建了一个新的 Flex 项目作为我们现有生产 Flex 项目的临时环境。我们有一个我们的 flex 插件调用的后端服务,我也创建了一个后端服务的暂存版本。我想了解如何在我们的 flex 插件中进行特定于环境的配置,以便我可以部署相同的插件,但将它们指向不同的后端服务 URL。
似乎有三种可能的选择:
- 更改
appConfig.js
以添加不同的配置,以帐户 ID 为关键字。可能这可以在 npm run deploy
为 运行 时利用 TWILIO_ACCOUNT_ID
环境变量添加适当的配置,但我不清楚它是如何工作的。
- 使用 Twilio CLI 或 REST API 将
backend_service_url
等新值推送到 Flex 配置。每个项目执行一次应该可行。虽然我不清楚我将把它放在配置 JSON 中的什么位置,以及如何在插件中读回它。
- 在插件加载时调用的每个项目中设置一个 Twilio 函数,以及 returns 项目特定的配置。
请告诉我最佳做法是什么,并让我开始实施。
跟进我们的电子邮件线程,以防对其他人有用。
选项 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);
}
我决定在运行时通过包含 accountSid => baseURL 对象来确定基数 API URL:
const BASE_URL_BY_ACCOUNT_SID = {
AC123: "mystagingurl.com/api/v3",
AC888: "myprodurl.com/api/v3"
}
然后您可以使用此哈希在运行时使用存储在 Redux 存储(或 Flex 配置,也许)中的帐户 SID 进行查找。
我创建了一个新的 Flex 项目作为我们现有生产 Flex 项目的临时环境。我们有一个我们的 flex 插件调用的后端服务,我也创建了一个后端服务的暂存版本。我想了解如何在我们的 flex 插件中进行特定于环境的配置,以便我可以部署相同的插件,但将它们指向不同的后端服务 URL。
似乎有三种可能的选择:
- 更改
appConfig.js
以添加不同的配置,以帐户 ID 为关键字。可能这可以在npm run deploy
为 运行 时利用TWILIO_ACCOUNT_ID
环境变量添加适当的配置,但我不清楚它是如何工作的。 - 使用 Twilio CLI 或 REST API 将
backend_service_url
等新值推送到 Flex 配置。每个项目执行一次应该可行。虽然我不清楚我将把它放在配置 JSON 中的什么位置,以及如何在插件中读回它。 - 在插件加载时调用的每个项目中设置一个 Twilio 函数,以及 returns 项目特定的配置。
请告诉我最佳做法是什么,并让我开始实施。
跟进我们的电子邮件线程,以防对其他人有用。
选项 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);
}
我决定在运行时通过包含 accountSid => baseURL 对象来确定基数 API URL:
const BASE_URL_BY_ACCOUNT_SID = {
AC123: "mystagingurl.com/api/v3",
AC888: "myprodurl.com/api/v3"
}
然后您可以使用此哈希在运行时使用存储在 Redux 存储(或 Flex 配置,也许)中的帐户 SID 进行查找。