我创建了一个新的Flex项目,作为我们现有生产Flex项目的过渡环境。我们有一个Flex插件调用的后端服务,并且我还创建了该后端服务的暂存版本。我想了解如何在我们的Flex插件中进行特定于环境的配置,以便我可以部署相同的插件,但将它们指向不同的后端服务URL。
执行此操作似乎有三种可能的选择:
appConfig.js
以添加不同的配置,并在帐户ID上键入。可能在运行TWILIO_ACCOUNT_ID
时可以使用npm run deploy
环境变量来添加适当的配置,尽管我不清楚这是如何工作的。backend_service_url
之类的新值推送到Flex配置。每个项目执行一次即可。尽管我不清楚如何将其放在配置JSON中以及如何在插件中读取它。请让我知道最佳实践是什么,并让我开始了解如何实现该目标。
答案 0 :(得分:1)
紧跟我们的电子邮件主题,以防他人使用。
选项2可能是实现此目的的最简单方法。第一步是检查Flex配置中已经存储了什么。如果安装了Twilio CLI,则可以通过运行以下命令来完成该操作:
twilio api:flex:v1:configuration:fetch -o=json
您应该收到返回的配置标志列表。属性键是我们有兴趣更新的键。看起来像这样:
"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
对象引用settings属性:
init(flex, manager) {
console.log(manager.serviceConfiguration.attributes.myCustomVariable);
}
答案 1 :(得分:0)
我决定通过在运行时添加一个accountSid => baseURL对象来确定基本API URL:
const BASE_URL_BY_ACCOUNT_SID = {
AC123: "mystagingurl.com/api/v3",
AC888: "myprodurl.com/api/v3"
}
然后,您可以使用此哈希在运行时使用Redux存储(或Flex配置)中存储的帐户SID进行查找。