云服务器内容精选

  • 请求示例 创建Workflow工作流。设置工作流名称为“graph-test-has-condition-step”。 POST https://{endpoint}/v2/{project_id}/workflows { "name" : "graph-test-has-condition-step", "description" : "", "workspace_id" : "0", "steps" : [ { "name" : "condition_step_test", "title" : "condition_step_test", "description" : "", "type" : "condition", "conditions" : [ { "type" : "==", "left" : "$ref/parameters/is_true", "right" : true } ], "if_then_steps" : [ "training_job1" ], "else_then_steps" : [ "training_job2" ], "policy" : { } }, { "name" : "training_job1", "title" : "labeling", "description" : "", "type" : "job", "inputs" : [ { "name" : "data_url", "type" : "obs", "data" : "$ref/data/a2ff296da618452daa8243399f06db8e" } ], "outputs" : [ { "name" : "train_url", "type" : "obs", "config" : { "obs_url" : "/test-lh/test-metrics/" } }, { "name" : "service-link", "type" : "service_content", "config" : { "config_file" : "$ref/parameters/service_config1" } } ], "properties" : { "algorithm" : { "id" : "21ef85a8-5e40-4618-95ee-aa48ec224b43", "parameters" : [ ] }, "kind" : "job", "metadata" : { "name" : "workflow-b0b9fa4c06254b2ebb0e48ba1f7a916c" }, "spec" : { "resource" : { "flavor_id" : "$ref/parameters/train_spec", "node_count" : 1, "policy" : "regular" } } }, "depend_steps" : [ "condition_step_test" ], "policy" : { } }, { "name" : "training_job2", "title" : "labeling", "description" : "", "type" : "job", "inputs" : [ { "name" : "data_url", "type" : "obs", "data" : "$ref/data/f78e46676a454ccdacb9907f589f8d67" } ], "outputs" : [ { "name" : "train_url", "type" : "obs", "config" : { "obs_url" : "/test-lh/test-metrics/" } }, { "name" : "service-link", "type" : "service_content", "config" : { "config_file" : "$ref/parameters/service_config2" } } ], "properties" : { "algorithm" : { "id" : "21ef85a8-5e40-4618-95ee-aa48ec224b43", "parameters" : [ ] }, "kind" : "job", "metadata" : { "name" : "workflow-4a4317eb49ad4370bd087e6b726d84cf" }, "spec" : { "resource" : { "flavor_id" : "$ref/parameters/train_spec", "node_count" : 1, "policy" : "regular" } } }, "depend_steps" : [ "condition_step_test" ], "policy" : { } }, { "name" : "training_job3", "title" : "labeling", "description" : "", "type" : "job", "inputs" : [ { "name" : "data_url", "type" : "obs", "data" : "$ref/data/dee65054c96b4bf3b7ac98c0709f9ae0" } ], "outputs" : [ { "name" : "train_url", "type" : "obs", "config" : { "obs_url" : "/test-lh/test-metrics/" } }, { "name" : "service-link", "type" : "service_content", "config" : { "config_file" : "$ref/parameters/service_config3" } } ], "properties" : { "algorithm" : { "id" : "21ef85a8-5e40-4618-95ee-aa48ec224b43", "parameters" : [ ] }, "kind" : "job", "metadata" : { "name" : "workflow-3039303b3ae14f3e9eed416ba6361b1f" }, "spec" : { "resource" : { "flavor_id" : "$ref/parameters/train_spec", "node_count" : 1, "policy" : "regular" } } }, "depend_steps" : [ "training_job1", "training_job2" ], "policy" : { } } ], "labels" : [ "subgraph" ], "data" : [ { "name" : "a2ff296da618452daa8243399f06db8e", "type" : "obs", "value" : { "obs_url" : "/test-lh/test-metrics/" }, "used_steps" : [ "training_job1" ] }, { "name" : "f78e46676a454ccdacb9907f589f8d67", "type" : "obs", "value" : { "obs_url" : "/test-lh/test-metrics/" }, "used_steps" : [ "training_job2" ] }, { "name" : "dee65054c96b4bf3b7ac98c0709f9ae0", "type" : "obs", "value" : { "obs_url" : "/test-lh/test-metrics/" }, "used_steps" : [ "training_job3" ] } ], "parameters" : [ { "name" : "is_true", "type" : "bool", "delay" : true, "value" : true, "used_steps" : [ "condition_step_test" ] }, { "name" : "train_spec", "type" : "str", "format" : "flavor", "description" : "training specification", "default" : "modelarts.vm.cpu.8u", "used_steps" : [ "training_job1", "training_job2", "training_job3" ] }, { "name" : "service_config1", "type" : "str", "default" : "/test-lh/test-metrics/metrics.json", "used_steps" : [ "training_job1" ] }, { "name" : "service_config2", "type" : "str", "default" : "/test-lh/test-metrics/metrics.json", "used_steps" : [ "training_job2" ] }, { "name" : "service_config3", "type" : "str", "default" : "/test-lh/test-metrics/metrics.json", "used_steps" : [ "training_job3" ] } ] }
  • 响应示例 状态码: 201 OK { "name" : "graph-test-has-condition-step", "description" : "", "workspace_id" : "0", "steps" : [ { "name" : "condition_step_test", "title" : "condition_step_test", "description" : "", "type" : "condition", "conditions" : [ { "type" : "==", "left" : "$ref/parameters/is_true", "right" : true } ], "if_then_steps" : [ "training_job1" ], "else_then_steps" : [ "training_job2" ], "policy" : { } }, { "name" : "training_job1", "title" : "labeling", "description" : "", "type" : "job", "inputs" : [ { "name" : "data_url", "type" : "obs", "data" : "$ref/data/a2ff296da618452daa8243399f06db8e" } ], "outputs" : [ { "name" : "train_url", "type" : "obs", "config" : { "obs_url" : "/test-lh/test-metrics/" } }, { "name" : "service-link", "type" : "service_content", "config" : { "config_file" : "$ref/parameters/service_config1" } } ], "properties" : { "algorithm" : { "id" : "21ef85a8-5e40-4618-95ee-aa48ec224b43", "parameters" : [ ] }, "kind" : "job", "metadata" : { "name" : "workflow-b0b9fa4c06254b2ebb0e48ba1f7a916c" }, "spec" : { "resource" : { "flavor_id" : "$ref/parameters/train_spec", "node_count" : 1, "policy" : "regular" } } }, "depend_steps" : [ "condition_step_test" ], "policy" : { } }, { "name" : "training_job2", "title" : "labeling", "description" : "", "type" : "job", "inputs" : [ { "name" : "data_url", "type" : "obs", "data" : "$ref/data/f78e46676a454ccdacb9907f589f8d67" } ], "outputs" : [ { "name" : "train_url", "type" : "obs", "config" : { "obs_url" : "/test-lh/test-metrics/" } }, { "name" : "service-link", "type" : "service_content", "config" : { "config_file" : "$ref/parameters/service_config2" } } ], "properties" : { "algorithm" : { "id" : "21ef85a8-5e40-4618-95ee-aa48ec224b43", "parameters" : [ ] }, "kind" : "job", "metadata" : { "name" : "workflow-4a4317eb49ad4370bd087e6b726d84cf" }, "spec" : { "resource" : { "flavor_id" : "$ref/parameters/train_spec", "node_count" : 1, "policy" : "regular" } } }, "depend_steps" : [ "condition_step_test" ], "policy" : { } }, { "name" : "training_job3", "title" : "labeling", "description" : "", "type" : "job", "inputs" : [ { "name" : "data_url", "type" : "obs", "data" : "$ref/data/dee65054c96b4bf3b7ac98c0709f9ae0" } ], "outputs" : [ { "name" : "train_url", "type" : "obs", "config" : { "obs_url" : "/test-lh/test-metrics/" } }, { "name" : "service-link", "type" : "service_content", "config" : { "config_file" : "$ref/parameters/service_config3" } } ], "properties" : { "algorithm" : { "id" : "21ef85a8-5e40-4618-95ee-aa48ec224b43", "parameters" : [ ] }, "kind" : "job", "metadata" : { "name" : "workflow-3039303b3ae14f3e9eed416ba6361b1f" }, "spec" : { "resource" : { "flavor_id" : "$ref/parameters/train_spec", "node_count" : 1, "policy" : "regular" } } }, "depend_steps" : [ "training_job1", "training_job2" ], "policy" : { } } ], "labels" : [ "subgraph" ], "data" : [ { "name" : "a2ff296da618452daa8243399f06db8e", "type" : "obs", "value" : { "obs_url" : "/test-lh/test-metrics/" }, "used_steps" : [ "training_job1" ] }, { "name" : "f78e46676a454ccdacb9907f589f8d67", "type" : "obs", "value" : { "obs_url" : "/test-lh/test-metrics/" }, "used_steps" : [ "training_job2" ] }, { "name" : "dee65054c96b4bf3b7ac98c0709f9ae0", "type" : "obs", "value" : { "obs_url" : "/test-lh/test-metrics/" }, "used_steps" : [ "training_job3" ] } ], "parameters" : [ { "name" : "is_true", "type" : "bool", "delay" : true, "value" : true, "used_steps" : [ "condition_step_test" ] }, { "name" : "train_spec", "type" : "str", "format" : "flavor", "description" : "training specificaiton", "default" : "modelarts.vm.cpu.8u", "used_steps" : [ "training_job1", "training_job2", "training_job3" ] }, { "name" : "service_config1", "type" : "str", "default" : "/test-lh/test-metrics/metrics.json", "used_steps" : [ "training_job1" ] }, { "name" : "service_config2", "type" : "str", "default" : "/test-lh/test-metrics/metrics.json", "used_steps" : [ "training_job2" ] }, { "name" : "service_config3", "type" : "str", "default" : "/test-lh/test-metrics/metrics.json", "used_steps" : [ "training_job3" ] } ] }
  • 可以关闭流或者启用流吗? 可以,每个流都有一个状态开关(开启/待开启),用户可以从正在处理的请求中停止流。 关闭流:单击状态列的“关闭”即可。 启用流:单击操作列的“运行”,在弹出的“基本信息”界面单击“运行”即可。流成功启动后,自动化流在满足触发事件时会自动运行,手动触发流会直接运行。 流在重新打开时的响应方式: 轮询,例如:定期触发器: 再次打开流时,会处理所有未处理/挂起的事件。 如果用户不希望处理挂起项,请删除流。 Webhook: 再次打开流时,只处理在打开流以后生成的新事件。 父主题: 流管理
  • 响应示例 状态码: 200 正常 [ { "access_type" : "RTMP", "updated_at" : "2018-12-25T12:59:37Z", "share_type" : "PUBLIC", "stream_id" : "stream-0BOPSRsT", "access_key" : "ALKJOWLKJSDNFGO******KSJDF", "name" : "stream_test1", "created_at" : "2018-12-25T12:59:37Z", "description" : "", "state" : "ACTIVE", "retention_state" : "ACTIVE", "tag" : [ { "key" : "group" }, { "value" : "number1" } ], "retention" : { "bucket" : "iva-ly-test", "path" : "testRetention", "timezone" : "GMT+08:00", "retention_in_hour" : 1, "retention_forever" : false, "store_type" : "OBS", "slice_in_minute" : 5 }, "encode_type" : "H264"}, { "access_type" : "HTTP-FLV", "updated_at" : "2018-12-25T12:59:37Z", "share_type" : "PUBLIC", "stream_id" : "stream-9IzU3TdL", "url" : "https://xxxxxxxx.com/live", "name" : "RTMP******", "created_at" : "2018-12-25T12:59:37Z", "description" : "", "state" : "ACTIVE", "retention_state" : "ACTIVE", "tag" : [ { "key" : "group", "value" : "number1" } ], "retention" : { "bucket" : "iva-ly-test", "path" : "testRetention/", "timezone" : "GMT+08:00", "retention_in_hour" : 1, "retention_forever" : false, "store_type" : "OBS", "slice_in_minute" : 5 }, "encode_type" : "H264"}, { "access_type" : "GB/T28181", "updated_at" : "2018-12-25T10:52:00Z", "share_type" : "PUBLIC", "stream_id" : "stream-0P5g9fQ2", "access_key" : "0000", "name" : "channel_9339084235132000****", "created_at" : "2018-12-25T10:52:00Z", "description" : "", "state" : "STOPPED", "retention_state" : "STOPPED", "tag" : [ ], "encode_type" : "H265"} ] 状态码: 400 请求错误。具体返回错误码请参考错误码说明 { "error_msg" : "Invalid request parameter, url can not be null or empty when access type is HTTP-FLV.", "error_code" : "VIS.0005"}
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 stream_id String 视频流ID。 name String 视频流名称。 encode_type String 视频流编码格式。 access_type String 视频接入 类型。 access_key String RTMP视频流的密钥。接入类型(access_type)为RTMP时,才有该参数。 url String HTTP-FLV视频流的地址。接入类型(access_type)为HTTP-FLV时,才有该参数。 transfer_protocol String GB视频传输协议(TCP|UDP)。只有当视频介入类型为GB/T28181时,才有该参数。 share_type String 视频流共享类型。 PRIVATE:非共享。 PUBLIC:共享。 state String 视频流状态。 ACTIVE:表示已激活。 STOPPED:表示已停用。 retention retention object 视频流转储信息。 retention_state String 按视频流转储状态过滤,可选值如下。 ACTIVE:表示已启用转储。 STOPPED:表示未启用转储。 不区分大小写。 created_at String 视频流创建时间。 updated_at String 视频流更新时间。 表5 retention 参数 参数类型 描述 retention_in_hour Integer 保存时长,以小时为单位。 Retention_forever Boolean 是否永久保存。 store_type String 转储位置,可为“obs”,即存储到华为云 对象存储OBS 上。 bucket String OBS桶名。 path String OBS目录。 timezone String 时区信息。 slice_in_minute Integer 分片长度,以分钟为单位。取值范围为1~60,默认为5。
  • URI GET /v1/{project_id}/streams 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方法请参考获取项目ID 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 查询的开始位置,取值范围为0~100000,必须与limit一起使用。与limit同时缺省时,返回所有结果。该参数适用于所有查询列表的接口。如果offset超过数据总条数,则结果返回空列表。 limit 否 Integer 返回结果的最大条目数,取值范围为1~1000,必须与offset一起使用。与offset同时缺省时,返回所有结果。该参数适用于所有查询列表的接口。 sort 否 String 返回结果的排序规则。 ASC:表示升序。 DESC:表示降序。 默认为ASC,需要有offset和limit参数,sort参数才会生效。 order_by 否 String 选择按一个字段排序,可选值如下。 encode_type:视频流编码格式。 access_type:视频接入类型。 share_type:视频流共享类型。 created_at:视频流创建时间。 name:视频流名字。 state:视频流状态。 retention_state:视频流转储状态。 默认为created_at,按照创建时间排序。需要有offset和limit参数,order_by参数才会生效。 name 否 String 按照视频流名称过滤,支持模糊查询。 stream_state 否 String 按视频流状态过滤,可选值如下。 ACTIVE:表示已激活。 STOPPED:表示未激活。 不区分大小写。 retention_state 否 String 按视频流转储状态过滤,可选值如下。 ACTIVE:表示已启用转储。 STOPPED:表示未启用转储。 不区分大小写。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 普通租户的token。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。
  • 响应示例 状态码: 400 { "error_code" : "EG.00014000", "error_msg" : "Bad request"} 状态码: 401 { "error_code" : "EG.00014010", "error_msg" : "Incorrect token or token resolution failed"} 状态码: 403 { "error_code" : "EG.00014030", "error_msg" : "No permissions to request this method"} 状态码: 404 { "error_code" : "EG.00014040", "error_msg" : "Not request resource found"} 状态码: 500 { "error_code" : "EG.00015000", "error_msg" : "Internal Server Error"}
  • 响应参数 状态码: 200 表3 响应Header参数 参数 参数类型 描述 X-Request-Id String This field is the request ID number for task tracking. Format is request_uuid-timestamp-hostname. 表4 响应Body参数 参数 参数类型 描述 eventStreamingID String 事件流ID 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:1 最大长度:128 error_msg String 错误消息 最小长度:1 最大长度:512 error_details String 具体错误消息 最小长度:1 最大长度:1024 request_id String 请求处理ID 最小长度:1 最大长度:128 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:1 最大长度:128 error_msg String 错误消息 最小长度:1 最大长度:512 error_details String 具体错误消息 最小长度:1 最大长度:1024 request_id String 请求处理ID 最小长度:1 最大长度:128 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:1 最大长度:128 error_msg String 错误消息 最小长度:1 最大长度:512 error_details String 具体错误消息 最小长度:1 最大长度:1024 request_id String 请求处理ID 最小长度:1 最大长度:128 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:1 最大长度:128 error_msg String 错误消息 最小长度:1 最大长度:512 error_details String 具体错误消息 最小长度:1 最大长度:1024 request_id String 请求处理ID 最小长度:1 最大长度:128 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:1 最大长度:128 error_msg String 错误消息 最小长度:1 最大长度:512 error_details String 具体错误消息 最小长度:1 最大长度:1024 request_id String 请求处理ID 最小长度:1 最大长度:128
  • 请求参数 表1 请求参数列表 参数名称 是否必选 参数类型 描述 graphName 是 str 参数解释: 工作流名称 约束限制: 名称必须以字母或数字开头,只能由字母、数字、下划线和中划线组成,长度小于等于64个字符,且不能重名。 默认取值: 无 templateName 是 str 参数解释: 工作流模板的名称 约束限制: 名称必须以字母或数字开头,只能由字母、数字、下划线和中划线组成,长度小于等于64个字符,且不能重名。 默认取值: 无 description 否 str 参数解释: 工作流的描述 约束限制: 长度最小为0,最长为256,可以是数字、大小写字母以及英文的逗号,句号,冒号,中划线,下划线,空格 默认取值: 无 agency 是 str 参数解释: 委托名,用于OBS服务能够访问函数服务 约束限制: agency必须是赋予OBS服务有函数服务访问权限。 默认取值: 无 parameters 否 Array Input Json结构体 结构体说明 参数解释: 工作流中用户可修改参数列表 取值范围: 详见结构体说明
  • 返回结果 表2 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表3 GetResult 参数名称 参数类型 描述 status int 参数解释: HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 reason str 参数解释: HTTP文本描述。 默认取值: 无 errorCode str 参数解释: OBS服务端错误码,当status参数小于300时为空。 默认取值: 无 errorMessage str 参数解释: OBS服务端错误描述,当status参数小于300时为空。 默认取值: 无 requestId str 参数解释: OBS服务端返回的请求ID。 默认取值: 无 indicator str 参数解释: OBS服务端返回的错误定位码。 默认取值: 无 hostId str 参数解释: 请求的服务端ID,当status参数小于300时为空。 默认取值: 无 resource str 参数解释: 发生错误时相关的桶或对象,当status参数小于300时为空。 默认取值: 无 header list 参数解释: 响应消息头列表,由多个元组构成。每个元组均包含两个元素,代表响应头的键值对。 默认取值: 无 body object 参数解释: 操作成功后的结果数据,当status大于300时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无 表4 返回结果 GetResult.body类型 说明 表5 参数解释: 响应结果,详见表5 表5 CreateWorkflowResponse 参数名称 参数类型 描述 graphName str 参数解释: 工作流名称 默认取值: 无 graphUrn str 参数解释: 工作流的URN 默认取值: 无 createdAt str 参数解释: 工作流的创建时间 默认取值: 无
  • 响应示例 状态码: 200 查询禁止直播推流列表成功 { "total" : 2, "blocks" : [ { "app_name" : "live", "stream_name" : "test_001", "resume_time" : "2018-05-19T21:10:15Z" }, { "app_name" : "live", "stream_name" : "test_002", "resume_time" : "2018-06-12T20:10:10Z" } ] } 状态码: 400 查询禁止直播推流列表失败 { "error_code" : "LIVE.100011001", "error_msg" : "Request Illegal" }
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token,使用Token鉴权方式时必填。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必填,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必填,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必填,携带项目ID信息。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 查询结果的总元素数量 blocks Array of StreamForbiddenList objects 禁推黑名单列表 表5 StreamForbiddenList 参数 参数类型 描述 app_name String 应用名称 stream_name String 流名称 resume_time String 恢复流时间,格式:yyyy-mm-ddThh:mm:ssZ,UTC时间,不指定则默认7天,最大禁推为90天 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • URI GET /v1/{project_id}/stream/blocks 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方法请参考获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 domain 是 String 域名 app_name 否 String 应用名称,不指定则查询domain下所有应用的禁止直播推流信息 stream_name 否 String 流名称 page 否 Integer 分页编号。 默认为0。 size 否 Integer 每页记录数。 取值范围:1-100。 默认为10。