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

如何在Azure容器实例内命令失败时触发告警邮件?

解决ACI命令执行失败的邮件告警方案

方案一:用Azure Function(替换AZ CLI为官方SDK)

不用在Function里运行AZ CLI,直接通过Azure官方SDK调用API获取ACI日志,步骤如下:

  • 给Function的系统分配身份添加ACI的读取者或容器实例参与者权限(在Azure门户的Function身份设置页配置)
  • 用对应语言的SDK编写核心逻辑,比如Python示例(依赖azure-mgmt-containerinstance库):
    from azure.identity import DefaultAzureCredential
    from azure.mgmt.containerinstance import ContainerInstanceManagementClient
    import sendgrid
    from sendgrid.helpers.mail import Mail
    
    # 初始化ACI管理客户端
    credential = DefaultAzureCredential()
    client = ContainerInstanceManagementClient(credential, "你的订阅ID")
    
    # 拉取目标容器日志
    logs = client.container.list_logs("资源组名称", "ACI组名称", "容器名称")
    log_content = logs.content
    
    # 检查错误字符串并发送邮件
    if "你要检测的错误字符串" in log_content:
        sg = sendgrid.SendGridAPIClient(api_key="你的SendGrid密钥")
        message = Mail(
            from_email="告警发送邮箱",
            to_emails="接收告警的邮箱",
            subject="ACI命令执行失败告警",
            plain_text_content=f"检测到错误日志内容:\n{log_content}"
        )
        sg.send(message)
    
  • 配置Timer Trigger的CRON表达式:0 */30 0-1 * * *(对应UTC时间00:00-02:00期间每30分钟执行一次)

方案二:用Azure Monitor告警(最适合新手,零代码)

这是最省心的原生方案,无需编写代码:

  • 第一步:开启ACI日志收集到Log Analytics工作区
    在ACI的门户页面进入日志选项卡,按照提示关联Log Analytics工作区
  • 第二步:编写日志查询筛选错误
    在Log Analytics中创建查询,示例如下:
    ContainerInstanceLog
    | where ResourceGroup == "你的资源组名称"
    | where ContainerName == "你的容器名称"
    | where Message contains "你要检测的错误字符串"
    
  • 第三步:创建告警规则
    点击查询页面的新建告警规则,完成以下配置:
    • 触发条件:设置为查询返回行数>0时触发
    • 动作组:添加电子邮件/短信/推送/语音,填写接收告警的邮箱
    • 时间窗口:在高级设置的计划中,配置仅在UTC 00:00-02:00期间评估告警
  • 配置完成后,只要日志中出现指定错误字符串,就会自动发送告警邮件

方案三:关于Azure Batch的可行性(不推荐新手)

你确实可以创建基于自定义镜像的Batch池,但该方案复杂度高、维护成本大,远不如前两个方案实用:

  • 需要打包包含AZ CLI、邮件工具(如sendmail)的自定义镜像
  • 配置Batch池的自动缩放规则,仅在UTC 00:00-02:00启动计算节点
  • 创建定时作业,每30分钟运行任务,执行az container logs拉取日志,检查错误后发送邮件
  • 除非有特殊场景需求,否则不建议新手采用该方案

内容的提问来源于stack exchange,提问作者João Valente

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:35:21