【发布时间】:2020-11-24 00:39:21
【问题描述】:
我有一个在 Google Cloud Function 上运行的 Flask 应用程序,该应用程序在创建订单时从 Shopify 接收 Webhook。问题是我经常超时,这就是我的意思:
@app.route('/', methods=['POST'])
def connectToSheets(request):
print('Webhook received...')
# Verify request is coming from Shopify
data = request.data
hmac_header = request.headers.get('X-Shopify-Hmac-SHA256')
verify_webhook(data, hmac_header)
print('Request validated...')
# Do some stuff...
Shopify 的 docs 声明订阅有 5 秒的超时期限和重试期限。在我验证请求后,有很多代码,所以我几乎每次都超时。
在我验证 Webhook 并开始处理 Webhook 之前,我是否可以向 Shopify 发送 200 状态代码?或者有解决办法吗?
【问题讨论】:
-
可能写一个background function 来处理繁重的处理?我对 Google Cloud 不太熟悉,但是从这个文档的声音中,您可以让 Cloud Storage 事件触发后台功能。可能有可能让您问题中的脚本写入 Cloud Storage,立即返回 200,然后该对象的创建触发后台功能。
-
参见dev.to/googlecloud/… 的示例(这使用了 Slack 的 webhook,但行为应该类似)
-
@DustinIngram 这正是我想要的谢谢!
-
很高兴听到这个消息!如果您想接受,我将其添加为带有更多详细信息的答案。
标签: python flask google-cloud-platform google-cloud-functions shopify