华为云用户手册

  • 代码示例 如下示例仅供参考,最新代码请前往获取SDK章节获取并运行。 import com.huawei.sis.bean.SisConfig; import com.huawei.sis.bean.SisConstant; import com.huawei.sis.bean.request.AsrCustomShortRequest; import com.huawei.sis.bean.response.AsrCustomShortResponse; import com.huawei.sis.bean.AuthInfo; import com.huawei.sis.client.AsrCustomizationClient; import com.huawei.sis.exception.SisException; import com.huawei.sis.util.IOUtils; import java.util.List; import com.huawei.sis.util.JsonUtils; /** * 一句话识别 * * Copyright 2021 Huawei Technologies Co.,Ltd. */ public class AsrCustomizationDemo { private static final int SLEEP_TIME = 500; private static final int MAX_POLLING_NUMS = 1000; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 private String ak = System.getenv("HUAWEICLOUD_SDK_AK"); private String sk = System.getenv("HUAWEICLOUD_SDK_SK"); private String region = ""; // 区域,如cn-north-1、cn-north-4 private String projectId = ""; // 项目id。登录管理控制台,鼠标移动到右上角的用户名上,在下拉列表中选择我的凭证,在项目列表中查看项目id。多项目时,展开“所属区域”,从“项目ID”列获取子项目ID。 // 一句话识别参数 private String path = ""; // 音频文件路径,如D:/test.wav等,sdk会将音频文件转化为base64编码 private String pathAudioFormat = ""; // 文件格式,如wav等 private String pathProperty = "chinese_16k_general"; // 属性字符串,language_sampleRate_domain, 16k模型推荐使用chinese_16k_general /** * 设置一句话识别参数,所有参数均有默认值,不配置也可使用 * * @param request 一句话识别请求 */ private void setShortParameter(AsrCustomShortRequest request) { // 设置是否添加标点,默认是no request.setAddPunc("yes"); // 设置是否将语音中的数字转写为阿拉伯数字,yes或no,默认yes request.setDigitNorm("no"); } /** * 定义config,所有参数可选,设置超时时间等。 * * @return SisConfig */ private SisConfig getConfig() { SisConfig config = new SisConfig(); // 设置连接超时,默认10000ms config.setConnectionTimeout(SisConstant.DEFAULT_CONNECTION_TIMEOUT); // 设置读取超时,默认10000ms config.setReadTimeout(SisConstant.DEFAULT_READ_TIMEOUT); // 设置代理, 一定要确保代理可用才启动此设置。 代理初始化也可用不加密的代理,new ProxyHostInfo(host, port); // ProxyHostInfo proxy = new ProxyHostInfo(host, port, username, password); // config.setProxy(proxy); return config; } /** * 一句话识别demo */ private void shortDemo() { try { // 1. 初始化AsrCustomizationClient // 定义authInfo,根据ak,sk,region,projectId AuthInfo authInfo = new AuthInfo(ak, sk, region, projectId); // 设置config,主要与超时有关 SisConfig config = getConfig(); // 根据authInfo和config,构造AsrCustomizationClient AsrCustomizationClient asr = new AsrCustomizationClient(authInfo, config); // 2. 配置请求 String data = IOUtils.getEncodeDataByPath(path); AsrCustomShortRequest request = new AsrCustomShortRequest(data, pathAudioFormat, pathProperty); // 设置请求参数,所有参数均为可选 setShortParameter(request); // 3. 发送请求,获取响应 AsrCustomShortResponse response = asr.getAsrShortResponse(request); // 打印结果 System.out.println(JsonUtils.obj2Str(response, true)); } catch (SisException e) { e.printStackTrace(); System.out.println("error_code:" + e.getErrorCode() + "\nerror_msg:" + e.getErrorMsg()); } } public static void main(String[] args) { AsrCustomizationDemo demo = new AsrCustomizationDemo(); demo.shortDemo(); } }
  • 代码示例 如下示例仅供参考,最新代码请前往获取SDK章节获取并运行。 import com.huawei.sis.bean.AuthInfo; import com.huawei.sis.bean.SisConfig; import com.huawei.sis.bean.SisConstant; import com.huawei.sis.bean.request.TtsCustomRequest; import com.huawei.sis.bean.response.TtsCustomResponse; import com.huawei.sis.client.TtsCustomizationClient; import com.huawei.sis.exception.SisException; import com.huawei.sis.util.JsonUtils; /** * 语音合成 的demo * * Copyright 2021 Huawei Technologies Co.,Ltd. */ public class TtsCustomizationDemo { private static final int DEFAULT_PITCH = 0; private static final int DEFAULT_SPEED = 0; private static final int DEFAULT_VOLUME = 50; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 private String ak = System.getenv("HUAWEICLOUD_SDK_AK"); private String sk = System.getenv("HUAWEICLOUD_SDK_SK"); private String region = ""; // 区域,如cn-north-1、cn-north-4 private String projectId = ""; // 项目id。登录管理控制台,鼠标移动到右上角的用户名上,在下拉列表中选择我的凭证,在项目列表中查看项目id。多项目时,展开“所属区域”,从“项目ID”列获取子项目ID。 private String text = ""; // 待合成的文本 private String path = ""; // 设置本地音频保存路径.可选择不保存到本地。需具体到文件,如D:/test.wav /** * 用于语音合成参数设置,例如发声人、音高、语速、音量、采样率、连接超时。所有参数均可以不设置,采用默认。 * * @param request 语音合成请求 */ private void setParameter(TtsCustomRequest request) { // 设置语音格式,可选MP3,pcm等,默认wav request.setAudioFormat("wav"); // 音高,[-500, 500], 默认0 request.setPitch(DEFAULT_PITCH); // 语速,[-500, 500],默认0 request.setSpeed(DEFAULT_SPEED); // 音量,[0, 100],默认50 request.setVolume(DEFAULT_VOLUME); // 当前支持8000和16000,默认8000 request.setSampleRate("8000"); // 设置property,特征字符串,{language}_{speaker}_{domain} request.setProperty("chinese_xiaoyu_common"); // 设置返回数据是否保存,默认不保存。若保存,则需要设置一下保存路径,如D:/1.wav request.setSaved(true); request.setSavePath(path); } /** * 定义config,所有参数可选,设置超时时间等。 * * @return SisConfig */ private SisConfig getConfig() { SisConfig config = new SisConfig(); // 设置连接超时,默认10000ms config.setConnectionTimeout(SisConstant.DEFAULT_CONNECTION_TIMEOUT); // 设置读取超时,默认10000ms config.setReadTimeout(SisConstant.DEFAULT_READ_TIMEOUT); // 设置代理, 一定要确保代理可用才启动此设置。 代理初始化也可用不加密的代理,new ProxyHostInfo(host, port); // ProxyHostInfo proxy = new ProxyHostInfo(host, port, username, password); // config.setProxy(proxy); return config; } /** * 根据文本和api,获取生成的音频数据 */ private void ttsCustomDemo() { try { // 1. 初始化TtsCustomizationClient // 定义authInfo,根据ak,sk,region, projectId. AuthInfo authInfo = new AuthInfo(ak, sk, region, projectId); // 定义config,所有参数可选,设置超时时间。 SisConfig config = getConfig(); // 根据authInfo和config,构造TtsCustomizationClient TtsCustomizationClient tts = new TtsCustomizationClient(authInfo, config); // 2. 配置请求 TtsCustomRequest request = new TtsCustomRequest(text); // 设置参数,所有参数均可选,如果要保存合成音频文件,需要在request设置 setParameter(request); // 3. 发送请求,获取响应。具体结果可通过response.getXX获取。 TtsCustomResponse response = tts.getTtsResponse(request); System.out.println(JsonUtils.obj2Str(response, true)); } catch (SisException e) { e.printStackTrace(); System.out.println("error_code:" + e.getErrorCode() + "\nerror_msg:" + e.getErrorMsg()); } } public static void main(String[] args) { TtsCustomizationDemo demo = new TtsCustomizationDemo(); demo.ttsCustomDemo(); } }
  • 示例代码 如下示例仅供参考,最新代码请前往获取SDK章节获取并运行。 import SwiftUI import AVFAudio import SIS struct Config { static let region = "cn-north-4" static let projectId = "" } class WebSocketDelegate: NSObject, WebSocketConnectionDelegate, ObservableObject { @Published var result = "" func onConnected(connection: WebSocketConnection) { print("connected") } func onDisconnected(connection: WebSocketConnection) { print("disconnected") } func onError(connection: WebSocketConnection, error: Error) { print(error.localizedDescription) } func onMessage(connection: WebSocketConnection, response: RASRResponse) { if response.respType == "RESULT" { self.result = response.segments![0].result.text }else if (response.respType == "ERROR"){ self.result = response.errorMsg! } } } enum STATUS { case IDLE case TRANSCRIBING } struct RASRView: View { @ObservedObject var delegate = WebSocketDelegate() @State var client: RASRClient? @State var status = STATUS.IDLE var body: some View { VStack { Button("开始录音") { do { try AVAudioSession.sharedInstance().setCategory(.record) try AVAudioSession.sharedInstance().setActive(true) } catch { self.delegate.result = "初始化录音失败" return } //认证用的AK和SK硬编码在代码中或明文存储都有很大安全风险,建议在配置文件或环境变量中密文存放,使用时解密,确保安全。 //本示例以AK和SK保存在环境变量中来实现身份验证为例,运行本示例请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 let ak = ProcessInfo.processInfo.environment["HUAWEICLOUD_SDK_AK"]! let sk = ProcessInfo.processInfo.environment["HUAWEICLOUD_SDK_SK"]! let authInfo = AuthInfo(ak: ak, sk: sk, region: Config.region, projectId: Config.projectId) var config = RASRConfig() config.addPunc = "yes" config.digitNorm = "no" config.interimResults = "yes" self.client = RASRClient(auth: authInfo, config: config) self.delegate.result = "" self.client?.delegate = self.delegate self.client?.start() self.status = .TRANSCRIBING } .buttonStyle(.borderedProminent) .disabled(self.status == .TRANSCRIBING) Button("停止录音") { self.client?.stop() self.status = .IDLE } .buttonStyle(.borderedProminent) .disabled(self.status == .IDLE) Text(self.delegate.result) } .padding() } } struct RealTimeView_Previews: PreviewProvider { static var previews: some View { RASRView() } }
  • 响应参数 结果响应类为RASRResponse,详见表2。调用失败处理方法请参见错误码。 表2 RASRResponse 参数名 参数类型 说明 respType String 参数值为RESULT,表示识别结果响应。 traceId String 服务内部的令牌,可用于在日志中追溯具体流程。 segments Array of RASRSentence 多句结果,请参考表3。 errorCode String 错误码。 errorMsg String 错误描述。 表3 RASRSentence 参数名 参数类型 说明 startTime Integer 一句的起始时间戳,单位为ms。 endTime Integer 一句的结束时间戳,单位为ms。 isFinal Boolen true表示是最终结果, false表示为中间临时结果。 result RASRResult 调用成功表示识别结果,调用失败时无此字段。 请参考表4。 表4 RASRResult 参数名 参数类型 说明 text String 识别结果。 score Float 识别结果的置信度,取值范围:0~1。此值仅会在最终结果时被赋值,在中间结果时统一置为“0.0”。 说明: 目前置信度作用不是太大,请勿过多依赖此值。
  • 初始化Client 初始化RASRClient,参数为AuthInfo和RASRConfig。 表1 AuthInfo 参数名称 是否必选 参数类型 描述 ak 是 String 用户的ak,可参考AK/SK认证。 sk 是 String 用户的sk,可参考AK/SK认证。 region 是 String 区域,如cn-north-4,参考终端节点。 projectId 是 String 项目ID,同region一一对应,参考获取项目ID。 表2 RASRConfig 参数名称 是否必选 参数类型 描述 audioFormat 是 String 音频格式,SDK内置录音功能只支持pcm16k16bit,参见《API参考》中开始识别章节。 property 是 String 属性字符串,language_sampleRate_domain, 如chinese_16k_general,参见《API参考》中开始识别章节。 addPunc 否 String 表示是否在识别结果中添加标点,取值为yes 、 no,默认no。 digitNorm 否 String 表示是否将语音中的数字识别为阿拉伯数字,取值为yes 、 no,默认为yes。 vocabularyId 否 String 热词表id,不使用则不填写。 创建热词表请参考《API参考》中创建热词表章节。 interimResults 否 String 是否输出中间结果,可以为yes或no。默认为no,表示不输出中间结果。
  • 示例代码 如下示例仅供参考,最新代码请前往获取SDK章节获取并运行。 import com.huawei.sis.bean.AuthInfo; import com.huawei.sis.bean.RasrListener; import com.huawei.sis.bean.SisConfig; import com.huawei.sis.bean.SisConstant; import com.huawei.sis.bean.request.SasrWebsocketRequest; import com.huawei.sis.bean.response.RasrResponse; import com.huawei.sis.bean.response.StateResponse; import com.huawei.sis.client.SasrWebsocketClient; import com.huawei.sis.util.JsonUtils; /** * 一句话识别 websocket demo * * Copyright 2021 Huawei Technologies Co.,Ltd. */ public class SasrWebsocketDemo { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 private String ak = System.getenv("HUAWEICLOUD_SDK_AK"); private String sk = System.getenv("HUAWEICLOUD_SDK_SK"); private String region = "cn-north-4"; // 区域,如cn-north-1、cn-north-4 private String projectId = ""; // 项目id,在我的凭证查看。参考https://support.huaweicloud.com/api-sis/sis_03_0008.html private String path = ""; // 本地音频路径,如D:/test.wav, sdk也支持byte数组传送 private String audioFormat = "pcm16k16bit"; // 音频格式,如pcm16k16bit,详见api文档或sdk文档 private String property = "chinese_16k_common"; // 属性字符串,language_sampleRate_domain,如chinese_16k_common, 详见api文档 /** * 一句话识别websocket版本参数设置,所有参数设置均为可选,均有默认值。用户根据需求设置参数。 * * @param request request请求,包含各种参数 */ private void setParameters(SasrWebsocketRequest request) { // 1. 设置是否添加标点符号,yes 或 no, 默认"no" request.setAddPunc("yes"); // 2. 设置是否显示中间结果,yes或no,默认“no” request.setIntermediateResult("no"); // 3. 设置热词表id, 若没有则设置,否则会报错。 // request.setVocabularyId(""); // 4. 设置是否将音频中数字转写为阿拉伯数字,yes or no,默认yes request.setDigitNorm("no"); // 5. 设置是否需要word_info,yes or no, 默认no request.setNeedWordInfo("no"); } /** * 定义config,所有参数可选,设置超时时间等。 * * @return SisConfig */ private SisConfig getConfig() { SisConfig config = new SisConfig(); // 设置连接超时,默认10000ms config.setConnectionTimeout(SisConstant.DEFAULT_CONNECTION_TIMEOUT); // 设置读取超时,默认10000ms config.setReadTimeout(SisConstant.DEFAULT_READ_TIMEOUT); // 设置代理, 一定要确保代理可用才启动此设置。 代理初始化也可用不加密的代理,new ProxyHostInfo(host, port); // ProxyHostInfo proxy = new ProxyHostInfo(host, port, username, password); // config.setProxy(proxy); return config; } /** * 获取监听器,监听器的监听函数。 * * @return RasrListener,用于监听websocket */ private RasrListener getRasrListener() { RasrListener rasrListener = new RasrListener() { @Override /** * 连接成功回调 */ public void onTranscriptionConnect() { System.out.println("sasr websocket connected"); } @Override /** * 断开连接回调 */ public void onTranscriptionClose() { System.out.println("sasr websocket closed"); } @Override /** * 响应结果回调 */ public void onTranscriptionResponse(RasrResponse response) { printResponse(response); } @Override /** * 识别开始回调 */ public void onTranscriptionBegin(StateResponse response) { printResponse(response); } @Override /** * 识别结束回调 */ public void onSTranscriptionEnd(StateResponse response) { printResponse(response); } @Override /** * 识别出错回调 */ public void onTranscriptionFail(StateResponse response) { printResponse(response); } @Override public void onEvent(String event) { log.info("receive event {}", event); } }; return rasrListener; } private void printResponse(Object response) { try { System.out.println(JsonUtils.obj2Str(response, true)); } catch (Exception e) { e.printStackTrace(); } } /** * 实时语音识别 SDK的工作流程 */ private void process() { // 1. 实现监听器接口listener,用户自定义收到响应的处理逻辑。 RasrListener listener = getRasrListener(); // 2. 初始化SasrWebsocketClient AuthInfo authInfo = new AuthInfo(ak, sk, region, projectId); SasrWebsocketClient sasrWebsocketClient = new SasrWebsocketClient(authInfo, listener, getConfig()); try { // 3. 配置参数 // audioFormat为支持格式、property为属性字符串,具体填写请详细参考api文档 SasrWebsocketRequest request = new SasrWebsocketRequest(audioFormat, property); setParameters(request); // 4 连接websocket sasrWebsocketClient.sasrConnect(request); // 5. 发送开始请求、发送音频、发送end请求 // 发送开始请求,即将开始请求连带配置发送至服务端 sasrWebsocketClient.sendStart(); // 也可以自己控制发送速率.byteLen为每次发送大小,sleepTime为每次发送后睡眠时间(ms),一些非持续获取音频场景不需要睡眠,可设置为0. sasrWebsocketClient.sendAudio(path); // sasrWebsocketClient.sendAudio(path, byteLen, sleepTime); // 可直接发送byte流,即byte数组 // byte[] data = IOUtils.getFileData(path); // sasrWebsocketClient.sendByte(data); // sasrWebsocketClient.sendByte(data, byteLen, sleepTime); // 发送结尾请求 sasrWebsocketClient.sendEnd(); } catch (Exception e) { e.printStackTrace(); } finally { // 6. 关闭客户端。发送完毕后,此步一定要实施,否则服务端因为20s没有接受任何消息而报异常。 sasrWebsocketClient.close(); } } public static void main(String[] args) { SasrWebsocketDemo sasrWebsocketDemo = new SasrWebsocketDemo(); sasrWebsocketDemo.process(); } }
  • 代码示例 如下示例仅供参考,最新代码请前往获取SDK章节获取并运行。 import com.cloud.sdk.util.StringUtils; import com.huawei.sis.bean.AuthInfo; import com.huawei.sis.bean.RttsListener; import com.huawei.sis.bean.SisConfig; import com.huawei.sis.bean.SisConstant; import com.huawei.sis.bean.request.RttsRequest; import com.huawei.sis.bean.response.RttsDataResponse; import com.huawei.sis.bean.response.StateResponse; import com.huawei.sis.client.RttsClient; import com.huawei.sis.util.JsonUtils; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; /** * 实时语音合成Demo * * Copyright 2021 Huawei Technologies Co.,Ltd. */ public class RttsDemo { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 private String ak = System.getenv("HUAWEICLOUD_SDK_AK"); private String sk = System.getenv("HUAWEICLOUD_SDK_SK"); private String region = ""; // 区域,如cn-north-1、cn-north-4 private String projectId = ""; // 项目id,在我的凭证查看。参考https://support.huaweicloud.com/api-sis/sis_03_0008.html private String text = ""; // 待合成的文本 private String path = ""; // 合成音频存储的路径 public static void main(String[] args) { RttsDemo rttsDemo = new RttsDemo(); rttsDemo.process(); } /** * 实时语音合成参数设置,所有参数设置均为可选,均有默认值。用户根据需求设置参数。 */ private RttsRequest getRttsRequest() { RttsRequest request = new RttsRequest(); request.setCommand("START"); // 设置待合成文本,文本长度1-500字 request.setText(text); RttsRequest.Config config = new RttsRequest.Config(); // 设置发音人属性,{language}_{speaker}_{domain}, 详见api文档 config.setPorperty("chinese_xiaoyan_common"); // 设置合成音频格式,默认pcm config.setAudioFormat("pcm"); // 设置合成音频采样率,当前支持8000和16000,默认8000 config.setSampleRate("8000"); // 设置合成音频音量大小,取值0-100,默认50 config.setVolume(50); // 设置合成音频音高大小,取值-500-500,默认0 config.setPitch(0); // 设置合成音频语速大小,取值-500-500,默认0 config.setSpeed(0); request.setConfig(config); return request; } /** * 定义config,所有参数可选,设置超时时间等。 * * @return SisConfig */ private SisConfig getConfig() { SisConfig config = new SisConfig(); // 设置连接超时,默认10000ms config.setConnectionTimeout(SisConstant.DEFAULT_CONNECTION_TIMEOUT); // 设置读取超时,默认10000ms config.setReadTimeout(SisConstant.DEFAULT_READ_TIMEOUT); // 设置websocket等待超时时间,默认20000ms config.setWebsocketWaitTimeout(SisConstant.DEFAULT_WEBSOCKET_WAIT_TIME); // 设置代理, 一定要确保代理可用才启动此设置。 代理初始化也可用不加密的代理,new ProxyHostInfo(host, port); // ProxyHostInfo proxy = new ProxyHostInfo(host, port, username, password); // config.setProxy(proxy); return config; } private void printResponse(Object response) { try { System.out.println(JsonUtils.obj2Str(response, true)); } catch (Exception e) { e.printStackTrace(); } } /** * 实时语音转写SDK的工作流程 * 1. RttsClient只能发送一次文本,如有多个文本需发送,需要多次新建RttsClient实例 * 2. 实时语音合成会多次收到音频响应,默认格式为pcm。在demo中会把多次返回的结果拼接起来,存入文件中。 * 3. 当服务端完成合成任务后,会返回end响应。 */ private void process() { // 1. 实现监听器接口RttsListener,用户自定义收到响应的处理逻辑。 RttsListener rttsListener = new MyRttsListener(path); // 2. 初始化RttsClient,每个client只能发送一次text,如需发送多次text,需要建立多个client AuthInfo authInfo = new AuthInfo(ak, sk, region, projectId); RttsClient rttsClient = new RttsClient(authInfo, rttsListener, getConfig()); // 3. 配置参数 // audioFormat为支持格式、property为属性字符串,具体填写请详细参考api文档 RttsRequest request = getRttsRequest(); // 4. 发送待合成文本,等待结果 try { rttsClient.synthesis(request); } catch (Exception e) { e.printStackTrace(); } } public class MyRttsListener implements RttsListener { private String path; private FileOutputStream fos = null; public MyRttsListener() { super(); } public MyRttsListener(String path) { this.path = path; } @Override public void onTranscriptionResponse(RttsDataResponse rttsDataResponse) { System.out.println("receive binary data " + rttsDataResponse.getData().length); if (fos == null) { return; } try { fos.write(rttsDataResponse.getData()); } catch (IOException e) { e.printStackTrace(); } } @Override public void onTranscriptionBegin(StateResponse response) { printResponse(response); try { if (StringUtils.isNullOrEmpty(path)) { return; } File f = new File(path); fos = new FileOutputStream(f); } catch (IOException e) { e.printStackTrace(); } } @Override public void onSTranscriptionEnd(StateResponse response) { printResponse(response); close(); } @Override public void onTranscriptionFail(StateResponse response) { printResponse(response); close(); } private void close() { if (fos == null) { return; } try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } }
  • 代码示例 如下示例仅供参考,最新代码请前往获取SDK章节获取并运行。 import com.huawei.sis.bean.AuthInfo; import com.huawei.sis.bean.SisConfig; import com.huawei.sis.bean.SisConstant; import com.huawei.sis.bean.request.FlashLasrRequest; import com.huawei.sis.bean.response.FlashLasrResponse; import com.huawei.sis.client.FlashLasrClient; import com.huawei.sis.exception.SisException; import com.huawei.sis.util.JsonUtils; /** * 录音文件极速版Demo * * Copyright 2021 Huawei Technologies Co.,Ltd. */ public class FlashLasrDemo { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 private String ak = System.getenv("HUAWEICLOUD_SDK_AK"); private String sk = System.getenv("HUAWEICLOUD_SDK_SK"); private String region = ""; // 区域,如cn-north-1、cn-north-4 private String projectId = ""; // 项目id,在我的凭证查看。参考https://support.huaweicloud.com/api-sis/sis_03_0008.html private String obsBucketName = ""; // obs桶名 private String obsObjectKey = ""; // obs对象的key private String audioFormat = ""; // 文件格式,如wav等, 支持格式详见api文档 private String property = ""; // 属性字符串,language_sampleRate_domain, 如chinese_8k_common, 详见api文档 /** * 设置录音文件识别极速版参数 * * @param request 录音文件极速版请求 */ private void setShortParameter(FlashLasrRequest request) { // 以下参数必选 // 设置桶名,必选 request.setObsBucketName(obsBucketName); // 设置桶内对象名,必选 request.setObsObjectKey(obsObjectKey); // 设置格式,必选 request.setAudioFormat(audioFormat); // 设置属性,必选 request.setProperty(property); // 以下参数可选 // 设置是否添加标点,默认是no request.setAddPunc("yes"); // 设置热词id,详见api文档,若热词id不存在,则会报错 // request.setVocabularyId(""); // 设置是否将音频中数字转写为阿拉伯数字,yes or no,默认yes request.setDigitNorm("no"); // 设置是否需要word_info,yes or no, 默认no request.setNeedWordInfo("no"); // 设置是否只识别首个声道的音频数据,默认no request.setFirstChannelOnly("no"); } /** * 定义config,所有参数可选,设置超时时间等。 * * @return SisConfig */ private SisConfig getConfig() { SisConfig config = new SisConfig(); // 设置连接超时,默认10000ms config.setConnectionTimeout(SisConstant.DEFAULT_CONNECTION_TIMEOUT); // 设置读取超时,默认10000ms config.setReadTimeout(SisConstant.DEFAULT_READ_TIMEOUT); // 设置代理, 一定要确保代理可用才启动此设置。 代理初始化也可用不加密的代理,new ProxyHostInfo(host, port); // ProxyHostInfo proxy = new ProxyHostInfo(host, port, username, password); // config.setProxy(proxy); return config; } /** * 录音文件极速版demo。 */ private void flashLasrDemo() { try { // 1. 初始化FlashLasrClient // 定义authInfo,根据ak,sk,region,projectId AuthInfo authInfo = new AuthInfo(ak, sk, region, projectId); // 设置config,主要与超时有关 SisConfig config = getConfig(); // 根据authInfo和config,构造FlashLasrClient FlashLasrClient flashLasrClient = new FlashLasrClient(authInfo, config); // 2. 配置请求 FlashLasrRequest request = new FlashLasrRequest(); setShortParameter(request); // 3. 发送请求,获取响应。具体结果可通过response.getXX获取。 FlashLasrResponse response = flashLasrClient.getFlashLasrResponse(request); System.out.println(JsonUtils.obj2Str(response, true)); } catch (SisException e) { e.printStackTrace(); System.out.println("error_code:" + e.getErrorCode() + "\nerror_msg:" + e.getErrorMsg()); } } public static void main(String[] args) { FlashLasrDemo demo = new FlashLasrDemo(); demo.flashLasrDemo(); } }
  • 步骤3:调用一句话识别 执行AsrCustomizationDemo.java文件,“main”函数调用一句话识别(注意注释掉录音文件识别),可查看返回结果,显示如下。 { "trace_id": "7f0ba401-d82d-4bfb-8ae7-600bf54ce4f6", "result": { "text": "欢迎来到xx公司。", "score": 0.06588845654993515 } }
  • 安全管理视图 控制台的“安全管理”视图以全局视角洞察云上资产安全态势。帮助用户提前规避安全风险。各个模块的简介和功能如表5所示。 表5 模块概述和使用 模块 概述 如何使用 安全评分 显示资产安全状况评分的信息。 单击“立即查看”,可查看资产安全状况详情。 单击“重新体检”,可重新进行资源安全状况体检。 安全监控 实时监控最新威胁告警事件、最新漏洞风险事件和最新基线事件。 点击“查看更多”跳转至“全部结果”,进行结果的查看和处理。 安全趋势 显示近7天安全评分的趋势。 - 常见问题 显示安全类型的常见问题。 单击“查看更多”,查看更多的常见问题。
  • 流量镜像使用流程 使用流量镜像功能,您需要创建镜像会话,通过在镜像会话中关联筛选条件、镜像源和镜像目的,实现指定流量的镜像,使用流程如图5所示。 图5 流量镜像使用流程 表7 流量镜像使用流程说明 步骤 说明 操作指导 设置镜像会话基本信息 设置镜像会话的名称,优先级等参数,开始创建镜像会话。 创建镜像会话 关联筛选条件 选择网络流量的筛选条件,关联至镜像会话。 一个镜像会话可以关联一个筛选条件,如果没有合适的筛选条件,您可以创建筛选条件,具体请参见创建筛选条件。 关联镜像源 选择弹性网卡作为镜像源,关联至镜像会话。 一个镜像会话可关联多个镜像源。 当前流量镜像仅支持c7t规格云服务器的弹性网卡作为镜像源。 关联镜像目的 选择云服务器网卡或者弹性负载均衡ELB实例作为镜像目的,关联至镜像会话。 创建完成 镜像会话创建完成并开启后,对于镜像源符合筛选条件的网络流量,将被镜像到镜像目的实例。 如果您在创建镜像会话期间关闭了镜像会话,则无法监控镜像源的网络流量,开启镜像会话,具体请参见开启/关闭镜像会话。
  • 流量镜像应用场景 网络流量检查: 当您需要进行网络入侵检测时,通过流量镜像功能可以镜像您所需的网络流量。获取到流量后,您可以使用安全软件对流量进行全面分析检查,快速查找安全漏洞,确保网络安全。 网络流量审计: 通过流量镜像功能,您可以将流量镜像到指定的平台进行审计分析,适用于金融等对安全合规性要求比较高的业务场景。 网络问题定位: 通过流量镜像功能,运维工程师直接查看镜像的流量来排查问题,而不用通过业务服务器抓取报文,避免了运维期间可能对业务造成的影响。
  • 流量镜像约束与限制 如图4所示,流量镜像的报文采用标准的VXLAN报文格式封装,更多有关VXLAN协议的信息,请参见RFC 7348。当被镜像的报文长度加上VXLAN报文长度大于镜像源实例的MTU值时,系统会对报文进行截断。为了防止报文被截断,建议您在IPv4场景下,设置弹性网卡的MTU值比链路支持的MTU值至少小64字节。 图4 流量镜像报文格式 当前流量镜像仅支持c7t规格云服务器的弹性网卡作为镜像源。 如果一个弹性网卡已被用作镜像源,则镜像目的不能使用该弹性网卡。 流量镜像会占用弹性网卡绑定实例的带宽,并且不做独立限速。 当一个镜像目的实例需要接收来自多个镜像源的流量镜像时,为了确保正常使用,请您根据业务实际需要合理规划云服务器的规格。 根据流量镜像的匹配规则,同一个镜像源的同一个报文同时符合多个筛选条件规则,也仅会被匹配一次,并且根据采集策略决定是否镜像到目的实例。 对于镜像源弹性网卡已被安全组或者网络ACL拦截丢弃的报文,流量镜像不会镜像该部分报文。 当镜像源的报文符合筛选条件被镜像时,该报文不受镜像源安全组或者网络ACL出方向规则约束,即您无需在镜像源的安全组或者网络ACL做额外配置。但是如果需要将报文镜像到镜像目的实例时,则需要为镜像目的实例所在的安全组和网络ACL配置以下规则: 安全组规则:入方向允许来自镜像源弹性网卡的IP访问4789端口的UDP协议报文。假如镜像源弹性网卡的IP地址为192.168.0.27,则安全组规则配置示例如表5所示,具体方法请参见添加安全组规则。 表5 安全组规则配置示例 规则类别 策略 类型 协议端口 源地址 入方向规则 允许 IPv4 自定义UDP: 4789 IP地址:192.168.0.27/32 此处仅为示例,请根据实际情况配置。 网络ACL规则:入方向允许来自镜像源弹性网卡的IP访问所有端口的UDP协议报文。假如镜像源弹性网卡的IP地址为192.168.0.27,则网络ACL规则配置示例如表6所示,具体方法请参见添加网络ACL规则。 表6 网络ACL规则配置示例 规则类别 类型 策略 协议 源地址 源端口范围 目的地址 目的端口范围 入方向规则 IPv4 允许 UDP IP地址:192.168.0.27/32 此处仅为示例,请根据实际情况配置。 此处为空,表示全部端口。 IP地址:10.10.0.0/24 此处仅为示例,请根据实际情况配置。 4789 必须放通4789端口,其他端口请根据实际情况配置。 不同的 虚拟私有云VPC 之间网络不通,如果镜像源和镜像目的实例不在同一个VPC内,则您需要使用VPC对等连接或者企业路由器连通VPC之间的网络。 VPC对等连接的使用方法,请参见对等连接简介。 企业路由器的使用方法,请参见通过企业路由器实现同区域VPC互通。
  • 流量镜像配额说明 流量镜像功能的各项配额说明如表4所示,部分默认配额可以提升,您可以根据提示申请扩大配额。 表4 流量镜像的配额说明 配额项目 默认配额 申请扩大配额 单个镜像会话可关联的镜像源数量 10个 申请更多配额,请参见申请扩大配额 单个镜像源可被关联的镜像会话数量 3个 不支持修改 单个镜像会话可关联的镜像目的数量 1个 不支持修改 单个镜像目的可被关联的镜像会话数量 镜像目的为云服务器网卡时:10个 镜像目的为弹性负载均衡时:200个 不支持修改 单个镜像会话可关联的筛选条件数量 1个 不支持修改 单个筛选条件可被关联的镜像会话数量 1000个 不支持修改 单个筛选条件可添加的规则数量 入方向规则:10个 出方向规则:10个 不支持修改 一个用户在单个区域可创建的镜像会话数量 20000个 不支持修改
  • 流量镜像匹配规则 根据流量镜像的匹配规则,当同一个镜像源的同一个报文同时符合多个筛选条件规则时,该报文也仅会被匹配一次,匹配原则详细说明如下: 表3 流量镜像匹配规则 匹配原则 说明 顺序匹配 根据优先级从高到低按顺序进行匹配。优先级的数字越小,优先级越高,比如1的优先级高于2。 镜像会话优先级:同一个镜像源可同时被关联至多个镜像会话,此时根据镜像会话的优先级,按照从高到低的顺序匹配。 镜像会话的匹配规则请参见镜像会话的匹配规则。 筛选条件规则优先级:一个镜像会话只可以关联一个筛选条件,一个筛选条件中可以包含多个规则,此时根据规则的优先级,按照从高到低的顺序匹配。 筛选条件规则分为入方向规则和出方向规则,包含优先级、流量采集策略以及匹配条件。 筛选条件的匹配规则请参见筛选条件的匹配规则。 唯一匹配 报文只要与一个筛选条件规则匹配,就不会再去尝试匹配其他规则。 镜像会话的匹配规则如图2所示。当一个镜像源同时被多个镜像会话关联时,以入方向的报文为例,报文根据镜像会话的优先级,按照从高到低的顺序匹配。 当报文匹配上某个镜像会话中的筛选条件入方向规则,则执行以下操作: 如果该规则的策略是采集,则镜像该报文。 如果该规则的策略是不采集,则不会镜像该报文。 当遍历了所有镜像会话中的筛选条件入方向规则,报文均没有匹配上,则不会镜像该报文,结束。 示例:某个镜像源同时被镜像会话A和镜像会话B关联,镜像会话A的优先级是1,镜像会话B的优先级是2。当镜像源入方向的某个报文同时符合镜像会话A和镜像会话B里的筛选条件规则,此时根据镜像会话优先级,该报文优先匹配镜像会话A中的筛选条件规则,并执行该规则的采集策略,结束后,该报文不会继续匹配镜像会话B。 图2 镜像会话匹配规则 筛选条件的匹配规则如图3所示。当一个镜像源只被一个镜像会话关联时,以入方向的报文为例,报文根据入方向规则的优先级,按照从高到低的顺序匹配: 当报文匹配上筛选条件的某个入方向规则,则执行以下操作: 如果该规则的策略是采集,则镜像该报文。 如果该规则的策略是不采集,则不会镜像该报文。 当遍历了筛选条件中的所有入方向规则,报文均没有匹配上,则不会镜像该报文,结束。 示例:当某个镜像源被镜像会话A关联,在镜像会话A的筛选条件中,入方向规则A和规则B的流量匹配条件相同,但优先级和流量采集策略不同。规则A的优先级为1,策略为不采集。规则B的优先级为2,策略为采集。当镜像源入方向的某个报文同时符合规则A和规则B的流量匹配条件时,此时根据规则优先级,该报文优先匹规则A,并执行不采集策略,即不镜像该报文,结束后,该报文不会继续匹配规则B。 图3 筛选条件匹配规则
  • 流量镜像概念 首先,为您介绍流量镜像功能中的基础概念: 筛选条件:筛选条件包含入方向规则和出方向规则,规则由优先级、流量采集策略以及匹配条件组成。 入方向规则:用来匹配镜像源接收到的流量。 出方向规则:用来匹配镜像源发送出去的流量。 镜像源:镜像源为弹性网卡,表示需要镜像该弹性网卡的流量。 镜像目的:镜像目的为云服务器网卡或者弹性负载均衡实例,用来接受镜像的流量。 镜像会话:使用流量镜像功能,您需要创建镜像会话,通过在镜像会话中关联筛选条件、镜像源和镜像目的,将镜像源符合筛选条件的流量镜像到镜像目的实例。
  • 流量镜像工作原理 以下为您介绍流量镜像的工作原理,以图1为例,在镜像会话中,关联了两个镜像源,一个筛选条件以及一个镜像目的,详细介绍如下: 镜像源01是弹性网卡-B,弹性网卡-B属于E CS -B。本示例中,ECS-B访问ECS-A,需要镜像弹性网卡-B的出方向和入方向流量。 镜像源02是弹性网卡-C,弹性网卡-C属于ECS-C。本示例中,公网客户端访问ECS-C,需要镜像弹性网卡-C的入方向和出方向流量。 筛选条件包含流量的入方向规则和出方向规则。 镜像目的使用弹性负载均衡ELB实例,用来接受镜像的流量。 在表1中,以镜像源弹性网卡-B和弹性网卡-C为例,为您介绍网络流量的镜像原理。 图1 流量镜像架构图 表1 网络流量的镜像路径说明 镜像源 访问路径 报文 方向 说明 弹性网卡-B ECS-B访问ECS-A 请求报文:报文01 出方向 从ECS-B发出的请求报文01,对弹性网卡-B来说,属于出方向。当报文01匹配上筛选条件的出方向规则时,则将报文01镜像到ELB实例。 响应报文:报文02 入方向 从ECS-A返回的响应报文02,对弹性网卡-B来说,属于入方向。当该报文匹配上筛选条件的入方向规则时,则将报文02镜像到ELB实例。 弹性网卡-C 公网访问ECS-C 请求报文:报文03 入方向 从公网发出的请求报文03,对弹性网卡-C来说,属于入方向。当报文03匹配上筛选条件的入方向规则时,则将报文03镜像到ELB实例。 响应报文:报文04 出方向 从ECS-C返回的响应报文04,对弹性网卡-C来说,属于出方向。当报文04匹配上筛选条件的出方向规则时,则将报文04镜像到ELB实例。 筛选条件配置示例如表2所示,结合配置示例,为您介绍镜像会话是如何筛选网络流量的。 表2 流量筛选说明 方向 优先级 协议类型 策略 类型 源地址 源端口范围 目的地址 目的端口范围 筛选示例说明 入方向 1 TCP 采集 IPv4 172.16.0.0/24 10000-10001 10.0.0.3/32 80-80 当网络流量进入镜像源的弹性网卡时,镜像会话将会镜像符合以下条件的报文: 使用TCP (IPv4)协议,源地址网段为172.16.0.0/24、源端口为10000或者10001,目的地址为10.0.0.3/32、目的端口为80。 出方向 1 全部 不采集 IPv4 192.168.0.0/24 全部 10.2.0.0/24 全部 当网络流量从镜像源的弹性网卡出去时,镜像会话将不会镜像符合以下条件的报文: 使用全部 (IPv4)协议,源地址网段为192.168.0.0/24、源端口为全部,目的地址网段为10.2.0.0/24、目的端口为全部。
  • 操作指导 进入创建IP地址组页面。 根据界面提示设置IP地址组参数。 参数详细说明请参见表1。 表1 IP地址组参数说明 参数 参数说明 取值样例 区域 必选参数。 不同区域的云服务产品之间内网互不相通,请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 IP地址组只能关联至同区域的资源。 区域A 名称 必选参数。 此处填写IP地址组的名称。 长度范围为1~64位。 名称由中文、英文字母、数字、下划线(_)、中划线(-)、点(.)组成。 您可以自定义IP地址组名称,IP地址组的唯一性由系统分配的ID号保证。 ipGroup-A 最大条目数 必选参数。 此处设置IP地址组内支持添加的IP地址条目数量,系统默认显示当前支持的最大条目数,您可以自行减少最大条目数。 如果需要提升IP地址组的最大条目数,您需要提交工单进行申请。 20 IP类型 必选参数。 此处设置IP地址组内支持的IP类型,具体如下: IPv4 IPv6 IPv4 IP地址条目 可选参数。 您可以在IP地址组内添加多个不同格式的IP地址,每个IP地址输入完成后,按回车键换行。 支持的IP格式如下: IPv4网段:IP地址/掩码,例如192.168.0.0/16 单个IPv4地址:IP地址/掩码,例如192.168.10.10/32 IPv6网段:IP地址/掩码,例如2001:db8:a583:6e::/64 单个IPv6地址:IP地址/掩码,例如2001:db8:a583:6e::5c/128 192.168.0.0/16 192.168.10.10/32 企业项目 必选参数。 创建IP地址组时,可以将IP地址组加入已启用的企业项目。 企业项目管理提供了一种按企业项目管理云资源的方式,帮助您实现以企业项目为基本单元的资源及人员的统一管理,默认项目为default。 关于创建和管理企业项目的详情,请参见《企业管理用户指南》。 default 描述 可选参数。 您可以根据需要在文本框中输入IP地址组的描述信息。 - 基本信息设置完成后,单击“立即创建”。 返回IP地址组列表,创建成功的IP地址组状态为“正常”。 IP地址组无法独立使用,需要将IP地址组关联至对应的资源,具体请参见将IP地址组关联至资源。
  • 操作场景 当您购买弹性公网IP时,无论是哪种计费模式,只要没有加入共享带宽,那么您的弹性公网IP使用的是独享带宽。独享带宽支持对单个弹性公网IP进行限速。 本章节指导用户修改独享带宽大小,您可以增加或者降低带宽大小,修改带宽大小不会更换EIP的地址。 当您修改带宽大小时,不同计费方式的带宽收费和生效时间不同,请您参考表1了解详情,适用于独享带宽和共享带宽两种情况。 降低带宽大小,可能会影响业务流量造成丢包,请确认对业务产生的影响,谨慎操作。 表1 修改带宽大小的费用情况 计费模式 计费方式 变更操作 对费用的影响 包年/包月 按带宽计费 增加带宽大小(补差价升配) 升配后,新带宽大小将在原来已有的时间周期内立即生效。 您需要按照与原带宽的价格差,结合使用周期内的剩余时间,补齐差价。 例如:(以下价格仅作示例,实际价格以控制台显示为准) 客户于2018/11/1 购买了1Mbit/s的带宽,购买时长为1个月,此时价格为18.4元/月,客户使用余额支付18.4元,实付金额为18.4元。 客户在2018/11/24 将带宽升级为5Mbit/s,价格为92元/月。 这时,剩余天数为 30 - 24 = 6天,升配费用=92 / 30 * 6 - 18.4 / 30 * 6 = 14.72元。 了解更多变更资源计费信息,请参见变更资源费用说明。 按带宽计费 降低带宽大小(续费降配) 降配后,新带宽大小不会立即生效。 您需要选择续费时长并根据新的带宽大小进行续费,续费成功后,新带宽大小在新的计费周期内生效。 续费降配订单在资源未生效前支持退订。 续费降配后,当前计费周期的剩余时间内不能再对带宽进行任何修改,请谨慎操作。 按带宽计费 临时增加带宽大小(使用带宽加油包临时升配) 带宽加油包单独计费,您可以在带宽的使用周期内选择任意时间段使用带宽加油包临时增加带宽,带宽加油包到期后带宽自动回落。 按需计费 按带宽计费 增加/降低带宽大小 增加/降低带宽大小后,新的带宽大小和计费方式将立即生效。 按流量计费 增加/降低带宽大小 增加/降低带宽大小后,新的带宽大小将立即生效。 按流量计费的EIP,带宽仅做限速使用,带宽大小不影响实际费用。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token ,请参考《 统一身份认证 服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 X-Environment-ID 是 String 环境ID。 获取环境ID,通过《云应用引擎API参考》的“获取环境列表”章节获取环境信息。 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息,其中id字段即是环境ID。
  • 响应示例 状态码: 200 请求成功。 { "api_version" : "v1", "kind" : "Job", "spec" : { "progress" : 0, "status" : "running", "tasks" : [ { "index" : 1, "name" : "upgrade", "status" : "init", "detail" : "", "created_at" : "2023-02-16T11:24:07.950175Z", "updated_at" : "2023-02-16T11:24:07.950175Z" } ] } }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 api_version String API版本,固定值“v1”,该值不可修改。 枚举值: v1 kind String API类型,固定值“Job”,该值不可修改。 枚举值: Job spec JobSpec object job规格信息。 表4 JobSpec 参数 参数类型 描述 progress Number 任务进度。 status String 任务状态。 tasks Array of Task objects 子任务。 表5 Task 参数 参数类型 描述 index Integer 任务序号。 name String 任务名称。 status String 任务状态。 detail String 任务详情。 created_at String 创建时间。 updated_at String 更新时间。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 X-Environment-ID 是 String 环境ID。 获取环境ID,通过《云应用引擎API参考》的“获取环境列表”章节获取环境信息。 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息,其中id字段即是环境ID。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 X-Environment-ID 是 String 环境ID。 获取环境ID,通过《云应用引擎API参考》的“获取环境列表”章节获取环境信息。 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息,其中id字段即是环境ID。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 api_version String API版本,固定值“v1”,该值不可修改。 枚举值: v1 kind String API类型,固定值“Component”,该值不可修改。 枚举值: Component items Array of MountComponent objects 挂载组件列表。 表4 MountComponent 参数 参数类型 描述 env_id String 环境ID。 env_name String 环境名称。 app_id String 应用ID。 app_name String 应用名称。 component_id String 组件ID。 component_name String 组件名称。
  • 响应示例 状态码: 200 返回{}表示成功,返回组件信息,表明这些组件挂载了当前 云存储 ,当前云存储不能解绑。 { "api_version" : "v1", "kind" : "Component", "items" : [ { "env_id" : "5d3d1e90-2f5d-4ef1-958b-3fc1ed0b0898", "env_name" : "test", "app_id" : "c904781d-aea0-49d4-b756-9b847a10a437", "app_name" : "test", "component_id" : "f5de88cc-64be-4f70-ac17-db745eb76e67", "component_name" : "test-config" } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 X-Environment-ID 是 String 环境ID。 获取环境ID,通过《云应用引擎API参考》的“获取环境列表”章节获取环境信息。 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息,其中id字段即是环境ID。
  • 响应示例 状态码: 200 请求成功。 { "api_version" : "v1", "kind" : "Certificate", "items" : [ { "metadata" : { "id" : "b88810ff-8ce1-45af-8d31-730b4a887d06", "name" : "test" }, "spec" : { "crt" : "xxx", "key" : "xxx", "created_at" : "2022-12-30T09:38:04.705025Z" } } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 X-Environment-ID 是 String 环境ID。 获取环境ID,通过《云应用引擎API参考》的“获取环境列表”章节获取环境信息。 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息,其中id字段即是环境ID。
共100000条