华为云用户手册

  • 安装插件 在CCE控制台,单击集群名称进入集群,单击左侧导航栏的“插件中心”,在右侧找到CCE突发弹性引擎插件,单击“安装”。 在“规格配置”步骤中,勾选“网络互通”后的选择框,可实现CCE集群中的Pod与CCI集群中的Pod通过Kubernetes Service互通。 图1 勾选“网络互通” 单击“安装”。 勾选了网络互通后,会在CCI运行的Pod中注入一个sidecar用于支持service访问的能力,查询到的运行容器数量会比定义的多一个,属于正常情况。
  • 通过标签labels设置弹性策略 您成功安装virtual-kubelet插件后,在工作负载中添加virtual-kubelet.io/burst-to-cci这个标签即可设置弹性到CCI。 apiVersion: apps/v1 kind: Deployment metadata: name: test namespace: default labels: virtual-kubelet.io/burst-to-cci: 'auto' # 弹性到CCI spec: replicas: 2 selector: matchLabels: app: test template: metadata: labels: app: test spec: containers: - image: 'nginx:perl' name: container-0 resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi volumeMounts: [] imagePullSecrets: - name: default-secret 创建弹性至CCI的负载时需要在工作负载或Pod的labels中添加如下字段: virtual-kubelet.io/burst-to-cci: "auto" 其中,value值支持以下选项: auto:根据用户集群内调度器实际打分结果自动决定是否弹性至CCI,其中在TaintToleration算法上会优先选择调度到CCE节点。 localPrefer:集群资源不足时,将Pod部署到CCI。 enforce:强制调度至CCI。 off:不调度至CCI。
  • 使用profile管理线下IDC和云上分配数量 使用profile配置管理集群内pod,通过labelSelector类方式关联profile和pod,并配置关联pod的分配策略,实现pod在线下IDC和云上的分配或数量限制。 约束与限制 客户可通过Profile配置管理集群内pod策略,仍兼容原有pod的label内burst-to-cci的配置方式,优先级比profile高。 localPrefer不可同时配置local、cci。 auto和localPrefer策略允许关联未被profile关联过的pod,enforce策略不允许关联未被profile关联过的pod。 目前profile在配置localPrefer策略下,为避免全局性问题,在极限场景下限制local数量的配置可能会失效。 在deployment滚动升级场景下,推荐配置尽可能小的maxSurge值(如直接配置为0),避免出现升级时限制maxNum的区域调度量少于预期的现象。 pod只能关联一个profile,即关联度最大的profile。若pod创建后,对其label进行修改导致与原profile不匹配,pod会重新选择关联度最大的profile进行关联。关联度最大的profile确定方法: 根据profile中obejectLables计算labelSelector内matchLabels的数量及matchExpression的数量之和,和最大的profile即为pod关联度最大的profile; 若出现和相同的profile,选择profile的name字母序最小的profile为pod关联度最大的profile。 不支持使用log-agent插件采集profile管理的负载日志。 使用方式 配置local maxNum和scaleDownPriority apiVersion: scheduling.cci.io/v1 kind: ScheduleProfile metadata: name: test-cci-profile namespace: default spec: objectLabels: matchLabels: app: nginx strategy: localPrefer location: local: maxNum: 20 # 当前暂不支持local/cci同时配置maxNum scaleDownPriority: 10 cci: {} status: phase: initialized restrict: local: 20 # restrict内随着location内配置进行填写,即不会同时出现 local/cci used: local: 20 cci: 0 配置cci maxNum和scaleDownPriority apiVersion: scheduling.cci.io/v1 kind: ScheduleProfile metadata: name: test-cci-profile namespace: default spec: objectLabels: matchLabels: app: nginx strategy: localPrefer location: local: {} cci: maxNum: 20 # 当前暂不支持local/cci同时配置maxNum scaleDownPriority: 10 status: phase: initialized restrict: cci: 20 # restrict内随着location内配置进行填写,即不会同时出现 local/cci used: local: 0 cci: 20
  • 使用场景 用户在线下IDC有自建的harbor镜像仓库,同时也会将镜像同步到华为云SWR镜像仓库。创建负载后,希望调度到自建Kubernetes集群节点上运行的Pod使用自建镜像仓库的镜像,弹性到CCI的Pod使用SWR的镜像,以提高镜像拉取效率。可通过在Pod.Annotations中加入注解可以实现弹性到CCI的Pod中容器使用的镜像与自建Kubernetes集群使用的镜像为不同地址。 通过Annotation "coordinator.cci.io/image-replacement"配置镜像替换策略。其值为如下所示json字符串:
  • 配置场景二 原Pod中容器使用不同的镜像仓库,可配置多条替换策略。 示例: 第一个容器匹配到第一条策略,将"harbor.domain"替换为"swr.cn-north-4.myhuaweicloud.com/org1"。 第二个容器匹配到第二条策略,将镜像名前加上"swr.cn-north-4.myhuaweicloud.com/org1"和"/"。 第三个容器匹配到第三条策略,将前缀"harbor.domain/a/b/c/d"替换为"swr.cn-north-4.myhuaweicloud.com/org2"。 因为需要完整匹配最后一个"/"之前的部分,第一条策略即便有与该镜像相同的前缀"harbor.domain",也不会生效。 替换策略: "coordinator.cci.io/image-replacement": '[{"repositoryPrefix":"harbor.domain","replaceWith":"swr.cn-north-4.myhuaweicloud.com/org1"},{"repositoryPrefix":"","replaceWith":"swr.cn-north-4.myhuaweicloud.com/org1"},{"repositoryPrefix":"harbor.domain/a/b/c/d","replaceWith":"swr.cn-north-4.myhuaweicloud.com/org2"}]' 替换前: containers: - name: container-0 image: 'harbor.domain/ubuntu:latest' - name: container-1 image: 'nginx:latest' - name: container-2 image: 'harbor.domain/a/b/c/d/redis:latest' 替换后: containers: - name: container-0 image: 'swr.cn-north-4.myhuaweicloud.com/org1/ubuntu:latest' - name: container-1 image: 'swr.cn-north-4.myhuaweicloud.com/org1/nginx:latest' - name: container-2 image: 'swr.cn-north-4.myhuaweicloud.com/org2/redis:latest'
  • 配置场景一 原Pod中所有容器镜像均使用同一镜像仓库与组织,配置一条替换策略即可。 示例:将所有容器镜像"harbor.domain/a/b/c/d"前缀都替换为SWR的镜像前缀"swr.cn-north-4.myhuaweicloud.com/org"。 替换策略: "coordinator.cci.io/image-replacement": '[{"repositoryPrefix":"harbor.domain/a/b/c/d","replaceWith":"swr.cn-north-4.myhuaweicloud.com/org"}]' 替换前: containers: - name: container-0 image: 'harbor.domain/a/b/c/d/ubuntu:latest' - name: container-1 image: 'harbor.domain/a/b/c/d/nginx:latest' 替换后: containers: - name: container-0 image: 'swr.cn-north-4.myhuaweicloud.com/org/ubuntu:latest' - name: container-1 image: 'swr.cn-north-4.myhuaweicloud.com/org/nginx:latest' 示例Deployment: apiVersion: apps/v1 kind: Deployment metadata: name: test-vk labels: virtual-kubelet.io/burst-to-cci: 'auto' spec: replicas: 20 selector: matchLabels: app: test-vk template: metadata: labels: app: test-vk annotations: coordinator.cci.io/image-replacement: '[{"repositoryPrefix":"harbor.domain/a/b/c/d","replaceWith":"swr.cn-north-4.myhuaweicloud.com/org"}]' spec: containers: - name: container-0 image: harbor.domain/a/b/c/d/ubuntu:latest resources: limits: cpu: 500m memory: 1024Mi requests: cpu: 500m memory: 1024Mi command: - /bin/bash - '-c' - sleep 10000 - name: container-1 image: harbor.domain/a/b/c/d/nginx:latest resources: limits: cpu: 500m memory: 1024Mi requests: cpu: 500m memory: 1024Mi command: - /bin/bash - '-c' - sleep 10000
  • 匹配与替换规则 替换策略可配置多条。各条替换策略的原字符串(repositoryPrefix)不允许重复。每个容器至多只会执行一条替换策略。配置替换策略无需考虑先后顺序,不同的配置顺序结果一致。 原Pod.spec中配置的container和initContainer镜像均支持替换。 若repositoryPrefix不为空,则匹配Pod中所有镜像名中最后一个"/"字符之前的字符串与该值相同的容器,对其最后一个"/"字符之前的部分替换为replaceWith的内容。 若repositoryPrefix为空,则对Pod中镜像名不包含前缀(即没有"/"字符)的容器,镜像名前加上replaceWith的内容和一个"/"字符。
  • 使用ConfigMap配置Prometheus访问CCI 首先使用cci-iam-authenticator作为k8s client端的认证插件,通过用户名/密码的方式配置 IAM 认证信息。您可参照安装并设置kubectl进行配置。配置完成后,执行“kubectl config view”命令,获取$HOME/.kube/config路径下的kubeconfig文件。 图1 kubeconfig文件 以下示例是为Prometheus访问CCI所做的配置。使用此配置文件构造Prometheus连接API Server的信息。您只需将获取到的kubeconfig配置文件内容写入ConfigMap。 kind: ConfigMap apiVersion: v1 metadata: name: kubeconfig data: kubeconfig: |- apiVersion: v1 # cci-iam-authenticator生成的kubeconfig配置文件 ...
  • 使用ConfigMap管理Prometheus配置 为了能够方便的管理配置文件,我们这里将 prometheus.yml 文件用 ConfigMap 的形式进行管理。通过ConfigMap可以方便的做到配置解耦,使得不同环境有不同的配置。相比环境变量,Pod中引用的ConfigMap可以做到实时更新,当您更新ConfigMap的数据后,Pod中引用的ConfigMap会同步刷新。 创建prometheus-config.yml文件,并写入以下内容: kind: ConfigMap apiVersion: v1 metadata: name: prometheus-config labels: name: prometheus-config data: prometheus.yml: |- global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: kuberenete-pods # 对pod中应用的监控,自定义监控 kubernetes_sd_configs: - role: pod kubeconfig_file: /etc/kube/kubeconfig # 指定deployment挂载kubeconfig的路径 namespaces: names: - test # 要监控的命名空间列表 relabel_configs: - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] action: replace target_label: __metrics_path__ regex: (.+) - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:$2 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] - action: replace target_label: kubernetes_namespace - source_labels: [__meta_kubernetes_pod_name] - action: replace target_label: kubernetes_pod_name - job_name: cci-monitor # 监控pod指标 kubernetes_sd_configs: - role: pod kubeconfig_file: /etc/kube/kubeconfig #指定deployment挂载kubeconfig的路径 namespaces: names: - test # 要监控的命名空间列表 relabel_configs: - source_labels: [__meta_kubernetes_pod_annotation_monitoring_cci_io_enable_pod_metrics] - action: drop regex: false - action: replace regex: ([^:]+)(?::\d+)? replacement: $1:19100 source_labels: [__meta_kubernetes_pod_ip] target_label: __address__ - action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:$2 source_labels: [__meta_kubernetes_pod_ip, __meta_kubernetes_pod_annotation_monitoring_cci_io_metrics_port] target_label: __address__
  • 使用Deployment部署Prometheus 创建prometheus的工作负载,将配置项挂载到工作负载中。使用Deployment部署Prometheus所用的镜像,相比于官方镜像额外打包了cci-iam-authenticator二进制。 示例中创建一个名为prometheus-config的Volume,Volume引用名为“prometheus-config”、“kubeconfig”、“prometheus-storage”的ConfigMap,再将Volume挂载到容器的“/tmp”路径下。 kind: Deployment apiVersion: apps/v1 metadata: name: prometheus labels: app.kubernetes.io/component: prometheus app.kubernetes.io/instance: k8s app.kubernetes.io/name: prometheus app.kubernetes.io/part-of: kube-prometheus spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: prometheus # 架构中的组件 app.kubernetes.io/instance: k8s # 标识应用程序实例的唯一名称 app.kubernetes.io/name: prometheus # 应用程序的名称 app.kubernetes.io/part-of: kube-prometheus # 这是一个更高级别应用程序的名称 template: metadata: labels: app.kubernetes.io/component: prometheus app.kubernetes.io/instance: k8s app.kubernetes.io/name: prometheus app.kubernetes.io/part-of: kube-prometheus spec: volumes: # 在Volume中引用ConfigMap - name: prometheus-config configMap: name: prometheus-config defaultMode: 420 # ConfigMap卷中的所有文件默认设置为420 - name: kubeconfig configMap: name: kubeconfig defaultMode: 420 - name: prometheus-storage emptyDir: medium: LocalAuto sizeLimit: 10Gi containers: - name: prometheus image: 'swr.cn-north-7.myhuaweicloud.com/cci_k8s_gcr_io/...' args: # 传给可执行文件的参数(启动参数) - '--storage.tsdb.retention.time=12h' # 监控数据保留的时间 - '--config.file=/etc/prometheus/prometheus.yml' # 配置文件 - '--storage.tsdb.path=/prometheus/' # Prometheus写入数据库的地方 ports: - containerPort: 9090 protocol: TCP resources: limits: cpu: 500m memory: 1Gi requests: cpu: 500m memory: 1Gi volumeMounts: - name: prometheus-config mountPath: /etc/prometheus/ - name: kubeconfig mountPath: /etc/kube/ - name: prometheus-storage mountPath: /prometheus/ terminationMessagePath: /dev/termination-log # 表示容器的异常终止消息的路径 terminationMessagePolicy: File # 仅从终止消息文件中检索终止消息。 imagePullPolicy: Always restartPolicy: Always terminationGracePeriodSeconds: 30 # 优雅关闭的宽限期,即在收到停止请求后,有多少时间来进行资源释放或者做其它操作,如果到了最大时间还没有停止,会被强制结束。 dnsPolicy: ClusterFirst securityContext: {} schedulerName: default-scheduler strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 25% maxSurge: 25% revisionHistoryLimit: 10 progressDeadlineSeconds: 600
  • 处理步骤 进入状态“运行失败”的训练作业详情页,单击“日志”页签,查看NCCL报错。 若出现报错“NCCL timeout”或者“RuntimeError: NCCL communicator was aborted on rank 7”,则表示InfiniBand Verbs超时。单击右侧“重建”,重新创建训练作业,设置环境变量“NCCL_IB_TIMEOUT=22”,提交训练作业后等待作业完成。 若出现报错“NCCL WARN Bootstrap : no socket interface found”或“NCCL INFO Call to connect returned Connection refused, retrying”,则表示NCCL无法找到通信网卡或者是无法正常访问IP地址。需要排查训练代码中是否有设置NCCL_SOCKET_IFNAME环境变量,该环境变量由系统自动注入,训练代码中无需设置。训练代码去除NCCL_SOCKET_IFNAME环境变量设置逻辑后,单击右侧“重建”,重新创建训练作业,提交训练作业后等待作业完成。 等待训练作业是否变成“已完成”状态。 是,故障处理完成。 否,则联系技术支持排查节点状态。
  • 问题现象 训练作业的状态“运行失败”,查看训练作业的“日志”,存在NCCL的报错,例如“NCCL timeout”、“RuntimeError: NCCL communicator was aborted on rank 7”、“NCCL WARN Bootstrap : no socket interface found”或“NCCL INFO Call to connect returned Connection refused, retrying”。
  • 什么是训练作业卡死检测 训练作业在运行中可能会因为某些未知原因导致作业卡死,如果不能及时发现,就会导致无法及时释放资源,从而造成极大的资源浪费。为了节省训练资源成本,提高使用体验,ModelArts提供了卡死检测功能,能自动识别作业是否卡死,并在日志详情界面上展示,同时能配置通知及时提醒用户作业卡死。 由于检测规则的局限性,当前卡死检测存在一定的误检率。如果是作业代码本身逻辑(如长时间sleep)导致的卡死,请忽略。 如果对于误检有疑问或者卡死问题无法自行解决,您可以前往ModelArts开发者论坛进行提问或者搜索问题。
  • 检测规则 卡死检测主要是通过监控作业进程的状态和资源利用率来判定作业是否卡死。会启动一个进程来周期性地监控上述两个指标的变化情况。 进程状态:只要训练作业中存在进程IO有变化,进入下一个检测周期。如果在多个检测周期内,作业所有进程IO都没有变化,则进入资源利用率检测阶段。 资源利用率:在作业进程IO没有变化的情况下,采集一定时间段内的GPU利用率,并根据这段时间内的GPU利用率的方差和中位数来判断资源使用率是否有变化。如果没有变化,则判定作业卡死。
  • 多账号管理概述 数据安全中心 服务具备安全可靠的跨账号数据汇聚和资源访问能力,如果您的账号由组织管理,您可以对组织内所有成员账号进行统一的数据安全防护,而无需逐个登录到成员账号。 通过DSC对组织成员账号进行数据安全防护需要执行以下操作(以A账号管理B账号下的资产为例): 如果A账号是组织管理员,则跳过此步骤。如果A账号不是组织管理员,则由组织管理员将A账号添加为委托管理员,相关操作请参见添加委托管理员。 管理员可以添加或者取消成员的委托管理员权限,组织成员架构变动时需要1-2分钟后刷新页面才能生效。 由组织管理员或委托管理员邀请B账号加入组织,相关操作请参见邀请账号加入组织。 B账号加入组织后,登录A账号在DSC服务“多账号管理”页面的列表中可查看B账号资产信息 有关组织的详细说明请参见《组织用户指南》。 为了请求B账号下的数据资产信息,DSC会自动在B账号中创建服务关联委托: 该委托是云服务委托,“委托权限”为“DS CS erviceLinkedAgencyPolicy”,“委托名称”为“ServiceLinkedAgencyForDataSecurityCenter”,授权范围为“v5服务委托的创建、删除和查询,服务委托的创建和删除仅限于dsc_depend_agency_v5,并将v5策略(DSCServiceAgencyPolicy)绑定到该服务委托下”。 删除B账号时,DSC会自动删除B账号内的服务关联委托。 父主题: 多账号管理
  • 响应示例 状态码: 200 成功响应。 { "volume_types" : [ { "resource_spec_code" : "workspace.volume.high", "volume_type" : "SAS", "volume_product_type" : "workspace", "resource_type" : "hws.resource.type.workspace.volume", "cloud_service_type" : "hws.service.type.vdi", "name" : [ { "language" : "en-us", "value" : "High IO Disk" }, { "language" : "zh-cn", "value" : "高IO磁盘" } ], "volume_type_extra_specs" : { "availability_zone" : "cn-north-5b,cn-north-5c,cn-north-5a", "sold_out_availability_zone" : "" } } ] }
  • 续费与退订实例 购买 OneAccess 实例,只有包年/包月一种计费模式,当购买的OneAccess实例到期后,请在OneAccess华为云控制台单击“续费”进行续费操作,也可在管理控制台续费管理页面进行续费操作,详细操作请参考续费管理。 客户购买包年/包月资源后,如需停止使用,请在OneAccess控制台,单击“退订”执行退订操作。退订资源实例包括资源续费部分和当前正在使用的部分,退订后资源将无法使用。退订资源实例需收取手续费。可在OneAccess华为云控制台单击“退订”进行退订实例操作
  • 注意事项 录制规则配置支持 域名 级、应用级和流级,优先生效细粒度配置(即流级别最优先),同级配置不支持多种录制类型。 直播服务不支持清理录制内容,仅记录直播录制事件,且直播录制事件的数据只保留30天。您可根据业务的实际需求,在OBS中手动清理录制文件或通过OBS生命周期管理功能实现录制文件的存留期限和策略。 直播录制过程中,若直播推流因网络抖动等问题中断,则直播服务将中止录制。当推流重新启动时,直播服务将重新开启新的录制任务。 配置录制后,启动推流即开始录制,结束推流才可停止录制,暂无法按需停启;若在推流过程中删除录制规则,录制仍然会继续,直到推流结束 。 OBS服务会因欠费停服,从而导致直播录制失败,建议您购买OBS存储包。 仅支持对接收到的源直播流进行录制,暂不支持录制直播转码流。
  • 步骤二:云资源授权 OBS桶授权直播服务,允许直播录制文件存储在OBS桶中,若您需要对存储的录制文件进行转码或转封装处理,可选择授权点播服务,将存储在OBS桶中的录制文件托管至点播服务进行管理。 登录 视频直播 控制台。 在左侧导航树中选择“云资源授权”,进入桶授权页面。 请您根据实际需求选择以下操作。 授权直播服务: 在“直播授权”页签中,找到需要存储直播录制文件的OBS桶,在右侧“操作”列,单击“授权”即可。 授权点播服务: 在“点播授权”页签中,找到需要存储直播录制文件的OBS桶,在右侧“操作”列,单击“授权”即可。
  • 修改/删除录制模板 录制模板配置完成后,您还可以根据实际需要进行如下操作。 修改录制模板 录制模板创建完成后,若您需要修改部分参数,可以在录制模板列表中通过单击操作列的“修改”,修改录制模板中的相关参数。 说明:录制类型不支持修改。 图2 修改录制模板信息 删除录制模板 录制模板创建完成后,若您需要删除录制模板,可以在录制模板列表中通过单击操作列的“删除”,删除该录制模板。 图3 删除录制模板信息
  • 访问基线泳道实例 打开cmd命令,执行以下命令访问基线泳道unit-controller组件提供的服务: curl http://${网关访问地址}/unit-controller/hello 网关访问地址取值,请参考查看应用网关信息。 执行结果示例如下: { "unit-consumer": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:base,affinity-tag:base","ip":"x.x.x.x" }, "unit-provider": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:base,affinity-tag:base","ip":"x.x.x.x" }, "unit-controller": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:base,affinity-tag:base","ip":"x.x.x.x" } } 全部流量路由方向为从基线泳道(base)的unit-controller实例流向unit-consumer实例,再流向unit-provider实例。
  • 访问非基线泳道实例 打开cmd命令,执行以下命令访问非基线泳道unit-controller组件提供的服务: curl -H "type:gray" http://${网关访问地址}/unit-controller/hello 网关访问地址取值,请参考查看应用网关信息。 执行结果示例如下: { "unit-consumer": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:base,affinity-tag:base","ip":"x.x.x.x" }, "unit-provider": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:gray,affinity-tag:gray","ip":"x.x.x.x" }, "unit-controller": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:gray,affinity-tag:gray","ip":"x.x.x.x" } } 全部流量路由方向为从非基线泳道(gray)的unit-controller实例流向基线泳道(base)的unit-consumer实例,再流向非基线泳道(gray)的unit-provider实例。
  • 修改/删除录制模板 录制模板配置完成后,您还可以根据实际需要进行如下操作。 修改录制模板 录制模板创建完成后,若您需要修改部分参数,可以在录制模板列表中通过单击操作列的“修改”,修改录制模板中的相关参数。 说明:录制类型不支持修改。 图2 修改录制模板信息 删除录制模板 录制模板创建完成后,若您需要删除录制模板,可以在录制模板列表中通过单击操作列的“删除”,删除该录制模板。 图3 删除录制模板信息
  • 步骤二:云资源授权 OBS桶授权直播服务,允许直播录制文件存储在OBS桶中,若您需要对存储的录制文件进行转码或转封装处理,可选择授权点播服务,将存储在OBS桶中的录制文件托管至点播服务进行管理。 登录视频直播控制台。 在左侧导航树中选择“云资源授权”,进入桶授权页面。 请您根据实际需求选择以下操作。 授权直播服务: 在“直播授权”页签中,找到需要存储直播录制文件的OBS桶,在右侧“操作”列,单击“授权”即可。 授权点播服务: 在“点播授权”页签中,找到需要存储直播录制文件的OBS桶,在右侧“操作”列,单击“授权”即可。
  • 背景信息 VPC终端节点 访问控制遵循最小权限原则,如果终端节点策略没有显式“Allow(允许)”,则默认“Deny(拒绝)”。在购买VPC终端节点时,系统将会为该终端节点生成一个默认策略,该策略允许对OBS的完全访问,您可以在创建VPC终端节点时修改默认策略,还可以在创建完成后,根据需要随时调整VPC终端节点策略。VPC终端节点策略的设置规则参见IAM策略中的Statement标签。 VPC终端节点策略与IAM权限存在部分差异:VPC终端节点策略中不含“Condition”标签。 OBS双端固定的终端节点服务名称: “拉美-墨西哥城一”、“拉美-圣保罗一”和“拉美-圣地亚哥”区域可选择格式为“com.myhuaweicloud.xxx.obs”的终端节点服务。 其余地区endpoint请提交工单咨询技术支持。
  • 实验类别介绍 当前KooLabs云实验共分为云计算、人工智能、鲲鹏、软件开发、 云安全 和快速入门6个实验方向,初级、中级、高级3个难度等级,难度等级越高,操作难度越大,所需实验时间越长。具体为: 快速入门: 华为云各服务基础操作体验入门实验。 云计算: 可体验基于华为云服务体验搭建网站、云应用性能测试、容器应用部署、物联网智慧路灯构建等多种场景的云计算领域实验。 人工智能: 可体验基于华为云AI人工智能服务的花卉分类、 语音识别 、算子开发等多种场景的人工智能领域实验。 鲲鹏: 可体验基于华为云鲲鹏弹性服务器的Web部署、软件/代码迁移、性能测试调优等鲲鹏实验。 软件开发: 可体验基于华为云软件开发平台DevCloud等多种应用的实时对战游戏开发、搭建minikube等软件开发领域实验。 云安全: 可体验华为云安全服务的 Web应用防火墙 防护、靶场平台演练等场景的实验内容。 父主题: 如何进入KooLabs云实验
  • 请求示例 “endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点。 获取录音文件识别结果 GET https://{endpoint}/v1/1609d8170cd86660a81281e5a3a03f8b/asr/transcriber/jobs/567e6536-a89c-13c3-a882-826321939656 Request header: X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
  • 响应示例 状态码:200 成功响应示例 等待识别的响应示例 { "status": "WAITING", "create_time": "2018-12-04T13:10:29.310Z" } 识别完成的响应示例 { "status": "FINISHED", "create_time": "2018-12-04T13:10:29.310Z", "start_time": "2018-12-04T13:16:29.310Z", "finish_time": "2018-12-04T13:35:18.310Z", "audio_duration":7000, "segments": [ { "start_time": 100, "end_time": 1500, "result": { "text": "第一句结果。", "word_info": [ { "start_time": 100, "word": "第一" }, { "start_time": 800, "end_time": 1000, "word": "句" }, { "start_time": 1000, "end_time": 1500, "word": "结果" } ], "analysis_info": { "role": "AGENT", "emotion": "NORMAL", "speed": 5.62 } } } ] } 状态码:400 失败响应示例 { "error_code": "SIS.30006", "error_msg": "Invalid data found when processing input", "status": "ERROR", "create_time": "2019-05-08 T11:01:41Z", "start_time": "2019-06-06T15:10:12.423Z", "finish_time": "2019-06-06T15:10:12.424Z" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 是否必选 参数类型 描述 job_id 否 String 录音文件识别任务标识符。 使用“callback_url”回调url时,该字段会随结果发送至用户服务器。 使用get接口查询,不会出现该字段。 status 否 String 当前识别状态。具体状态如下所示: WAITING 等待识别。 FINISHED 识别已经完成。 ERROR 识别过程中发生错误。 create_time 否 String 任务创建时间,遵循 RFC 3339格式。 格式示例:2018-12-04T13:10:29.310Z。 start_time 否 String 开始识别时间,遵循 RFC 3339格式。 当status为FINISHED或ERROR时存在。 格式示例:2018-12-04T13:10:29.310Z。 finish_time 否 String 识别完成时间,遵循 RFC 3339格式。 当status为FINISHED或ERROR时存在。 格式示例:2018-12-04T13:10:29.310Z。 audio_duration 否 Integer 提交音频的时长,单位ms。 segments 否 Array of Segment objects 识别结果, 多句结果的数组。 表4 Segment 参数 是否必选 参数类型 描述 start_time 是 Integer 一句的起始时间戳,单位ms。 end_time 是 Integer 一句的结束时间戳,单位ms。 result 是 TranscriberResult object 调用成功表示识别结果,调用失败时无此字段。数据结构参见result表。 表5 TranscriberResult 参数 是否必选 参数类型 描述 text 是 String 识别结果文本。 analysis_info 否 AnalysisInfoResult object 每一句的质检分析结果对象。 仅在识别配置中的need_analysis_info不为null时存在该返回结果。数据结构参见analysisinfo数据表。 word_info 否 Array of WordInfo objects 分词输出列表。 表6 AnalysisInfoResult 参数 是否必选 参数类型 描述 role 否 String 角色类型,目前对于8k音频以及16k双声道音频仅支持 AGENT(座席),USER(用户)。可用于电话质检等场景。对于16k单声道音频,支持多个说话人,取值范围是(speaker1 ~ speaker10),最多支持10个说话人,可用于会议场景。 emotion 否 String 情绪类型,目前仅支持NORMAL(正常),ANGRY(愤怒),UNKNOWN(未知)。 在识别配置中emotion为true时存在。 speed 否 Float 语速信息,单位是每秒字数。 在识别配置中speed为true时存在。 表7 WordInfo 参数 是否必选 参数类型 描述 start_time 否 Integer 起始时间 end_time 否 Integer 结束时间 word 否 String 分词 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 入门导读 Astro工作流(Astro Flow,简称AstroFlow)可帮助开发者快速构建业务流程及自动化工作流,轻松实现人财物事的调、转、入、离、审、评和批等任务的数字化需求。 初次接触AstroFlow的用户,请仔细阅读该入门导读。通过入门导读可帮助您由浅入深的学习AstroFlow,轻松完成自动化工作流的构建。 图1 入门指引 表1 阶段分解 阶段 任务 内容说明 难易程度 准备工作 准备登录账号 使用AstroFlow服务前,您需要先注册一个华为账号,并进行充值。 - 申请AstroFlow公测 AstroFlow当前处于公测阶段,在使用AstroFlow前,请先申请公测。 - 购买AstroFlow实例 公测申请通过后,需要购买一个AstroFlow实例。AstroFlow实例是一个独立的资源空间,所有的操作都是在实例内进行,不同实例间的资源相互隔离。 - 初学入门 员工请假流程 通过创建一个简易的员工请假流程,帮助您快速上手AstroFlow。 ★ 进阶实战 面试流程管理 通过创建一个面试管理流程,帮助您快速熟悉AstroFlow中的子表单组件。 ★★
共100000条