You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Datadog告警结合Twilio Webhook批量发送短信?

在Datadog告警中通过Twilio批量发送短信的解决方案

Twilio的短信API(/Messages)单个请求仅支持向单个号码发送短信,这就是你尝试数组、逗号分隔等格式均失败的原因。以下是两种可行的解决方案:

方案1:配置多个Datadog通知动作(适合少量号码)

  • 进入Datadog告警的通知设置,添加多个「Twilio通知」条目
  • 每个条目单独配置$TO变量,对应一个目标号码
  • 告警触发时,Datadog会自动向每个号码发送独立的Twilio请求,实现批量发送

方案2:通过中间代理服务批量处理(适合大量号码)

如果需要发送的号码较多,逐个配置通知效率低下,可以搭建一个简单的中间服务,接收Datadog告警后批量调用Twilio API:

  1. 部署一个轻量服务(如AWS Lambda、Cloud Function),核心逻辑是遍历号码列表并循环调用Twilio短信接口
  2. 在Datadog中配置自定义webhook,将包含逗号分隔号码列表的Payload发送到该服务
  3. 示例Python服务代码:
from twilio.rest import Client
import os
from flask import Flask, request

app = Flask(__name__)

@app.route('/datadog-twilio-batch', methods=['POST'])
def batch_send_sms():
    # 初始化Twilio客户端
    twilio_client = Client(os.environ['TWILIO_ACCOUNT_SID'], os.environ['TWILIO_AUTH_TOKEN'])
    alert_payload = request.get_json()
    
    # 解析参数
    from_number = alert_payload['From']
    message_body = alert_payload['Body']
    target_numbers = alert_payload['To'].split(',')
    
    # 循环发送短信
    for number in target_numbers:
        twilio_client.messages.create(
            to=number.strip(),
            from_=from_number,
            body=message_body
        )
    return {"status": "batch sent successfully"}

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
  1. Datadog自定义webhook的Payload配置:
{
  "To": "$TO_LIST",
  "From": "$FROM",
  "Body": "Test message"
}

其中$TO_LIST为逗号分隔的目标号码(例如+1234567890,+0987654321)


内容的提问来源于stack exchange,提问作者JBootsma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:27:22