Twilio Flex 插件环境变量

Twilio Flex Plugin Environment Variables

在 Twilio Flex 插件上管理不同环境的不同变量的最佳方法是什么?

我有两个环境,staging(dev) 和 Prod,staging 将部署 Dev 分支上的内容,Prod 将部署 Master 分支上的内容。如何为两者设置不同的变量,例如 API 端点、workspaceSid 和类似的东西?

干杯

和你一样的想法。 Flex 插件实际上是上传到一个 Twilio Runtime 服务,但它只用于静态资产的托管,你不能向它添加你自己的 Node.js 功能,所以你不能使用你通常使用的环境变量将在运行时服务中。

Flex 中类似环境变量的实例特定配置的解决方案似乎是 Flex Configuration 对象。这在这个答案中有所描述:

以及文档中的此页面:

https://www.twilio.com/docs/flex/developer/ui/configuration

基本上,您可以使用 API 将您自己的配置值添加到每个环境的 JSON 对象,然后从位于 manager.serviceConfiguration 的 Flex 插件中访问这些值。 =22=]

请注意,即使文档没有提及,这些方法也可以通过 Twilio CLI 获得,网址为:

twilio api:flex:v1:configuration:fetch   -- fetch a Configuration resource
twilio api:flex:v1:configuration:update  -- update a Configuration resource

文档中还没有明确提到的是,您可能希望将注意力集中在顶级键 attributescrm_attributesui_attributes 上。如果您使用 TypeScript 构建您的插件,则有 ServiceConfiguration 的类型化接口,但这些属性是 any 类型,因此您可以添加自己的子属性,而无需编译器在您尝试时对您大喊大叫访问它们。

另一件值得注意的事情是,您不能像对待环境变量那样对待它们,因为它们会暴露给客户端。如果您有敏感机密,您应该将必要的功能分解到后端(如在 Twilio 运行时),您可以在其中安全地使用环境变量,然后使用 JWT 和 twilio-flex-token-validator 模式验证来自 Flex 的后端请求此处描述:

https://www.twilio.com/docs/flex/developer/plugins/call-functions#securing-your-twilio-function