以编程方式(即通过ScriptApp.newTrigger()
)创建触发器时,它是否始终指向“头”部署或最新发布(版本化)的部署? (请参阅有关部署类型here的文档。)
对于上下文,我要在多用户环境中分发脚本,该环境依赖触发器每隔几分钟运行一次。我试图确保脚本的所有客户端都不会立即拾取开发中所做的更改(即在发布这些更改之前),因为这实际上意味着开发人员中的所有代码更新都将立即对所有用户生效。
如果触发器只能指向头部部署,那么将触发器指向可以在dev(头部版本)中安全更新的代码的最佳实践是什么?
答案 0 :(得分:2)
ScriptApp.newTrigger()
安装触发器时,将使用哪个版本的脚本。我理解您的上述问题。如果我的理解是正确的,那么这个答案呢?请认为这是几个答案之一。
通过ScriptApp.newTrigger()
安装触发器时,尽管“当前项目的触发器”中未显示“部署”的值,但最新脚本由已安装的触发器运行。这种情况与脚本的版本无关。使用当前最新的脚本。
如果手动安装了触发器,则可以在“选择应运行的部署”中选择部署版本。
为了通过选择脚本版本安装触发器,作为一种解决方法,我建议使用一个库。此解决方法的流程如下。这是示例流程。
function myFunction() {lib.myFunction()}
。该脚本运行库的功能。
ScriptApp.newTrigger("myFunction")
以使用该库。这时,运行触发器时,将使用选定的库版本。这样,就不会使用库的最新脚本。用户可以使用所选版本的稳定脚本。如果我误解了你的问题,对不起。
答案 1 :(得分:1)
是的,它始终指向“头”,因为版本化的部署仅适用于Gmail加载项。
以上内容是基于唯一的发布Gmail附件的指南,其中包括创建版本化部署-> https://developers.google.com/gmail/add-ons/how-tos/publish#step_1_create_a_versioned_deployment