【发布时间】:2018-02-20 16:30:29
【问题描述】:
我有一个 python 脚本,它读取 csv 文件,根据 csv 中的数据在 bigquery 中创建表,并在运行时将数据加载到表中。每当发生事件(例如文件到达指定存储桶)时,我想触发此脚本。我的 Python 脚本存在于 vm 实例上(直到现在,用于从 vm 实例运行脚本)。有没有办法根据事件触发器执行这个脚本?
【问题讨论】:
标签: python google-cloud-platform
我有一个 python 脚本,它读取 csv 文件,根据 csv 中的数据在 bigquery 中创建表,并在运行时将数据加载到表中。每当发生事件(例如文件到达指定存储桶)时,我想触发此脚本。我的 Python 脚本存在于 vm 实例上(直到现在,用于从 vm 实例运行脚本)。有没有办法根据事件触发器执行这个脚本?
【问题讨论】:
标签: python google-cloud-platform
Google Cloud Storage 的一项名为“Object Change Notifications”的功能在这里可以派上用场。这会将通知推送到 Web 挂钩,您可以在其中使用处理代码来处理事件(在 AppEngine 上运行此事件的示例为here,但您也可以将其实现为例如 Flask 端点)。
另一个选择是将Pub/Sub Notifications 与 Cloud Storage 结合使用,以防您觉得更舒服。然后,您可以使用Pub/Sub Python SDK 收听您的事件到达的特定主题,并使用您已经编写的代码来处理这些事件。
【讨论】:
File ${file.name} deleted.); } else if (file.metageneration === '1') { console.log(File ${file.name} uploaded.); } 其他 { console.log(File ${file.name} metadata updated.); } 打回来(); };我可以只从这个文件中以任何方式调用放置在 vm 实例上的 python 脚本吗?