消息通知

更新时间:
复制为 MD 格式

批量计算服务(BatchCompute)使用 MNS 提供的主题模式来实现消息通知。

用户负责主题(Topic)的创建、管理和订阅,并在使用 BatchCompute 创建集群或提交作业时指定主题相关的配置。BatchCompute 依据配置向指定用户主题推送消息。用户可在 MNS 控制台配置 URL、队列、邮件和短信四种方式获取消息通知。目前,BatchCompute 主要支持两大类消息事件,即集群事件和作业事件。

A) 开通消息服务

B) 创建 MNS 主题

C) 创建 MNS 主题订阅

1. 授权 BatchCompute 推送消息

请登录控制台上进行一键授权。如果没有授权过,控制台会提醒授权。如果已经授权,过请忽略。

2. 计费相关

消息通知产生的费用统一由 消息服务结算 ,批量计算不再额外收取。

3. 消息类型

A) 集群事件

使用 SDK 或控制台创建集群(cluster)时,可以配置如下类型消息事件。

{
    "Notification": {
        "Topic": {
            "Name": "test-topic",
            "Endpoint": "http://[UserId].mns.[Region].aliyuncs.com/", 
            "Events": [
                "OnClusterDeleted",
                "OnInstanceCreated",
                "OnInstanceActive"
            ]
        }
    }
}

字段

说明

Name

MNS 主题名称

Endpoint

MNS 私网 Endpoint,参考 如何获取 Endpoint

B) 作业事件

使用 SDK 或控制台创建作业(job)时,可以配置如下类型消息事件。

{
    "Notification": {
        "Topic": {
            "Name": "test-topic",
            "Endpoint": "http://[UserId].mns.[Region].aliyuncs.com/",
            "Events": [
                "OnJobWaiting",
                "OnJobRunning",
                "OnJobStopped",
                "OnJobFinished",
                "OnJobFailed",
                "OnTaskWaiting",
                "OnTaskRunning",
                "OnTaskStopped",
                "OnTaskFinished",
                "OnTaskFailed",
                "OnInstanceWaiting",
                "OnInstanceRunning",
                "OnInstanceStopped",
                "OnInstanceFinished",
                "OnInstanceFailed",
                "OnPriorityChange"
            ]
        }
    }
}

字段

说明

Name

MNS主题名称

Endpoint

MNS私网Endpoint,参考 如何获取 Endpoint

4. 消息格式

消息格式目前支持 json string。

A) 集群事件

适用于 OnClusterDeleted

 {
    "Category": "Cluster",
    "ClusterId": "cls-hr2rbl6qt5gki7392b8001",
    "ClusterName": "test-cluster",
    "CreationTime": "2016-11-01T15:25:02.837728Z",
    "State": "Deleted",
    "Event": "OnClusterDeleted"
}

适用于 OnInstanceCreated/OnInstanceActive

{
    "Category": "Cluster",
    "ClusterId": "cls-hr2rbl6qt5gki7392b8001",
    "Group": "group1",
    "InstanceId": "i-wz9c51g2s6zsrtnqi4fa",
    "InnerIpAddress": "10.45.168.26",
    "Hints": "",
    "State": "Starting",
    "CreationTime": "2016-11-01T15:25:02.837728Z",
    "Event": "OnInstanceCreated"
}

B) 作业事件

适用于 OnJobWaiting/OnJobRunning/OnJobStopped/OnJobFinished/OnJobFailed

{
    "Category": "Job",
    "JobId": "job-0000000058524720000077E900007257",
    "JobName": "test-job",
    "Event": "OnJobWaiting",
    "State": "Waiting",
    "CreationTime": "2016-11-01T15:25:02.837728Z",
    "StartTime": "2016-11-01T15:35:02.837728Z",
    "EndTime": "2016-11-01T15:45:02.837728Z",
    "Message": ""
}

适用于 OnTaskWaiting/OnTaskRunning/OnTaskStopped/OnTaskFinished/OnTaskFailed

{
    "Category": "Job",
    "JobId": "job-0000000058524720000077E900007257",
    "Task": "Echo",
    "Event": "OnTaskWaiting",
    "State": "Waiting",
    "StartTime": "2016-11-01T15:35:02.837728Z",
    "EndTime": "2016-11-01T15:45:02.837728Z"
}

适用于 OnInstanceWaiting/OnInstanceRunning/OnInstanceStopped/OnInstanceFinished/OnInstanceFailed

{
    "Category": "Job",
    "JobId": "job-0000000058524720000077E900007257",
    "Task": "Echo",
    "InstanceId": "0",
    "Event": "OnInstanceWaiting",
    "State": "Waiting",
    "StartTime": "2016-11-01T15:35:02.837728Z",
    "EndTime": "2016-11-01T15:45:02.837728Z",
    "RetryCount": "0",
    "Progress": "0",
    "StdoutRedirectPath": "oss://bucket/tests/a44c0ad8-a003-11e6-8f8e-fefec0a80e06/logs/stderr.job-0000000058184218000008150000000D.task.0",
    "StderrRedirectPath": "oss://bucket/tests/a44c0ad8-a003-11e6-8f8e-fefec0a80e06/logs/stdout.job-0000000058184218000008150000000D.task.0",
    "ExitCode": "0",
    "ErrorCode": "",
    "ErrorMessage": "",
    "Detail": ""
}

适用于 OnPriorityChange

{
    "Category": "Job",
    "JobId": "job-0000000058524720000077E900007257",
    "JobName": "test-job",
    "Event": "OnPriorityChange",
    "State": "Waiting",
    "CreationTime": "2016-11-01T15:45:02.837728Z",
    "StartTime": "2016-11-01T15:55:02.837728Z",
    "EndTime": "2016-11-01T15:57:02.837728Z",
    "Message": "",
    "From": "10",
    "To": "20"
}