3

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

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

干杯

4

1 回答 1

1

和你有同样的想法。Flex 插件实际上是上传到 Twilio Runtime 服务,但它仅用于托管静态资产,您无法向其中添加自己的 Node.js 函数,因此您无法使用通常会使用的环境变量运行时服务。

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

https://stackoverflow.com/a/59432812/152891

以及文档中的此页面:

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

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

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

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

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

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

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

于 2021-02-13T06:52:19.570 回答