华为云用户手册

  • 请求示例 通道号绑定服务号。通道号为"8822053111111",服务号ID为"961b0f7d32314b5cb287fc06fe09cccc"。 https://koomessage.myhuaweicloud.cn/v1/aim-sa/ports/associate { "pub_id" : "961b0f7d32314b5cb287fc06fe09cccc", "ext_port_id" : "a67928a301364aa38d8cf6f08242cccc", "port" : "8822053111111", "province" : "佛山市", "sign" : [ "华为云 KooMessage " ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 data BindPortResponseBody object 通道号解绑服务号响应体。 表4 BindPortResponseBody 参数 参数类型 描述 message String 信息。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 结果详情。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 结果详情。
  • 请求示例 注册智能信息服务号通道号。设置通道号为"8822053111111",普通类型,不校验签名。 https://koomessage.myhuaweicloud.cn/v1/aim-sa/ports { "port" : "8822053111111", "sign" : [ "华为云KooMessage" ], "port_type" : 1, "sign_check" : 0, "authorization_files" : [ "3d214a61672846f88ad77597f935cccc:AimSauploadService/272957b708ac4891a6d5282ccd2175cccc.png" ] }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Content-Type 是 String 请求体参数类型,该字段必须设置为:application/json。 表2 请求Body参数 参数 是否必选 参数类型 描述 port 是 String 通道号。 port_type=5时 ,长度必须为5 port_type=1或3,长度在21位内 最小长度:0 最大长度:21 port_type 是 Integer 通道号类型。 1:普通 3:前缀号段 5:后缀号段 最小值:1 最大值:5 sign 是 Array of strings 签名列表,最大长度为5。单个签名长度为2-18。 最小长度:2 最大长度:18 数组长度:0 - 5 sign_check 是 Integer 是否需要校验。 0:不校验 1:校验签名 说明: 当port_type为3或者5时,sign_check必须为1。 最小值:0 最大值:1 authorization_files 是 Array of strings 授权证明图片资源,支持jpg、bmp、png和jpeg格式,全部图片总大小不超过4M,最多支持5张。参数格式为:资源ID:资源URL,样例:3d214a61672846f88ad77597f935cccc:AimSauploadService/272957b708ac4891a6d5282ccd2175cccc.png。 说明: 资源ID与资源URL对应上传智能信息服务号图片资源API返回的resource_id和resource_url。 数组长度:0 - 5
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 data PortRegisterResponse object 注册通道号响应体。 表4 PortRegisterResponse 参数 参数类型 描述 data RegisterResult object 返回体。 表5 RegisterResult 参数 参数类型 描述 port String 通道号。 port_type Integer 通道号类型。 1:普通 3:前缀号段 5:后缀号段 sign Array of strings 签名列表,最大长度为5。 数组长度:0 - 5 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 结果详情。 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 结果详情。
  • 智能信息服务号支持的省市地区 表1 省市地区列表 一级地区 二级地区 三级地区 全国 河北省 石家庄市 唐山市 秦皇岛市 邯郸市 邢台市 保定市 张家口市 承德市 沧州市 廊坊市 衡水市 山西省 太原市 大同市 阳泉市 长治市 晋城市 朔州市 晋中市 运城市 忻州市 临汾市 吕梁市 辽宁省 沈阳市 大连市 鞍山市 抚顺市 本溪市 丹东市 锦州市 营口市 阜新市 辽阳市 盘锦市 铁岭市 朝阳市 葫芦岛市 吉林省 长春市 吉林市 四平市 辽源市 通化市 白山市 松原市 白城市 延边朝鲜族自治州 黑龙江省 哈尔滨市 齐齐哈尔市 鸡西市 鹤岗市 双鸭山市 大庆市 伊春市 佳木斯市 七台河市 牡丹江市 黑河市 绥化市 大兴安岭地区 江苏省 南京市 无锡市 徐州市 常州市 苏州市 南通市 连云港市 淮安市 盐城市 扬州市 镇江市 泰州市 宿迁市 浙江省 杭州市 宁波市 温州市 嘉兴市 湖州市 绍兴市 金华市 衢州市 舟山市 台州市 丽水市 安徽省 合肥市 芜湖市 蚌埠市 淮南市 马鞍山市 淮北市 铜陵市 安庆市 黄山市 滁州市 阜阳市 宿州市 六安市 亳州市 池州市 宣城市 福建省 福州市 厦门市 莆田市 三明市 泉州市 漳州市 南平市 龙岩市 宁德市 江西省 南昌市 景德镇市 萍乡市 九江市 新余市 鹰潭市 赣州市 吉安市 宜春市 抚州市 上饶市 山东省 济南市 青岛市 淄博市 枣庄市 东营市 烟台市 潍坊市 济宁市 泰安市 威海市 日照市 临沂市 德州市 聊城市 滨州市 菏泽市 河南省 郑州市 开封市 洛阳市 平顶山市 安阳市 鹤壁市 新乡市 焦作市 濮阳市 许昌市 漯河市 三门峡市 南阳市 商丘市 信阳市 周口市 驻马店市 湖北省 武汉市 黄石市 十堰市 宜昌市 襄阳市 鄂州市 荆门市 孝感市 荆州市 黄冈市 咸宁市 随州市 恩施土家族苗族自治州 湖南省 长沙市 株洲市 湘潭市 衡阳市 邵阳市 岳阳市 常德市 张家界市 益阳市 郴州市 永州市 怀化市 娄底市 湘西土家族苗族自治州 广东省 广州市 韶关市 深圳市 珠海市 汕头市 佛山市 江门市 湛江市 茂名市 肇庆市 惠州市 梅州市 汕尾市 河源市 阳江市 清远市 东莞市 中山市 潮州市 揭阳市 云浮市 海南省 海口市 三亚市 三沙市 儋州市 四川省 成都市 自贡市 攀枝花市 泸州市 德阳市 绵阳市 广元市 遂宁市 内江市 乐山市 南充市 眉山市 宜宾市 广安市 达州市 雅安市 巴中市 资阳市 阿坝藏族羌族自治州 甘孜藏族自治州 凉山彝族自治州 贵州省 贵阳市 六盘水市 遵义市 安顺市 毕节市 铜仁市 黔西南布依族苗族自治州 黔东南苗族侗族自治州 黔南布依族苗族自治州 云南省 昆明市 曲靖市 玉溪市 保山市 昭通市 丽江市 普洱市 临沧市 楚雄彝族自治州 红河哈尼族彝族自治州 文山壮族苗族自治州 西双版纳傣族自治州 大理白族自治州 德宏傣族景颇族自治州 怒江傈僳族自治州 迪庆藏族自治州 陕西省 西安市 铜川市 宝鸡市 咸阳市 渭南市 延安市 汉中市 榆林市 安康市 商洛市 甘肃省 兰州市 嘉峪关市 金昌市 白银市 天水市 武威市 张掖市 平凉市 酒泉市 庆阳市 定西市 陇南市 临夏回族自治州 甘南藏族自治州 青海省 西宁市 海东市 海北藏族自治州 黄南藏族自治州 海南藏族自治州 果洛藏族自治州 玉树藏族自治州 海西蒙古族藏族自治州 台湾省 - 内蒙古自治区 呼和浩特市 包头市 乌海市 赤峰市 通辽市 鄂尔多斯市 呼伦贝尔市 巴彦淖尔市 乌兰察布市 兴安盟 锡林郭勒盟 阿拉善盟 广西壮族自治区 南宁市 柳州市 桂林市 梧州市 北海市 防城港市 钦州市 贵港市 玉林市 百色市 贺州市 河池市 来宾市 崇左市 西藏自治区 拉萨市 日喀则市 昌都市 林芝市 山南市 那曲市 阿里地区 宁夏回族自治区 银川市 石嘴山市 吴忠市 固原市 中卫市 新疆维吾尔自治区 乌鲁木齐市 克拉玛依市 吐鲁番市 哈密市 昌吉回族自治州 博尔塔拉蒙古自治州 巴音郭楞蒙古自治州 阿克苏地区 克孜勒苏柯尔克孜自治州 喀什地区 和田地区 伊犁哈萨克自治州 塔城地区 阿勒泰地区 北京市 - 天津市 - 上海市 - 重庆市 - 香港特别行政区 - 澳门特别行政区 - 父主题: 附录
  • 从Npm私有依赖库获取依赖包 以发布私有组件到Npm私有依赖库中发布的Npm私有组件为例,介绍如何从Npm私有依赖库中获取依赖包。 配置代码仓库。 进入 代码托管服务 ,创建Node.js代码仓库(操作步骤请参考创建云端仓库)。本文使用模板“nodejs Webpack Demo”创建代码仓库。 参考发布私有组件到Npm私有依赖库,获取“.npmrc”文件并上传至需要使用Npm依赖包的代码仓库根目录中。 在代码仓库中找到“package.json”文件并打开,将依赖包配置到dependencies字段中,本文中配置的值为: "@test/vue-demo": "^1.0.0" 配置并执行编译构建任务。 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。 在页面中选择“空白构建模板”,单击“下一步”。 添加步骤“Npm构建”。 编辑步骤“Npm构建”。 工具版本按照实际选择,本文中选择“nodejs12.7.0”。 删除已有命令行,输入以下命令: export PATH=$PATH:/root/.npm-global/bin npm config set strict-ssl false npm install --verbose 单击“新建并执行”,启动构建任务执行。 待任务执行成功时,查看构建任务详情,在日志中找到类似如下内容,说明编译构建任务从私有依赖库完成了依赖包下载并构建成功。
  • Npm命令简介 在编译构建任务命令行中,还可以配置如下Npm命令,以完成其它功能: 删除私有依赖库中已存在的私有组件 npm unpublish @socpe/packageName@version 获取标签列表 npm dist-tag list @scope/packageName 新增标签 npm dist-tag add @scope/packageName@version tagName --registry registryUrl --verbose 删除标签 npm dist-tag rm @scope/packageName@version tagName --registry registryUrl --verbose 命令行参数说明: scope:私有依赖库路径,查看方法请参考发布私有组件到Npm私有依赖库。 packageName:“package.json”文件中,name字段中scope之后的部分。 version:“package.json”文件中,version字段对应的值。 registryUrl:私有库配置文件中的对应scope的私有库地址url。 tagName:标签名称。 以发布私有组件到Npm私有依赖库发布的私有组件为例: scope对应的值为“test”。 packageName对应的值为“vue-demo”。 version对应的值为“1.0.0”。 因此,删除此组件的命令应为: npm unpublish @test/vue-demo@1.0.0
  • 发布私有组件到Npm私有依赖库 下载私有依赖库配置文件。 登录软件开发生产线,进入Npm私有依赖库。单击页面右侧“设置仓库”,记录仓库的路径。 单击“取消”返回私有依赖库页面,单击页面右侧“操作指导”。 在弹框中单击“下载配置文件”。 在本地将下载的“npmrc”文件另存为“.npmrc”文件。 配置代码仓库。 进入代码托管服务,创建Node.js代码仓库(操作步骤请参考创建云端仓库)。本文使用模板“nodejs Webpack Demo”创建代码仓库。 进入代码仓库,将“.npmrc”文件上传至代码仓库的根目录中。 在代码仓库中找到“package.json”文件并打开,将在“编辑私有依赖库”页面中记录的路径信息添加到name字段对应的值中。 实际操作中,若出现name字段的值固定且不便修改的情况,则可以在“编辑私有依赖库”页面将该值配置到“添加路径”字段中。 配置并执行编译构建任务。 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。 在页面中选择“空白构建模板”,单击“下一步”。 添加步骤“Npm构建”。 编辑步骤“Npm构建”。 工具版本按照实际选择,本文中选择“nodejs12.7.0”。 删除已有命令行,输入以下命令: export PATH=$PATH:/root/.npm-global/bin npm config set strict-ssl false npm publish 单击“新建并执行”,启动构建任务执行。 待任务执行成功时,进入私有依赖库,可找到通过构建任务上传的Npm私有组件。
  • 发布私有组件到Rpm私有依赖库 登录软件开发生产线,进入Rpm私有依赖库。单击页面右侧“操作指导”。 在弹框中单击“下载配置文件”。 在Linux主机中执行以下命令,上传Rpm组件。 curl -u {{user}}:{{password}} -X PUT https://{{repoUrl}}/{{component}}/{{version}}/ -T {{localFile}} 其中,“user”、“password”、“repoUrl”来源于上一步下载的配置文件中“rpm上传命令”部分。 user:位于curl -u与-X之间、“:”之前的字符串。 password:位于curl -u与-X之间、“:”之后的字符串。 repoUrl:“https://”与“/{{component}}”之间的字符串。 “component”、“version”、“localFile”来源于待上传的Rpm组件。以组件“hello-0.17.2-54.x86_64.rpm”为例。 component:软件名称,即“hello”。 version:软件版本,即“0.17.2”。 localFile:Rpm组件,即“hello-0.17.2-54.x86_64.rpm”。 完整的命令行如下图所示: 命令执行成功,进入私有依赖库,可找到已上传的Rpm私有组件。
  • 从Rpm私有依赖库获取依赖包 以发布私有组件到Rpm私有依赖库中发布的Rpm私有组件为例,介绍如何从Rpm私有依赖库中获取依赖包。 参考发布私有组件到Rpm私有依赖库,下载Rpm私有依赖库配置文件。 打开配置文件,将文件中所有“{{component}}”替换为上传Rpm文件时使用的“{{component}}”值(本文档中该值为“hello”),并删除“rpm上传命令”部分,保存文件。 将修改后的配置文件保存到Linux主机的“/etc/yum.repos.d/”目录中。 执行以下命令,下载Rpm组件。其中,hello为组件的“component”值,请根据实际情况修改。 yum install hello
  • 从PyPI私有依赖库获取依赖包 以发布私有组件到PyPI私有依赖库中发布的PyPI私有组件为例,介绍如何从PyPI私有依赖库中获取依赖包。 下载私有依赖库配置文件。 进入PyPI私有依赖库,单击页面右侧“操作指导”。 在弹框中找到“下载配置”,单击“下载配置文件”。 在本地将下载的“pip.ini”文件另存为“pip.conf”文件。 配置代码仓库。 进入代码托管服务,创建Python代码仓库(操作步骤请参考新建仓库)。本文使用模板“Python3 Demo”创建代码仓库。 进入代码仓库,将“pip.conf”文件上传至需要使用PyPI依赖包的代码仓库根目录中。 在代码仓库中找到“requirements.txt”文件并打开(若没有请新建文件),将依赖包配置添加到此文件中,本文中配置的值为: demo ==1.0 配置并执行编译构建任务。 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。 在页面中选择“空白构建模板”,单击“下一步”。 添加步骤“Setup Tool构建”。 编辑步骤“SetupTool构建”。 工具版本按照实际选择,本文中选择“python3.6”。 删除已有命令行,输入以下命令: # 可以通过此命令设置当前项目根目录下的pip.conf文件为配置文件 export PIP_CONFIG_FILE=./pip.conf # 下载pypi组件 pip install -r requirements.txt --no-cache-dir 单击“新建并执行”,启动构建任务执行。 待任务执行成功时,查看构建任务详情,在日志中找到类似如下内容,说明编译构建任务从私有依赖库完成了依赖包下载并构建成功。
  • 发布私有组件到PyPI私有依赖库 下载私有依赖库配置文件。 登录软件开发生产线,进入PyPI私有依赖库。单击页面右侧“操作指导”。 在弹框中找到“发布配置”,单击“下载配置文件”。 在本地将下载的“pypirc”文件另存为“.pypirc”文件。 配置代码仓库。 进入代码托管服务,创建Python代码仓库(操作步骤请参考新建仓库)。本文使用模板“Python3 Demo”创建代码仓库。 进入代码仓库,将“.pypirc”文件上传至代码仓库的根目录中。 配置并执行编译构建任务。 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。 在页面中选择“空白构建模板”,单击“下一步”。 添加步骤“SetupTool构建”。 编辑步骤“SetupTool构建”。 工具版本按照实际选择,本文中选择“python3.6”。 删除已有命令行,输入以下命令: # 请保证代码根目录下有setup.py文件,下面命令将把工程打为whl包 python setup.py bdist_wheel # 设置当前项目根目录下的.pypirc文件为配置文件 cp -rf .pypirc ~/ # 上传组件至pypi私有库 twine upload -r pypi dist/* 如果上传时报证书问题,请在上述命令首行添加以下命令,设置环境变量跳过证书校验: export CURL_CA_BUNDLE="" 单击“新建并执行”,启动构建任务执行。 待任务执行成功时,进入私有依赖库,可找到通过构建任务上传的PyPI私有组件。
  • Go Modules打包方式简介 本文采用Go Modules打包方式完成Go组件的构建与上传。 打包命令主要包括以下几部分: 在工作目录中创建源文件夹。 mkdir -p {module}@{version} 将代码源拷贝至源文件夹下。 cp -rf . {module}@{version} 压缩组件zip包。 zip -D -r [包名] [包根目录名称] 上传组件zip包与“go.mod”文件到私有依赖库中。 curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/{filePath} -T {{localFile}} 根据打包的版本不同,组件目录结构有以下几种情况: v2.0以下版本:目录结构与“go.mod”文件路径相同,无需附加特殊目录结构。 v2.0以上(包括v2.0)版本: “go.mod”文件中第一行以“/vX”结尾:目录结构需要包含“/vX”。例如,版本为v2.0.1,目录需要增加“v2”。 “go.mod”文件中第一行不以“/vN”结尾:目录结构不变,上传文件名需要增加“+incompatible”。 下面分别对不同的版本举例说明: v2.0以下版本打包。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo”,参数“version”自定义为1.0.0。因此命令如下: mkdir -p ~/example.com/demo@v1.0.0 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo@v1.0.0/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v1.0.0.zip”,因此命令如下: zip -D -r v1.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/@v/v1.0.0.zip”,“localFile”为“v1.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/@v/v1.0.0.mod”,“localFile”为“example.com/demo@v1.0.0/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v1.0.0.zip -T v1.0.0.zip curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v1.0.0.mod -T example.com/demo@v1.0.0/go.mod v2.0以上版本打包,且“go.mod”文件中第一行以“/vX”结尾。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo/v2”,参数“version”自定义为“2.0.0”。因此命令如下: mkdir -p ~/example.com/demo/v2@v2.0.0 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo/v2@v2.0.0/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v2.0.0.zip”,因此命令如下: zip -D -r v2.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/v2/@v/v2.0.0.zip”,“localFile”为“v2.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/v2/@v/v2.0.0.mod”,“localFile”为“example.com/demo/v2@v2.0.0/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/v2/@v/v2.0.0.zip -T v2.0.0.zip curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/v2/@v/v2.0.0.mod -T example.com/demo/v2@v2.0.0/go.mod v2.0以上版本打包,且“go.mod”文件中第一行不以“/vX”结尾。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo”,参数“version”自定义为“3.0.0”。因此命令如下: mkdir -p ~/example.com/demo@v3.0.0+incompatible 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo@v3.0.0+incompatible/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v3.0.0.zip”,因此命令如下: zip -D -r v3.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/@v/v3.0.0+incompatible.zip”,“localFile”为“v3.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/@v/v3.0.0+incompatible.mod”,“localFile”为“example.com/demo@v3.0.0+incompatible/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v3.0.0+incompatible.zip -T v3.0.0.zip curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v3.0.0+incompatible.mod -T example.com/demo@v3.0.0+incompatible/go.mod
  • 发布私有组件到Go私有依赖库 下载私有依赖库配置文件。 登录软件开发生产线,进入Go私有依赖库。单击页面右侧“操作指导”。 在弹框中单击“下载配置文件”。 配置代码仓库。 进入代码托管服务。创建Go语言代码仓库(操作步骤请参考创建云端仓库)。本文中使用仓库模板“Go Web Demo”创建代码仓库。 准备“go.mod”文件,并上传至代码仓库的根目录中。本文中使用的“go.mod”文件如下所示: 配置并执行编译构建任务。 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。 在页面中选择“空白构建模板”,单击“下一步”。 添加步骤“Go语言构建”。 编辑步骤“Go语言构建”。 工具版本按照实际选择,本文中选择“go-1.13.1”。 删除已有命令行,打开在步骤1中下载的配置文件,将文件中的“LINUX下配置go环境变量命令”复制到命令框中。 将配置文件中go上传命令代码段复制到命令框中,并参考Go Modules打包方式简介替换命令行中的参数信息(本文打包版本为“v1.0.0”)。 单击“新建并执行”,启动构建任务执行。 待页面提示“构建成功”时,进入私有依赖库,可找到通过构建任务上传的Go私有组件。
  • 话单记录文件(yyyymmddhhmmssSSS+3位随机数_call_文件序号.csv)定义 导出的话单记录csv文件中每一行表示一条数据,在该条数据下每行数据按列排序,每行数据描述说明请参考下表。 顺序 参数名称 数据类型 参数说明 1 developer String(1-64) 开发者ID。 2 account_id String(1-64) 企业帐号。 3 cc_id String(1-64) 呼叫中心ID。 4 agent_id String(1-32) 座席ID。 5 call_id String(1-25) 呼叫标识。 6 caller_no String(1-26) 主叫号码。 7 callee_no String(1-26) 被叫号码。 8 wait_begin DATE 等待开始时间。 时间格式为:YYYY-MM-DD hh:mm:ss,例如:2015-02-08 20:23:30 9 wait_end DATE 等待结束时间。 时间格式为:YYYY-MM-DD hh:mm:ss,例如:2015-02-08 20:23:30 10 ack_begin DATE 应答开始时间。 时间格式为:YYYY-MM-DD hh:mm:ss,例如:2015-02-08 20:23:30 11 ack_end DATE 应答结束时间。 时间格式为:YYYY-MM-DD hh:mm:ss,例如:2015-02-08 20:23:30 12 call_begin DATE 呼叫开始时间。 时间格式为:YYYY-MM-DD hh:mm:ss,例如:2015-02-08 20:23:30 13 call_end DATE 呼叫截止时间。 时间格式为:YYYY-MM-DD hh:mm:ss,例如:2015-02-08 20:23:30 14 device_type Int(1-4) 设备类型。 1:技能队列,2:座席,3:IVR流程 15 device_no Int(1-5) 设备号。 如果设备类型为技能队列,设备号为技能队列ID; 如果设备类型为座席,设备号为座席ID; 如果设备类型为IVR,设备号为IVR流程ID。 16 call_type Int(1-4) 呼叫类型。详见呼叫类型说明。 17 release_cause Int(1-5) 呼叫释放原因。详见呼叫释放原因码 对CallIDNUM = -1的话单(参考本表第18项),表示呼叫的释放原因,其他情况下无意义。 18 call_id_num Int(1-4) 呼叫标识的序列。其中: 若相同呼叫标识只有一条,即该呼叫标识是唯一的,则该序列为-1。 若相同呼叫标识为多条,则最后一条是-1,其他的按顺序排列。如:相同呼叫标识有4条,callidnum为1、2、3以及-1。 19 vdn_id String(1-32) 指处理呼叫的虚拟呼叫中心编号。 20 pre_device_type String(1-32) 呼叫经历的上一个设备的设备类型。取值范围:1:队列 2:座席 3:IVR 21 pre_device_no String(1-32) 呼叫经历的上一个设备的设备编号。 22 skill_id String(1-32) 呼叫所属技能队列的ID。当溢出转和无人上班转时,为呼入的第一个技能队列的ID 23 current_skill_id String(1-32) 当前处理呼叫的技能队列的编号。 24 device_in String(1-32) 当前服务设备描述。 技能队列取值为DEVICE_QUEUE。 业务代表取值为DEVICE_AGENT。 当DeviceType = IVR业务流程(3)时,该字段取值为对应的IVR流程接入码。 呼叫取值为对应的电话号码。 路由临时设备取值为DEVICE_ROUTE。 虚设备取值为DEVICE_VNR。 当DeviceType = CDN设备(10)时,该字段取值为CDN的号码。 当DeviceType = PGR(14)时,该字段取值为PGR接入码。 25 pre_device_in String(1-32) 上一个服务设备描述。 取值范围如下: 技能队列取值为DEVICE_QUEUE。 业务代表取值为DEVICE_AGENT。 当DeviceType = IVR业务流程(3)时,该字段取值为对应的IVR流程接入码。 呼叫取值为对应的电话号码。 路由临时设备取值为DEVICE_ROUTE。 虚设备取值为DEVICE_VNR。 当DeviceType = CDN设备(10)时,该字段取值为CDN的号码。 当DeviceType = PGR(14)时,该字段取值为PGR接入码。 26 service_no String(1-32) 业务类型。当前服务设备的业务类型。 27 leave_reason String(1-32) 呼叫离开设备原因,具体请参考呼叫离开设备原因。 28 media_type String(1-32) 呼叫的媒体类型,具体请参考呼叫媒体类型说明。 29 sub_media_type String(1-32) 子媒体类型,具体请参考表1 呼叫子媒体类型。 当media_type(呼叫媒体类型)为MEDIA_TYPE_WEB_LEAVE_MESSAGE(20)时,该字段有效。
  • 录音记录索引文件(yyyymmddhhmmssSSS+3位随机数_record_文件序号.csv)定义 导出的录音记录csv文件中每一行表示一条数据,在该条数据下每行数据按列排序,每行数据描述说明请参考下表。 顺序 参数名称 数据类型 参数说明 1 developer String(1-64) 开发者ID。 2 account_id String(1-64) 企业帐号。 3 cc_id String(1-64) 呼叫中心ID。 4 agent_id String(1-32) 座席ID。 5 call_id String(1-25) 呼叫标识。 6 caller_no String(1-25) 主叫号码。 7 callee_no String(1-25) 被叫号码。 8 call_begin DATE 开始时间。 时间格式为:YYYY-MM-DD hh:mm:ss,例如:2015-02-08 20:23:30 9 call_end DATE 结束时间。 时间格式为:YYYY-MM-DD hh:mm:ss,例如:2015-02-08 20:23:30 10 file_name String(1-255) 录音文件名。例如:/10/1/record/100/13533/0903379.wav 11 task_status String(1-20) 是否有将录音文件转为文字文件(1:是,0:否)。 12 task_result String(1-20) 录音文件转为文字文件是否成功的状态信息(success:成功,failed:失败)。 13 original_file_name String(1-129) 原始录音文件路径。例如:X:\17\0\20180903\15470\2043295.V3 14 vdn_id String(1-64) 指处理呼叫的虚拟呼叫中心编号。 15 call_type String(1-64) 呼叫类型。详见呼叫类型说明。 16 media_type String(1-64) 媒体类型。详见媒体类型。 17 user_wanted_skill_id String(1-64) 引导技能。 18 current_skill_id String(1-64) 当前处理呼叫的技能队列的编号。
  • 接口URI https://ip:port/agentgateway/resource/onlineagent/{agentid}/forcelogout 其中,ip为CC-Gateway服务器地址,port为CC-Gateway服务器的HTTPS端口号。 表1 URI中携带的参数说明 序号 参数名 数据类型 选取原则 说明 1 agentid string True 座席的工号,取值范围:101~59999。
  • 消息样例 场景描述:软件云调用接口查询客户信息 URL:/rest/oma/softwareconsole/tenant/querytenantbasic 请求头: { "X-Auth_Token":"0000000000srLl4pnoBc*************9DvgIB87KzYpxMdE9+vvzLZqYIw=" } 响应头: { "connection": "keep-alive", "Content-Length": "16", "Content-Type": "application/json%3Bcharset=UTF-8" } 响应体: { "mobilePhone": "153****0991", "company":"华为XXXXXXXXX", "customerName":"zXXXXXX", "email":"sunk****@huawei.com", "vdn":"150", "createDate":1681203525000, "tenantSpaceStatus":"2", "portalUrl":"https://software.huawei.com/auth?client_id=xxxxx&redirect_uri=https://xxx.com/service-cloud/sm/login/portal.html" }
  • 报文样例 请求头 { "X-Auth-Token": "************" } 响应参数: { "expiryDate": 1684650886000, "mobilePhone": "132****7077", "portalUrl": "https://software.huawei.com/auth?client_id=xxxxx&redirect_uri=https://xxx.com/service-cloud/sm/login/portal.html", "company": "xxx", "tenantSpaceStatus": "5", "customerName": "xxx", "email": "wanf****@huawei.com", "createDate": 1681203525000 }
  • 响应说明 响应状态码: 200 表2 响应体参数 序号 名称 参数类型 是否必选 说明 1 createDate number true 创建时间 2 expiryDate number true 过期时间 3 company string true 客户公司名称,已做掩码处理 4 customerName string true 联系人名称,已做掩码处理 5 email string true 邮件地址,已做掩码处理 6 mobilePhone string true 客户手机号码,已做掩码处理 7 tenantSpaceStatus string true 租间状态 8 portalUrl string true 登录AICC的链接地址 响应状态码: 401 未授权,请确认是否授权相关服务 响应状态码: 404 请求的内容未找到:请检查请求的路径 响应状态码: 500 业务失败:请依次确认您请求中各参数的取值。
  • 裸金属服务器在创建时选择密钥鉴权方式,想使用密码方式登录,怎么办? Windows操作系统的裸金属服务器在创建时只能选择密钥鉴权方式,想使用密码方式登录,可以参考以下方法获取密码: 将密钥文件解析为密码,参考链接:获取Windows裸金属服务器的密码 通过控制台的重置密码功能设置密码。参考链接:重置裸金属服务器密码 Linux操作系统的裸金属服务器在创建时可以选择密钥或者密码鉴权方式。如果选择了密钥鉴权方式,想使用密码方式登录,可以参考以下方法获取密码: 使用密钥方式登录裸金属服务器后,执行passwd命令设置密码。 通过控制台的重置密码功能设置密码。参考链接:重置裸金属服务器密码 父主题: 登录类
  • 裸金属服务器有哪些限制? 不支持直接加载外接硬件设备(如USB设备、银行U key、外接硬盘、加密狗等)。 不支持带外管理,您的裸金属服务器资源统一由华为云管理和维护。 不支持热迁移,服务器故障后会对业务造成影响,建议您通过业务集群部署、主备部署等方式实现业务的高可用。 不支持创建没有操作系统的裸设备,即裸金属服务器必须自带操作系统。 创建后不支持更换VPC。 不支持二次虚拟化,即不支持安装虚拟化软件。 不支持自定义裸金属服务器的CPU、内存等配置,也不支持CPU、内存、本地磁盘扩容,仅云硬盘可以扩容。 仅支持挂载S CS I类型的云硬盘。 由于某些机型的服务器没有配备SDI卡,或者其他服务器本身的原因,有些规格或镜像的裸金属服务器不支持挂载云硬盘。 请勿删除或者修改镜像中内置的插件服务(如Cloud-Init、bms-network-config等),否则会影响您的基本功能使用。 在创建裸金属服务器时,如果选择自动分配IP地址,请不要在裸金属服务器发放完成后修改私有IP地址,避免和其他裸金属服务器IP冲突。 裸金属服务器不支持配置桥接网卡,会导致网络不通。 禁止升级OS自带内核版本,否则服务器硬件驱动会存在兼容性风险,影响服务器可靠性。 当前仅支持从管理控制台关机裸金属服务器,不支持在单独实例OS内部使用关机命令关机裸金属服务器。 为防止资源滥用,平台限定了各服务资源的配额,对用户的资源数量和容量做了限制。裸金属服务器没有独立的服务配额,它的实例数、核心数和 RAM 容量与弹性云服务器共用一套配额,在查看配额时,需要在“弹性云服务器”栏目查看,详情请参见查看配额。 父主题: 通用类
  • 客户端网络环境说明 客户端可以通过以下方式访问Kafka实例: 如果客户端是云上ECS,与Kafka实例处于同region同VPC,则可以直接访问Kafka实例提供的内网连接地址。 如果客户端是云上ECS,与Kafka实例处于相同region但不同VPC,通过以下任意一种方式访问。 创建VPC对等连接,将两个VPC的网络打通,实现跨VPC访问。具体步骤请参考对等连接。注意修改Kafka实例的安全组,允许端口9092(明文接入)/9093(密文接入)被外部请求访问。 创建一个云连接实例,然后在创建的云连接实例中加载需要互通的VPC,实现跨VPC访问。具体步骤请参考同区域同账号VPC互通。 利用 VPC终端节点 在不同VPC间建立跨VPC的连接通道,实现Kafka客户端通过内网访问Kafka实例,具体步骤请参考使用VPCEP实现跨VPC访问Kafka。注意修改Kafka实例的安全组,允许端口9011被外部请求访问。 如果客户端在其他网络环境,或者与Kafka实例处于不同region,则访问实例的公网地址。 公网访问时,注意修改Kafka实例的安全组,允许端口9094(明文接入)/9095(密文接入)被外部网络访问。 不同网络环境,对于客户端配置来说,只是连接地址的差异,其他都一样。因此,本手册以同一VPC内子网地址的方式,介绍客户端开发环境搭建。 遇到连接超时或失败时,请注意确认网络是否连通。可使用telnet方式,检测实例连接地址与端口。
  • 密文接入信息 如果实例开启密文接入,则需要获得连接实例的用户名与密码、SASL认证机制和Kafka安全协议。Kafka安全协议设置为“SASL_SSL”时,还需要获取SSL证书。 连接实例的用户名在Kafka实例控制台的“用户管理”页面中查看,如果忘记密码,可通过重置密码重新获得。 图2 查看SASL用户名 SASL认证机制在Kafka实例控制台的基本信息页面中获取。 如果SCRAM-SHA-512和PLAIN都开启了,根据实际情况选择其中任意一种配置连接。很久前创建的Kafka实例在详情页如果未显示“开启的SASL认证机制”,默认使用PLAIN机制。 图3 开启的SASL认证机制 Kafka安全协议在Kafka实例控制台的基本信息页面中获取。很久前创建的Kafka实例在详情页如果未显示“启用的安全协议”,默认使用SASL_SSL协议。 图4 启用的安全协议 如果Kafka安全协议设置为“SASL_SSL”,在Kafka实例控制台的基本信息页面中下载证书。 使用Java语言连接实例时,需要用JKS格式的证书。使用Python语言连接实例时,需要用CRT格式的证书。
  • 准备Kafka配置信息 为了方便,下文分生产与消费两个配置文件介绍。其中涉及SASL认证配置,如果Kafka实例没有开启密文接入,使用的是不加密连接,请注释相关代码;如果Kafka实例开启了密文接入,则必须使用加密方式连接,请设置相关参数。 生产消息配置文件(对应生产消息代码中的dms.sdk.producer.properties文件) 以下粗体部分为不同Kafka实例特有的信息,必须修改。客户端其他参数,可以自主添加。 #Topic名称在具体的生产与消费代码中。 ####################### #Kafka实例的broker信息,ip:port为实例的连接地址和端口,参考“收集连接信息”章节获取。举例:bootstrap.servers=100.xxx.xxx.87:909x,100.xxx.xxx.69:909x,100.xxx.xxx.155:909x bootstrap.servers=ip1:port1,ip2:port2,ip3:port3 #发送确认参数 acks=all #键的序列化方式 key.serializer=org.apache.kafka.common.serialization.StringSerializer #值的序列化方式 value.serializer=org.apache.kafka.common.serialization.StringSerializer #producer可以用来缓存数据的内存大小 buffer.memory=33554432 #重试次数 retries=0 ####################### #如果不使用密文接入,以下参数请注释掉。 ####################### #设置SASL认证机制、账号和密码。 #sasl.mechanism为SASL认证机制,username和password为SASL的用户名和密码,参考“收集连接信息”章节获取。为了确保用户名和密码的安全性,建议对用户名和密码进行加密处理,使用时解密。 #SASL认证机制为“PLAIN”时,配置信息如下。 sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="username" \ password="password"; #SASL认证机制为“SCRAM-SHA-512”时,配置信息如下。 sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="username" \ password="password"; #设置Kafka安全协议。security.protocol为安全协议。 #安全协议为“SASL_SSL”时,配置信息如下。 security.protocol=SASL_SSL #ssl truststore.location为SSL证书的存放路径,如下代码以Windows系统路径格式举例,您在使用时请根据实际运行环境修改路径格式。 ssl.truststore.location=E:\\temp\\client.jks #ssl truststore.password为服务器证书密码,配置此密码是为了访问Java生成的jks文件。 ssl.truststore.password=dms@kafka #ssl.endpoint.identification.algorithm为证书 域名 校验开关,为空则表示关闭,这里需要保持关闭状态,必须设置为空。 ssl.endpoint.identification.algorithm= #安全协议为“SASL_PLAINTEXT”时,配置信息如下。 security.protocol=SASL_PLAINTEXT 消费消息配置文件(对应消费消息代码中的dms.sdk.consumer.properties文件) 以下粗体部分为不同Kafka实例特有的信息,必须修改。客户端其他参数,可以自主添加。 #Topic名称在具体的生产与消费代码中。 ####################### #Kafka实例的broker信息,ip:port为实例的连接地址和端口,参考“收集连接信息”章节获取。举例:bootstrap.servers=100.xxx.xxx.87:909x,100.xxx.xxx.69:909x,100.xxx.xxx.155:909x bootstrap.servers=ip1:port1,ip2:port2,ip3:port3 #用来唯一标识consumer进程所在组的字符串,如果设置同样的group id,表示这些processes都是属于同一个consumer group group.id=1 #键的序列化方式 key.deserializer=org.apache.kafka.common.serialization.StringDeserializer #值的序列化方式 value.deserializer=org.apache.kafka.common.serialization.StringDeserializer #偏移量的方式 auto.offset.reset=earliest ####################### #如果不使用密文接入,以下参数请注释掉。 ####################### #设置SASL认证机制、账号和密码。 #sasl.mechanism为SASL认证机制,username和password为SASL的用户名和密码,参考“收集连接信息”章节获取。为了确保用户名和密码的安全性,建议对用户名和密码进行加密处理,使用时解密。 #SASL认证机制为“PLAIN”时,配置信息如下。 sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="username" \ password="password"; #SASL认证机制为“SCRAM-SHA-512”时,配置信息如下。 sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="username" \ password="password"; #设置Kafka安全协议。security.protocol为安全协议。 #安全协议为“SASL_SSL”时,配置信息如下。 security.protocol=SASL_SSL #ssl truststore.location为SSL证书的存放路径,如下代码以Windows系统路径格式举例,您在使用时请根据实际运行环境修改路径格式。 ssl.truststore.location=E:\\temp\\client.jks #ssl truststore.password为服务器证书密码,配置此密码是为了访问Java生成的jks文件。 ssl.truststore.password=dms@kafka #ssl.endpoint.identification.algorithm为证书域名校验开关,为空则表示关闭,这里需要保持关闭状态,必须设置为空。 ssl.endpoint.identification.algorithm= #安全协议为“SASL_PLAINTEXT”时,配置信息如下。 security.protocol=SASL_PLAINTEXT
  • 在application.properties文件中填写配置 #=============== Kafka ========================== ## Kafka实例的broker信息,ip:port为实例的连接地址和端口 spring.kafka.bootstrap-servers=ip1:port1,ip2:port2,ip3:port3 #=============== 生产者配置 ======================= spring.kafka.producer.retries=0 spring.kafka.producer.batch-size=16384 spring.kafka.producer.buffer-memory=33554432 spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer #=============== 消费者配置 ======================= spring.kafka.consumer.group-id=test-consumer-group spring.kafka.consumer.auto-offset-reset=earliest spring.kafka.consumer.enable-auto-commit=true spring.kafka.consumer.auto-commit-interval=100 spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer #======== SASL配置(不开启SASL时将以下配置删除) ======= ## 设置SASL认证机制、账号和密码。 ## spring.kafka.properties.sasl.mechanism为SASL认证机制,username和password为SASL的用户名和密码,参考“收集连接信息”章节获取。为了确保用户名和密码的安全性,建议对用户名和密码进行加密处理,使用时解密。 ## SASL认证机制为“PLAIN”时,配置信息如下。 spring.kafka.properties.sasl.mechanism=PLAIN spring.kafka.properties.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="username" \ password="password"; ## SASL认证机制为“SCRAM-SHA-512”时,配置信息如下。 spring.kafka.properties.sasl.mechanism=SCRAM-SHA-512 spring.kafka.properties.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="username" \ password="password"; ## 设置Kafka安全协议。spring.kafka.security.protocol为安全协议。 ## 安全协议为“SASL_SSL”时,配置信息如下。 spring.kafka.security.protocol=SASL_SSL ## spring.kafka.ssl.trust-store-location为SSL证书的存放路径,如下代码以Windows系统路径格式举例,您在使用时请根据实际运行环境修改路径格式。 spring.kafka.ssl.trust-store-location=file:D:\\temp\\client.jks ## spring.kafka.ssl.trust-store-password为服务器证书密码,无需修改,配置此密码是为了访问Java生成的jks文件。 spring.kafka.ssl.trust-store-password=dms@kafka ## spring.kafka.properties.ssl.endpoint.identification.algorithm为证书域名校验开关,为空则表示关闭,这里需要保持关闭状态,必须设置为空。 spring.kafka.properties.ssl.endpoint.identification.algorithm= ## 安全协议为“SASL_PLAINTEXT”时,配置信息如下。 spring.kafka.security.protocol=SASL_PLAINTEXT
  • 什么是区域、可用区? 区域和可用区用来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 图1阐明了区域和可用区之间的关系。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。更多信息请参见华为云全球站点。
  • 如何选择区域? 选择区域时,您需要考虑以下几个因素: 地理位置 一般情况下,建议就近选择靠近您或者您的目标用户的区域,这样可以减少网络时延,提高访问速度。 在除中国大陆以外的亚太地区有业务的用户,可以选择“中国-香港”、“亚太-曼谷”或“亚太-新加坡”区域。 在非洲地区有业务的用户,可以选择“非洲-约翰内斯堡”区域。 在拉丁美洲地区有业务的用户,可以选择“拉美-圣地亚哥”区域。 “拉美-圣地亚哥”区域位于智利。 资源的价格 不同区域的资源价格可能有差异,请参见华为云服务价格详情。
  • 使用限制 ESW不支持IPv6报文,且不支持云下往云上转发未知单播、广播、组播(除VRRP协议外)的IP报文。 不支持云下服务器访问云上的高级网络功能,如VPC对等连接、VPC路由表、ELB以及NAT网关等。 对于使用云专线(DC)对接企业交换机的场景,请您先提交工单给云专线服务,确认您的云专线是否支持和企业交换机进行对接,如果不支持,需要联系客服开通云专线的对接企业交换机能力。 对于使用 虚拟专用网络 (VPN)对接企业交换机的场景,请您先提交工单给虚拟专用网络服务,确认您的虚拟专用网络是否支持和企业交换机进行VXLAN对接,如果不支持,需要联系客服开通虚拟专用网络的对接企业交换机能力。 ESW支持对接VPN场景是指经典型VPN,不支持对接专业版VPN和共享型VPN。 云上和云下二层网络互通后,云下子网网关地址要和云上子网网关地址保持一致,否则可能导致云下子网网关地址和云上虚拟机的IP地址冲突,引发通信异常。 每个企业交换机最多支持10000个IP二层互通(即包含通过该企业交换机打通的所有二层网段IP),且最多同时支持连接1000个云下二层网段IP。 使用企业交换机建立云上与云下之间的二层网络时,客户侧负责建设IDC机房的VXLAN网络,包括VXLAN交换机准备、物理网络连通、对接云专线或者虚拟专用网络等。 ESW支持MAC Proxy转发能力,通过ARP报文代理,使云上和云下主机相互不可见对端的实际MAC地址。在业务报文转发时,云上主机收到的云下报文源MAC是二层连接主接口的MAC,云下主机收到的云上报文源MAC是实例隧道口的MAC。如果您的业务场景需要感知实际主机MAC或者有基于MAC的安全策略等,不支持使用ESW。 通常,服务器端会通过ARP学习确定回复报文的目的MAC地址,但是某些主机或硬件设备(如F5负载均衡器)配置了原路径返回能力,回复报文的目的MAC地址取自请求报文的源MAC地址,当通过ESW实现云上云下三层访问场景时,可能会出现网络不通问题,请提前排查。 例如,先通过ESW打通云上和云下192.168.3.0/24网段,当云上主机192.168.2.2/24需要跨网段访问云下主机192.168.3.3/24时,云上请求报文会先通过VPC路由,再经过ESW送往云下主机,云下对应回复报文走路由发回云上,可以经过云专线/VPN。如果云下主机配置了原路径返回,云下回复报文的目的MAC地址不是192.168.3.0/24的网关MAC地址,是取对应请求报文的源MAC地址,即ESW的MAC地址。这样云下回复报文的目的MAC地址错误,导致网络不通。 ESW使用VXLAN协议时,VXLAN协议头占用50个字节,报文长度会增加。请您确保VXLAN报文经过的线下网络设备支持大帧(Jumbo Frames,即MTU大于1500字节的以太网帧)通过,否则会导致大包不通。 不同设备厂商处理大帧的方式不同,其中部分厂商默认大帧放通,例如华为。部分厂商默认大帧不放通,例如思科。 如果您的IDC需要与华为云企业交换机对接来建立云下和云上二层网络通信,那么IDC侧的交换机需要支持VXLAN功能。以下为您列举部分支持VXLAN功能的交换机,仅供参考。 华为交换机:Huawei CE58、CE68、CE78、CE88系列支持VXLAN,例如CE6870、CE6875、CE6881、CE6863、CE12800。 其他厂商交换机:例如Cisco Nexus 9300、 锐捷RG-S6250、 H3C S6520。
共100000条