Slack Slash commands error: failed with the error "operation_timeout"
Slack Slash commands error: failed with the error "operation_timeout"
我正在使用 Slack Slash 命令向我的 AWS Lambda python 应用程序发送请求。
然而,在发送命令后,Slack 正在返回消息 failed with the error "operation_timeout"
:
尽管我收到了这条消息,但我的请求已成功发送,工作已完成。
我只是想知道如何摆脱 slack 发送的这条消息。
我知道 Slack 需要 HTTP POST 200 OK 作为确认响应 link here 但我确实在收到有效负载时发送了一个,如下所示:
lambda_handler.py
def slack_acknowledgment_response(resonse_url):
# Make API Call to Slack API
requests.post(
resonse_url,
{'text': 'Test'}
)
# This is my main event
def main(event, context):
payload = parse_qs(event['postBody'])
response_url = payload['response_url'][0]
slack_acknowledgment_response(response_url)
time.sleep(5)
我故意添加了 5 秒的睡眠时间,因为如果我的脚本运行时间超过 3 秒,我会收到此错误,即使我已经在 3 秒之前发送了确认。
有人可以帮忙吗?
正如你在link中所说,slack说the 200 response message must be received within 3000ms (3 seconds). However, I think you're misinterpreting the expectation. It want's the 200 response to the request Slack sent to you. You can send the POST to the response_url
within 30 seconds,但它仍然需要在3秒内进行初始响应。
如果您预计该过程需要超过 3 秒,您可能应该想出一种方法来进行异步处理。例如,将您在 Lambda 中收到的作业排队到 SQS 队列,然后使用通知的 response_url
发送响应(只要您可以在 30 秒内处理)。
您可能想查看 the answers to this question 以了解如何让您的 Lambda 函数 return 立即响应,然后通过第二个 Lambda 函数进行异步处理。
我正在使用 Slack Slash 命令向我的 AWS Lambda python 应用程序发送请求。
然而,在发送命令后,Slack 正在返回消息 failed with the error "operation_timeout"
:
尽管我收到了这条消息,但我的请求已成功发送,工作已完成。
我只是想知道如何摆脱 slack 发送的这条消息。
我知道 Slack 需要 HTTP POST 200 OK 作为确认响应 link here 但我确实在收到有效负载时发送了一个,如下所示:
lambda_handler.py
def slack_acknowledgment_response(resonse_url):
# Make API Call to Slack API
requests.post(
resonse_url,
{'text': 'Test'}
)
# This is my main event
def main(event, context):
payload = parse_qs(event['postBody'])
response_url = payload['response_url'][0]
slack_acknowledgment_response(response_url)
time.sleep(5)
我故意添加了 5 秒的睡眠时间,因为如果我的脚本运行时间超过 3 秒,我会收到此错误,即使我已经在 3 秒之前发送了确认。
有人可以帮忙吗?
正如你在link中所说,slack说the 200 response message must be received within 3000ms (3 seconds). However, I think you're misinterpreting the expectation. It want's the 200 response to the request Slack sent to you. You can send the POST to the response_url
within 30 seconds,但它仍然需要在3秒内进行初始响应。
如果您预计该过程需要超过 3 秒,您可能应该想出一种方法来进行异步处理。例如,将您在 Lambda 中收到的作业排队到 SQS 队列,然后使用通知的 response_url
发送响应(只要您可以在 30 秒内处理)。
您可能想查看 the answers to this question 以了解如何让您的 Lambda 函数 return 立即响应,然后通过第二个 Lambda 函数进行异步处理。