华为云用户手册

  • 准备环境 已获取API的 域名 、请求url、请求方法、AppKey和AppSecret等信息,具体参见认证前准备。 获取并安装Nodejs安装包,如果未安装,请至Nodejs官方网站下载。 Nodejs安装后,在命令行中,用npm安装“moment”和“moment-timezone”模块。 npm install moment --save npm install moment-timezone --save 获取并安装IntelliJ IDEA,如果未安装,请至IntelliJ IDEA官方网站下载。 已在IntelliJ IDEA中安装NodeJS插件,如果未安装,请按照图1所示安装。 图1 安装NodeJS插件
  • 调用API(Node.js)示例 在工程中引入signer.js。 1 2 var signer = require('./signer') var http = require('http') 生成一个新的Signer,填入AppKey和AppSecret。 1 2 3 4 5 6 7 8 // 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 var ak = process.env.SDK_AK; var sk = process.env.SDK_SK; var sig = new signer.Signer(); sig.Key = ak; sig.Secret = sk; 生成一个Request对象,指定方法名、请求uri和body。 1 2 var r = new signer.HttpRequest("POST", "c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1?a=1"); r.body = '{"a":1}' 给请求添加header头,内容为具体参数数据。如有需要,添加需要签名的其他头域。 1 r.headers = { "x-stage":"RELEASE", "name":"value"} 进行签名,执行此函数会生成请求参数,用于创建http(s)请求,请求参数中添加了用于签名的X-Sdk-Date头和Authorization头。然后为请求参数添加x-Authorization头,值与Authorization头相同。 1 2 var opt = sig.Sign(r) opt.headers["x-Authorization"] = opt.headers["Authorization"] 访问API,查看访问结果。如果使用https访问,则将“http.request”改为“https.request”。 1 2 3 4 5 6 7 8 9 10 11 var req=http.request(opt, function(res){ console.log(res.statusCode) res.on("data", function(chunk){ console.log(chunk.toString()) }) }) req.on("error",function(err){ console.log(err.message) }) req.write(r.body) req.end()
  • 调用API示例 使用JavaScript SDK生成curl命令。 获取“ApiGateway-javascript-sdk.zip”压缩包并解压。在浏览器中打开demo.html,页面如下图所示。 填入Key、Secret、方法名、请求协议、域名和url(认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全)。本示例从前端输入,仅用于演示,例如: 1 2 3 4 Key=4f5f626b-073f-402f-a1e0-e52171c6100c Secret=****** Method=POST Url=https://{apig-endpoint} 填入json格式的Query和Headers,填入Body。其中所访问API的ID为必填项,需要填入具体的ID信息,以参数"x-api-id"填入Headers中。 单击“Send request”,生成curl命令。 $ curl -X POST "https://{apig-endpoint}/" -H "X-Sdk-Date: 20180530T115847Z" -H "Authorization: SDK-HMAC-SHA256 Access=071fe245-9cf6-4d75-822d-c29945a1e06a, SignedHeaders=host;x-sdk-date, Signature=9e5314bd156d517******dd3e5765fdde4" -d "" 为命令添加x-Authorization头,值与Authorization头相同。将curl命令复制到命令行,访问API。 $ curl -X POST "https://{apig-endpoint}/" -H "X-Sdk-Date: 20180530T115847Z" -H "Authorization: SDK-HMAC-SHA256 Access=071fe245-9cf6-4d75-822d-c29945a1e06a, SignedHeaders=host;x-sdk-date, Signature=9e5314bd156d517******dd3e5765fdde4" -H "X-Authorization: SDK-HMAC-SHA256 Access=071fe245-9cf6-4d75-822d-c29945a1e06a, SignedHeaders=host;x-sdk-date, Signature=9e5314bd156d517******dd3e5765fdde4" -d "" Congratulations, sdk demo is running
  • 调用API示例 在工程中引入sdk。 1 using APIGATEWAY_SDK; 生成一个新的Signer, 填入AppKey和AppSecret。 1 2 3 4 5 6 7 8 // 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 string ak = System.Environment.GetEnvironmentVariable("SDK_AK"); string sk = System.Environment.GetEnvironmentVariable("SDK_SK"); Signer signer = new Signer(); signer.Key = ak; signer.Secret = sk; 生成一个HttpRequest对象,指定域方法名、请求url和body。 1 2 3 HttpRequest r = new HttpRequest("POST", new Uri("https://c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1?query=value")); r.body = "{\"a\":1}"; 给请求添加header头,内容为具体参数数据。如有需要,添加需要签名的其他头域。 1 2 r.headers.Add("x-stage", "RELEASE"); r.headers.Add("name","value"); 进行签名,执行此函数会生成一个新的HttpWebRequest,并在请求参数中添加用于签名的X-Sdk-Date头和Authorization头。然后为请求添加x-Authorization头,值与Authorization头相同。 1 2 HttpWebRequest req = signer.Sign(r); req.Headers.Add("x-Authorization", string.Join(", ", req.Headers.GetValues("x-Authorization"))); 访问API,查看访问结果。 1 2 3 4 5 6 var writer = new StreamWriter(req.GetRequestStream()); writer.Write(r.body); writer.Flush(); HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); var reader = newStreamReader(resp.GetResponseStream()); Console.WriteLine(reader.ReadToEnd());
  • 调用API示例 在Android工程中的“app/libs”目录下,加入SDK所需jar包。其中jar包必须包括: java-sdk-core-x.x.x.jar commons-logging-1.2.jar joda-time-2.9.9.jar 在“build.gradle”文件中加入okhttp库的依赖。 在“build.gradle”文件中的“dependencies”下加入“implementation 'com.squareup.okhttp3:okhttp:3.11.0'”。 1 2 3 4 5 dependencies { ... ... implementation 'com.squareup.okhttp3:okhttp:3.11.0' } 创建request,输入AppKey和AppSecret,并指定域名、方法名、请求uri和body。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Request request = new Request(); try { // 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 String ak = System.getenv("SDK_AK"); String sk = System.getenv("SDK_SK"); request.setKey(ak); request.setSecret(sk); request.setMethod("POST"); request.setUrl("https://c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1"); request.addQueryStringParam("name", "value"); request.addHeader("Content-Type", "text/plain"); request.addHeader("name", "value"); request.setBody("demo"); } catch (Exception e) { e.printStackTrace(); return; } 对请求进行签名,并为请求添加x-Authorization头,值与Authorization头相同。然后生成okhttp3.Request对象来访问API。 1 2 3 4 5 okhttp3.Request signedRequest = Client.signOkhttp(request); String authorization = signedRequest.header("Authorization"); signedRequest = signedRequest.newBuilder().addHeader("x-Authorization",authorization).build(); OkHttpClient client = new OkHttpClient.Builder().build(); Response response = client.newCall(signedRequest).execute();
  • SDK调用常见错误码/错误信息 表1 常见错误码/错误信息 错误码 错误信息 错误原因 解决方案 DLM.0 null 表示API调用成功。 表示调用成功,无需处理。 APIG.0101 The API does not exist or has not been published in the environment API未发布 url错误 发布API 确认请求的url和实际url是否相同 APIG.0106 Orchestration error: Invalid header parameter: x-Authorization, required SDK未添加x-Authorization。 SDK使用前准备步骤3。 APIG.0106 Orchestration error: Invalid ___ parameter: ___, required 未传指定参数。 调用时上传此参数。 APIG.0201 Backend timeout 后端超时(API网关请求维持50秒后未收到返回结果,会返回此错误信息。) 请先确认数据服务访问日志,如果访问日志中有数据(数据略有延迟),则说明数据源取数时间过长,请尽量优化取数sql逻辑。 如果访问日志中无数据,请确认(共享版:数据服务gateway/专享版:数据服务集群)是否运行中。 APIG.0303 Incorrect app authentication information: app not found 应用不存在。 确认请求的key和secret是否准确。 APIG.0304 The app is not authorized to access the API 应用无权访问当前API。 确认API已授权给应用。 确认请求的key和secret是否准确。 APIG.0308 The throttling threshold has been reached: policy domain over ratelimit, limit:1000, time:1 day 域名的请求次数达到了给定的上限:1天1000次。 建议:去API网关,为分组绑定域名。 临时规避:切换分组。域名以分组为单位,每个分组限制独立计算。 DLM.4018 Api is not exist API不存在。 20200630版本前发布的API: 请确认调用时参数x-api-id的值,是否正确(该值为所访问API的ID,请向此API的提供者获取) 20200630版本后发布的API: 确认请求的url和实际url是否相同。 若为专享版刚发布的API,请稍作等待,API下发至集群存在短暂的延时。 其他(数据同步异常): 停用/下线对应API,然后恢复/发布。 尝试重启集群(逐个节点重启可避免业务影响)。 DLM.4094 Call api failed. 调用API失败。 确认调用所执行的SQL正确,可以正常使用(所执行SQL详见访问日志,仅API方可见)。 CDM 中代理异常,错误原因详见返回的DLG错误信息。 调用超时,若为DWS数据库,建议API采用自定义分页。 调用超时,请优化查询语句,确保数据库中能短时间内完成执行。 DLM.4211 Token invalid token校验不通过。 确认token是否正确。 确认token所属租户,是否已授权或已位于白名单中。 DLM.4312 Missing parameters: ___ 缺少指定参数。 调用时上传此参数。 400 App does not have permission to access API. 应用无权访问当前API。 确认API已授权给应用。 确认请求的key和secret是否准确。 确认API和APP的授权关系仍在有效期内。 401 Authorization not found. 签名信息未找到。 应用认证:SDK使用前准备步骤3。 发布到网关的专享版 IAM 认证:IAM认证的API发布到网关后,不支持直接访问集群的token认证形式。 401 Authorization format incorrect. 签名格式错误。 建议使用SDK生成签名。 401 Signing key not found. 签名密钥未找到。 确认请求的key和secret是否准确。 401 Signed header ___ not found. 签名头未找到。 请确认用于签名的header头参数在调用时上传了。 401 Header x-sdk-date not found. 签名头x-sdk-date未找到。 此参数为签名时自动生成,若通过其他方式调用,请将SDK签名后的此参数在调用时也进行上传。 401 Signature expired. 签名过期。 签名具有一定的有效期,当前签名已过期,请重新生成签名。 请确认本地时间和实际时间是否一致。 如果本地时间是准确的,请联系相关人员确认集群节点时间,可能节点时间存在异常。 401 Verify authroization failed. 签名校验失败。 请确认进行签名的所有参数,均已上传且和签名时相同,包括且不限于url、path、header、query、body等。 说明: 如果自行对接了第三方网关等,请求地址和数据服务展示的地址不一致,需要在请求头中补充参数x-forwarded-host,值为签名时使用的请求地址。 如果使用get请求,不要定义body体。 DLG.0902 Fail to call the agent. For details about No matching constant for [-1], see the CDM logs. CDM上的代理拒绝服务。 SQL执行时间过长 CDM资源不足了 确认SQL执行时长,如果时间过长,建议优化SQL(默认分页的话则建议使用自定义分页)。 如果SQL执行时间较短,当前没有其他服务正在作业的话,重启CDM。 DAYU.1088 Failed to process the request sent by the agent. CDM无响应。 尝试重启CDM。 可能是CDM升级引起,考虑新买一个CDM。 父主题: 数据服务SDK参考
  • 准备环境 已获取API的域名、请求url、请求方法、AppKey和AppSecret等信息,具体参见认证前准备。 获取并安装IntelliJ IDEA,如果未安装,请至IntelliJ IDEA官方网站下载。 获取并安装PHP安装包,如果未安装,请至PHP官方下载页面下载。 将PHP安装目录中的“php.ini-production”文件复制到“C:\windows”,改名为“php.ini”,并在文件中增加如下内容。 1 2 3 extension_dir = "php安装目录/ext" extension=openssl extension=curl 已在IntelliJ IDEA中安装PHP插件,如果未安装,请按照图1所示安装。 图1 安装PHP插件
  • 数据服务SDK使用场景 数据API是否必须通过数据服务SDK代码才能调用,与数据API的认证方式有关。只有当通过数据服务创建数据API使用推荐的APP认证方式时,才能通过SDK方式进行数据API调用;当使用其他认证方式时,可以通过API调用工具或浏览器调用。 APP认证:将APP认证方式的API授权给应用后,使用应用的密钥对(AppKey和AppSecret)进行安全认证,支持通过SDK或API调用工具调用,安全级别高,推荐使用。 IAM认证:将IAM认证方式的API授权给当前账号或其他账号后,借助从IAM服务获取的用户Token进行安全认证。支持通过API调用工具调用,安全级别中等。 无认证:不需要认证,所有用户均可访问,建议仅在测试接口时使用,不推荐正式使用。使用无认证方式时,无需鉴权认证信息,安全级别低,通过API调用工具或浏览器即可直接调用。
  • 准备环境 已获取API的域名、请求url、请求方法、AppKey和AppSecret等信息,具体参见认证前准备。 获取并安装Python安装包(可使用2.7.9+或3.X),如果未安装,请至Python官方下载页面下载。 Python安装完成后,在命令行中使用pip安装“requests”库。 pip install requests 如果pip安装requests遇到证书错误,请下载并使用Python执行此文件,升级pip,然后再执行以上命令安装。 获取并安装IntelliJ IDEA,如果未安装,请至IntelliJ IDEA官方网站下载。 已在IntelliJ IDEA中安装Python插件,如果未安装,请按照图1所示安装。 图1 安装Python插件
  • 调用API示例 在工程中引入apig_sdk。 1 2 3 from apig_sdk import signer import requests import os 生成一个新的Signer,填入AppKey和AppSecret。 1 2 3 4 5 6 7 8 # 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 ak = os.environ("SDK_AK"); sk = os.environ("SDK_SK"); sig = signer.Signer() sig.Key = ak sig.Secret = sk 生成一个Request对象,指定方法名、请求uri、header和body。 1 2 3 4 r = signer.HttpRequest("POST", "https://c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1?a=1", {"x-stage": "RELEASE", "name": "value"}, "body") 进行签名,执行此函数会在请求参数中添加用于签名的X-Sdk-Date头和Authorization头。然后为请求添加x-Authorization头,值与Authorization头相同。 1 2 sig.Sign(r) r.headers["x-Authorization"] = r.headers["Authorization"] 访问API,查看访问结果。 1 2 3 resp = requests.request(r.method, r.scheme + "://" + r.host + r.uri, headers=r.headers, data=r.body) print(resp.status_code, resp.reason) print(resp.content)
  • 参考示例2:根据关键字出现的次数设置告警 如果您希望在一定时间范围内日志关键字出现的次数达到指定次数时,才触发告警,则您可以参考本示例设置查询分析语句和SQL告警规则。以下示例仅供参考,请以实际业务为准。 使用“SELECT count(*) as Error”在目标日志流查询当前Error总共出现90次。 图4 查询结果 查询语句:选择查询时间范围为5分钟,然后执行如下语句“SELECT count(*) as Error”,统计5分钟内出现Error关键字的次数。更多搜索语法请参考SQL分析语法介绍。 图5 查询语句 告警通知:创建上述告警规则后,只要日志中出现Error关键字超过2次,您就可以在“告警列表”收到告警通知。您还可以单击告警名称,查看告警详情,进行溯源。 图6 告警报错
  • SDK列表 表1提供了E CS 服务支持的SDK列表,您可以在GitHub仓库查看SDK更新历史、获取安装包以及查看指导文档。 表1 SDK列表 编程语言 Github地址 参考文档 Java huaweicloud-sdk-java-v3 Java SDK使用指导 Python huaweicloud-sdk-python-v3 Python SDK使用指导 Go huaweicloud-sdk-go-v3 Go SDK使用指导 NodeJs huaweicloud-sdk-nodejs-v3 NodeJs SDK使用指导 .NET huaweicloud-sdk-net-v3 .Net SDK使用指导 PHP huaweicloud-sdk-php-v3 PHP SDK使用指导 C++ huaweicloud-sdk-cpp-v3 C++ SDK使用指导
  • 概述 用户在本地环境打包容器镜像,只要符合OCI(Open Container Initiative)标准,都可以上传到FunctionGraph,由平台加载并启动运行。与原来上传代码方式相比,用户可以使用自定义的代码包,不仅灵活也简化了用户的迁移成本。您可以选择“事件函数”类型创建 自定义镜像 函数,也可以选择“HTTP函数”类型创建自定义镜像函数。 使用容器镜像部署函数,开发HTTP函数示例,请参见开发HTTP函数。 使用容器镜像部署函数,开发事件函数示例,请参见开发事件函数。 支持的功能: 下载用户镜像 用户镜像储存在自己的SWR服务中,需要SWR Admin权限才能下载,FunctionGraph会在创建pod前使用swr api生成并设置好临时登录指令。 环境变量 设置FunctionGraph函数的加密配置和环境变量,具体请参见配置环境变量。 挂载外部数据盘 支持挂载外部数据盘,具体请参见配置磁盘挂载。 计费 下载镜像、等待镜像Ready不计费。 预留实例 支持预留实例,具体请参见预留实例。 流式返回 支持在函数中返回超过6MB并且不超过200MB的大报文,以数据流的方式返回。 用户容器会使用属主1003、属组1003启动,与其他类型的函数相同。
  • 运行时接口说明 FunctionGraph提供了用于自定义运行时的HTTP API来接收来自函数的调用事件,并在FunctionGraph执行环境中发送回响应数据。 获取调用 方法 – Get 路径 – http://$RUNTIME_API_ADDR/v1/runtime/invocation/request 该接口用来获取下一个事件,响应正文包含事件数据。响应标头包含信息如下。 表1 响应标头信息说明 参数 说明 X-Cff-Request-Id 请求ID。 X-CFF-Access-Key 租户AccessKey,使用该特殊变量需要给函数配置委托。 X-CFF-Auth-Token Token,使用该特殊变量需要给函数配置委托。 X-CFF-Invoke-Type 函数执行类型。 X-CFF-Secret-Key 租户SecretKey,使用该特殊变量需要给函数配置委托。 X-CFF-Security-Token Security token,使用该特殊变量需要给函数配置委托。 调用响应 方法 – POST 路径 – http://$RUNTIME_API_ADDR/v1/runtime/invocation/response/$REQUEST_ID 该接口将正确的调用响应发送到FunctionGraph。在运行时调用函数处理程序后,将来自函数的响应发布到调用响应路径。 错误上报 方法 – POST 路径 – http://$RUNTIME_API_ADDR/v1/runtime/invocation/error/$REQUEST_ID $REQUEST_ID为获取事件的响应header中X-Cff-Request-Id变量值,说明请参见表1。 $RUNTIME_API_ADDR为系统环境变量,说明请参见表2。 该接口将错误的调用响应发送到FunctionGraph。在运行时调用函数处理程序后,将来自函数的响应发布到调用响应路径。
  • 场景说明 运行时负责运行函数的设置代码、从环境变量读取处理程序名称以及从FunctionGraph运行时API读取调用事件。运行时会将事件数据传递给函数处理程序,并将来自处理程序的响应返回给FunctionGraph。 FunctionGraph支持自定义编程语言运行时。您可以使用可执行文件(名称为bootstrap)的形式将运行时包含在函数的程序包中,当调用一个FunctionGraph函数时,它将运行函数的处理程序方法。 自定义的运行时在FunctionGraph执行环境中运行,它可以是Shell脚本,也可以是可在linux可执行的二进制文件。 在本地开发程序之后打包,必须是ZIP包(Java、Node.js、Python、Go)或者JAR包(Java),上传至FunctionGraph即可运行,无需其它的部署操作。制作ZIP包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。 对于Go runtime,必须在编译之后打zip包,编译后的动态库文件名称必须与函数执行入口的插件名称保持一致,例如:动态库名称为testplugin.so,则“函数执行入口”命名为testplugin.Handler。
  • 运行时环境变量说明 下面是FunctionGraph执行环境中运行时相关的环境变量列表,除此之外,还有用户自定义的环境变量,都可以在函数代码中直接使用。 表2 环境变量说明 键 值说明 RUNTIME_PROJECT_ID projectID RUNTIME_FUNC_NAME 函数名称 RUNTIME_FUNC_VERSION 函数的版本 RUNTIME_PACKAGE 函数组 RUNTIME_HANDLER 函数执行入口 RUNTIME_TIMEOUT 函数超时时间 RUNTIME_USERDATA 用户通过环境变量传入的值 RUNTIME_CPU 分配的CPU数 RUNTIME_MEMORY 分配的内存 RUNTIME_CODE_ROOT 包含函数代码的目录 RUNTIME_API_ADDR 自定义运行时API的主机和端口 用户定义的环境变量也同FunctionGraph环境变量一样,可通过环境变量获取方式直接获取用户定义环境变量。
  • 步骤一:购买ECS 购买用于采集数据的弹性云服务器,详细操作请参见购买ECS。 数据采集的Agent目前仅支持运行在Linux系统x86_64架构的ECS主机上。ECS主机支持以下操作系统类型:Huawei Cloud EulerOS 2.5、Huawei Cloud EulerOS 2.9、EulerOS 2.5、EulerOS 2.9、CentOS 7.9。 购买时,需注意操作系统和版本的选择。 图1 选择操作系统版本 ECS购买后,系统将根据使用情况进行收费,具体收费情况请参见ECS计费说明。 后续如果不再使用数据采集功能,需要手动释放用于采集数据的ECS资源,详细操作请参见如何释放ECS和 VPC终端节点 资源?。
  • 富媒体展示效果(SDK默认展示方式) 用户与数字人进行智能交互的页面,富媒体展示效果支持使用SDK提供的默认展示方式。 下述智能交互客户端SDK的两个方法的配置字段enableCaption,默认值均为False,即用户自定义富媒体的展示效果。如果需要使用SDK提供的默认展示效果,需修改参数enableCaption的值为true。 修改create方法中param参数的config配置项,即修改是否显示字幕字段enableCaption的值为true。 await HwICSUiSdk.create({ serverAddress: 'serverAddress', robotId: 'robotId', onceCode: 'onceCode', containerId: 'containerId', config: { enableCaption: true } }); 修改setConfig方法是否显示字幕的配置项enableCaption的值为true。 HwICSUiSdk.setConfig({ enableCaption: true }); 表1中导入的图片使用SDK默认方式时,在智能交互页面的展示效果,如图1所示。 图1 SDK默认方式展示效果
  • 请求示例 创建一个伸缩组,伸缩组名称为GroupNameTest,伸缩配置ID为47683a91-93ee-462a-a7d7-484c006f4440,虚拟私有云ID为a8327883-6b07-4497-9c61-68d03ee193a,网卡ID为3cd35bca-5a10-416f-8994-f79169559870,最大实例数为10,期望实例数为0,最小实例数为0,健康检查方式为云服务器健康检查,设置具体企业项目,伸缩组扩缩容时目标AZ选择的优先级策略为PICK_FIRST(选择优先)。
  • 返回值 正常 200 异常 返回值 说明 400 Bad Request 服务器未能处理请求。 401 Unauthorized 被请求的页面需要用户名和密码。 403 Forbidden 对被请求的页面访问禁止。 404 Not Found 服务器无法找到被请求的页面。 405 Method Not Allowed 请求中指定的方法不被允许。 406 Not Acceptable 服务器生成的响应无法被客户端所接受。 407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。 408 Request Timeout 请求超出了服务器的等待时间。 409 Conflict 由于冲突,请求无法被完成。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 502 Bad Gateway 请求未完成。服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成。系统暂时异常。 504 Gateway Timeout 网关超时。
  • 请求参数 表2 请求参数 参数 是否必选 参数类型 描述 scaling_group_name 是 String 伸缩组名称(1-64个字符),只能包含中文、字母、数字、下划线或中划线。 scaling_configuration_id 是 String 伸缩配置ID,通过查询弹性伸缩配置列表接口获取,请参考查询弹性伸缩配置列表。 desire_instance_number 否 Integer 期望实例数量,默认值为最小实例数。 最小实例数≤期望实例数≤最大实例数。 min_instance_number 否 Integer 最小实例数量,默认值为0。 max_instance_number 否 Integer 最大实例数量,默认值为1。取值范围为0-300的整数。 cool_down_time 否 Integer 冷却时间,取值范围0-86400,默认为300,单位是秒。 在每次伸缩活动完成之后,系统开始计算冷却时间。伸缩组在冷却时间内,会拒绝告警策略的触发,其他类型的伸缩策略(如定时策略和周期策略)及手动触发不受限制。 说明: 伸缩组在进行扩容活动过程中,允许缩容策略的触发,扩容活动结束后执行缩容活动,不受冷却时间影响。 伸缩组在进行缩容活动过程中,允许扩容策略的触发,缩容活动结束后执行扩容活动,不受冷却时间影响。 lb_listener_id 否 String 弹性负载均衡监听器ID,最多支持绑定6个负载均衡监听器,多个负载均衡监听器ID以逗号分隔。获取监听器ID的方法请参考查询负载均衡器列表。 该字段与lbaas_listeners互斥。 lbaas_listeners 否 Array of lbaas_listeners objects 弹性负载均衡器信息,最多支持绑定6个负载均衡。列表数据结构请参考表3。获取负载均衡器的信息请参考查询后端云服务器组。 该字段与lb_listener_id互斥。 available_zones 否 Array of strings 可用区信息。弹性伸缩活动中自动添加的云服务器会被创建在指定的可用区中。如果没有指定可用区,会由系统自动指定可用区。详情请参考地区和终端节点。 networks 是 Array of networks objects 网络信息,最多支持选择5个子网,传入的第一个子网默认作为云服务器的主网卡。获取子网信息请参考查询子网列表。数据结构信息请参考表4。 security_groups 否 Array of security_groups objects 安全组信息,仅支持选择1个安全组。获取安全组信息请参考查询安全组列表。数据结构信息请参考表7。 当伸缩配置和伸缩组同时指定安全组时,将以伸缩配置中的安全组为准;当伸缩配置和伸缩组都没有指定安全组时,增加的弹性云服务器将使用默认安全组。为了使用灵活性更高,推荐在伸缩配置中指定安全组。 vpc_id 是 String 虚拟私有云(VPC)信息,获取VPC信息具体操作请参考查询VPC列表。 health_periodic_audit_method 否 String 伸缩组实例健康检查方式:ELB_AUDIT和NOVA_AUDIT。当伸缩组设置负载均衡时,默认为ELB_AUDIT;否则默认为NOVA_AUDIT。 ELB_AUDIT:负载均衡健康检查方式,在有监听器的伸缩组中有效。 NOVA_AUDIT:云服务器健康检查方式,是弹性伸缩自带的健康检查方式。 health_periodic_audit_time 否 Integer 伸缩组实例的健康检查周期,可设置为1、5、15、60、180(分钟),若不设置该参数,默认为5。 若设置为0,可以实现10秒级健康检查。 health_periodic_audit_grace_period 否 Integer 伸缩组实例健康状况检查宽限期,取值范围0-86400,单位是秒,默认为600。 当实例加入伸缩组并且进入已启用状态后,健康状况检查宽限期才会启动,伸缩组会等健康状况检查宽限期结束后才检查实例的运行状况。 当伸缩组实例健康检查方式为ELB_AUDIT时,该参数生效。 instance_terminate_policy 否 String 伸缩组实例移除策略: OLD_CONFIG_OLD_INSTANCE(默认):从“较早创建的配置”创建的实例中选择较早创建的实例进行优先移除。 OLD_CONFIG_NEW_INSTANCE:从“较早创建的配置”创建的实例中选择较晚创建的实例进行优先移除。 OLD_INSTANCE:较早创建的实例被优先移除。 NEW_INSTANCE:较晚创建的实例将被优先移除。 notifications 否 Array of strings 通知方式: EMAIL为发送邮件通知。 该通知方式已经被废除,建议给弹性伸缩组配置通知功能。请参考通知。 delete_publicip 否 Boolean 配置删除云服务器时(即进行实例缩容时,将云服务器从伸缩组中移出)是否删除云服务器绑定的弹性IP。取值为true或false,默认为false。 true:删除云服务器时,会同时删除绑定在云服务器上的弹性IP。当弹性IP的计费方式为包年包月时,不会被删除。 false:删除云服务器时,仅解绑定在云服务器上的弹性IP,不删除弹性IP。 delete_volume 否 Boolean 配置删除云服务器时(即进行实例缩容时,将云服务器从伸缩组中移出)是否删除云服务器绑定的数据盘。取值为true或false,默认为false。 true:删除云服务器时,会同时删除绑定在云服务器上的数据盘。当数据盘的计费方式为包年包月时,不会被删除。 false:删除云服务器时,仅解绑定在云服务器上的数据盘,不删除数据盘。 enterprise_project_id 否 String 企业项目ID,用于指定伸缩组归属的企业项目。 取值为0或无该值,表示属于default企业项目。 取值为UUID,表示属于该UUID对应的企业项目,如何获取企业项目ID,请参考查询企业项目列表。 当伸缩组配置企业项目时,由该伸缩组创建的弹性云服务器将归属于该企业项目。否则将使用默认企业项目。 说明: 关于企业项目特性的详细信息,请参见企业项目管理。 multi_az_priority_policy 否 String 伸缩组扩缩容时目标AZ选择的优先级策略: EQUILIBRIUM_DISTRIBUTE(默认):均衡分布,云服务器扩缩容时优先保证available_zones列表中各AZ下虚拟机数量均衡,当无法在目标AZ下完成虚拟机扩容时,按照PICK_FIRST原则选择其他可用AZ。 PICK_FIRST:选择优先,虚拟机扩缩容时目标AZ的选择按照available_zones列表的顺序进行优先级排序。 description 否 String 伸缩组描述(1-256个字符)。 iam_agency_name 否 String 委托(1-64个字符)。 iam_agency_name为空或者无值则不传递该字段。 iam_agency_name不为空则向下传递。 tags 否 Array of tags objects 创建特定标签并将其添加到伸缩组。每个伸缩组最多添加10个标签。 详情请参考表8。 表3 lbaas_listeners字段数据结构说明 参数 是否必选 参数类型 描述 pool_id 是 String 后端云服务器组ID protocol_port 是 Integer 后端协议号,指后端云服务器监听的端口,取值范围[1, 65535]。 weight 是 Integer 权重,指后端云服务器经分发得到的请求数量的比例,取值范围[0, 100]。 protocol_version 否 String 绑定到负载均衡云服务器组的IP地址版本,枚举值支持ipv4和ipv6。 说明: 伸缩组实例不支持多网卡双栈,仅支持首网卡双栈,其他网卡地址会被忽略。首网卡是指从弹性云服务器查询到的第一张支持所选IP地址版本的网卡,可能是主网卡,也可能是扩展网卡。 只有选择支持IPv6的弹性云服务器,才可以使用IPv4/IPv6双栈网络,请务必选择支持的区域和规格。 当pool_id、protocol_port、protocol_version均一致时,会进行去重。 表4 networks字段数据结构说明 参数 是否必选 参数类型 描述 id 是 String 子网的网络ID。 ipv6_enable 否 Boolean 是否启用IPv6。 true:标识此网卡已启用ipv6。 false:标识此网卡未启用ipv6。默认取值为false。 ipv6_bandwidth 否 ipv6_bandwidth object 绑定的IPv6共享带宽。默认为空,表示未绑定IPv6的共享带宽。 allowed_address_pairs 否 Array of allowed_address_pairs objects 是否开启源/目的检查开关。 表5 ipv6_bandwidth字段数据结构说明 参数 是否必选 参数类型 描述 id 是 String IPv6共享带宽的ID 表6 allowed_address_pairs字段数据结构说明 参数 是否必选 参数类型 描述 ip_address 否 String 是否开启源/目的检查开关。 默认是开启,不允许置空。 关闭:1.1.1.1/0 开启:除“1.1.1.1/0”以外的其余值均按开启处理 表7 security_groups字段数据结构说明 参数 是否必选 参数类型 描述 id 是 String 安全组ID 表8 tags字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 键。 最大长度36个unicode字符。key不能为空。 同一资源的key值不能重复。 只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线(_)、中划线(-)以及中文字符。 value 否 String 值。 每个值最大长度43个unicode字符,可以为空字符串。 value值只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线(_)、中划线(-)、小数点(.)以及中文字符。
  • 功能介绍 伸缩组是具有相同应用场景的实例的集合,是启停伸缩策略和进行伸缩活动的基本单位。伸缩组内定义了最大实例数、期望实例数、最小实例数、虚拟私有云、子网、负载均衡等信息。 默认最多可以创建10个伸缩组。 如果伸缩组配置了负载均衡,在添加或移除实例时,会自动为实例绑定或解绑负载均衡监听器。 如果伸缩组使用负载均衡健康检查方式,伸缩组中的实例需要启用负载均衡器的监听端口才能通过健康检查。端口启用可在安全组中进行配置,可参考添加安全组规则进行操作。 如果您将多个负载均衡器添加到伸缩组,则只有在所有负载均衡器均检测到云服务器状态为正常的情况下,才会认为该弹性云服务器正常。否则只要有一个负载均衡器检测到云服务器状态异常,伸缩组会将该弹性云服务器移出伸缩组。 如果您将负载均衡器的多个端口绑定到伸缩组,则只有在所有端口均检测到云服务器状态为正常的情况下,才会认为该弹性云服务器正常。否则只要有一个端口检测到云服务器状态异常,伸缩组会将该弹性云服务器移出伸缩组。 当实例绑定负载均衡器的多个端口时,推荐伸缩策略与云服务器实例告警指标关联,避免伸缩策略与单一业务或网络指标关联,否则当不同告警指标分别指向扩容和缩容时,会导致扩缩容同时触发。 弹性伸缩活动中,若实例与负载均衡器的多个端口依次绑定或解绑,未全部成功时,则认为实例伸缩失败。扩容触发实例释放并创建新实例,缩容失败不释放实例。
  • 响应示例 { "scaling_group": { "networks": [ { "id": " a8327883-6b07-4497-9c61-68d03ee193a ", "ipv6_enable": true, "ipv6_bandwidth": { "id": "076ee2ff-f23e-4338-b8ac-1bc7278532d5" } } ], "available_zones": [ "XXXa", "XXXb" ], "detail": null, "scaling_group_name": "api_gateway_modify", "scaling_group_id": "d4e50321-3777-4135-97f8-9f5e9714a4b0", "scaling_group_status": "INSERVICE", "scaling_configuration_id": "53579851-3841-418d-a97b-9cecdb663a90", "scaling_configuration_name": "press", "current_instance_number": 7, "desire_instance_number": 8, "min_instance_number": 0, "max_instance_number": 100, "cool_down_time": 900, "lb_listener_id": null, "security_groups": [ { "id": "23b7b999-0a30-4b48-ae8f-ee201a88a6ab" } ], "create_time": "2015-09-01T08:36:10Z", "vpc_id": "3e22f934-800d-4bb4-a588-0b9a76108190", "health_periodic_audit_method": "NOVA_AUDIT", "health_periodic_audit_time": 5, "health_periodic_audit_grace_period": 600, "instance_terminate_policy": "OLD_CONFIG_OLD_INSTANCE", "is_scaling": true, "delete_publicip": false, "notifications": null, "enterprise_project_id":"c92b1a5d-6f20-43f2-b1b7-7ce35e58e413", "activity_type":"MODIFY_ELB", "multi_az_priority_policy":"PICK_FIRST", "iam_agency_name":"test", "tags":[{"key":"1"}] } }
  • 返回值 正常 200 异常 返回值 说明 400 Bad Request 服务器未能处理请求。 401 Unauthorized 被请求的页面需要用户名和密码。 403 Forbidden 对被请求的页面访问禁止。 404 Not Found 服务器无法找到被请求的页面。 405 Method Not Allowed 请求中指定的方法不被允许。 406 Not Acceptable 服务器生成的响应无法被客户端所接受。 407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。 408 Request Timeout 请求超出了服务器的等待时间。 409 Conflict 由于冲突,请求无法被完成。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 502 Bad Gateway 请求未完成。服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成。系统暂时异常。 504 Gateway Timeout 网关超时。
  • 响应参数 表2 响应参数 参数 参数类型 描述 scaling_group scaling_groups object 伸缩组详情。 表3 scaling_groups字段数据结构说明 参数 参数类型 描述 scaling_group_name String 伸缩组名称。 scaling_group_id String 伸缩组ID。 scaling_group_status String 伸缩组状态。 scaling_configuration_id String 伸缩配置ID。 scaling_configuration_name String 伸缩配置名称。 current_instance_number Integer 伸缩组中当前实例数。 desire_instance_number Integer 伸缩组中期望实例数。 min_instance_number Integer 伸缩组中最小实例数。 max_instance_number Integer 伸缩组中最大实例数。 cool_down_time Integer 冷却时间,单位是秒。 lb_listener_id String 经典型负载均衡监听器ID,多个负载均衡监听器ID以逗号分隔。 lbaas_listeners Array of lbaas_listeners objects 增强型负载均衡器信息,详情请见表 lbaas_listeners字段数据结构说明。 available_zones Array of strings 可用区信息。 networks Array of networks objects 网络信息,详情请见表5 security_groups Array of security_groups objects 安全组信息,详情请见表8 create_time String 创建伸缩组时间,遵循UTC时间。 vpc_id String 伸缩组所在的VPC ID。 detail String 伸缩组详情。当伸缩活动失败时,在此处记录错误信息。 is_scaling Boolean 伸缩组伸缩标志。 health_periodic_audit_method String 健康检查方式。 health_periodic_audit_time Integer 健康检查的间隔时间。 health_periodic_audit_grace_period Integer 健康状况检查宽限期。 instance_terminate_policy String 移除策略。 notifications Array of strings 通知方式: EMAIL为发送邮件通知。 该通知方式已经被废除,建议给弹性伸缩组配置通知功能。请参考通知。 delete_publicip Boolean 删除云服务器是否删除云服务器绑定的弹性IP。 delete_volume Boolean 删除云服务器是否删除云服务器绑定的数据盘。 cloud_location_id String 该参数为预留字段。 enterprise_project_id String 企业项目ID activity_type String 伸缩组活动类型。 multi_az_priority_policy String 伸缩组扩缩容时目标AZ选择的优先级策略。 description String 伸缩组描述。 iam_agency_name String 委托。 tags Array of tags objects 添加到伸缩组的标签。详情请见表9 表4 networks字段数据结构说明 参数 参数类型 描述 id String 子网的网络ID。 ipv6_enable Boolean 是否启用IPv6。取值为true时,标识此网卡已启用ipv6。默认取值为false。 ipv6_bandwidth ipv6_bandwidth object 绑定的IPv6共享带宽,默认为空,表示不绑定IPv6的共享带宽。 allowed_address_pairs Array of allowed_address_pairs objects 是否开启源/目的检查开关。 表5 ipv6_bandwidth字段数据结构说明 参数 参数类型 描述 id String IPv6共享带宽的ID。 表6 allowed_address_pairs字段数据结构说明 参数 参数类型 描述 ip_address String 是否开启源/目的检查开关。 默认是开启,不允许置空。 关闭:1.1.1.1/0 开启:除“1.1.1.1/0”以外的其余值均按开启处理
  • 操作步骤 将3个VPC分别接入企业路由器中。 添加“虚拟私有云(VPC)”连接,具体方法请参见在企业路由器中添加VPC连接。 在企业路由器中创建2个路由表。 创建路由表,具体方法请参见创建路由表。 在ER路由表1中创建“虚拟私有云(VPC)”连接的关联和静态路由。 路由表1资源规划详情,请参见表8。 将VPC1连接和VPC2连接关联至路由表1。 创建关联,具体方法请参见创建关联将连接关联至路由表中。 在路由表1中创建下一跳为VPC3连接的静态路由,网段为0.0.0.0/0。 创建静态路由,具体方法请参见创建静态路由。 在ER路由表2中创建“虚拟私有云(VPC)”连接的关联和传播。 路由表2资源规划详情,请参见表8。 将VPC3连接关联至路由表2。 创建关联,具体方法请参见创建关联将连接关联至路由表中。 在路由表2中,创建VPC1连接和VPC2连接的传播。 创建传播,具体方法请参见创建传播。 在VPC路由表中配置路由信息。 配置路由信息,具体方法请参见在VPC路由表中配置路由。 配置VPC到ER路由。 路由规划详情,请参见表3。 在VPC3默认路由表中,配置VPC到ECS路由。 路由规划详情,请参见表4。
  • 资源规划说明 企业路由器ER、云专线DC、 虚拟私有云VPC 、弹性 云服务器ECS 只要位于同一个区域内即可,可用区可以任意选择,不用保持一致。 以下资源规划详情仅为示例,您可以根据需要自行修改。 表5 企业路由器和中转VPC组网资源规划总体说明 资源类型 说明 虚拟私有云VPC 本示例中共创建3个VPC,资源规划示例如表6所示。 业务VPC:2个,实际运行客户业务的VPC。业务VPC只需要和中转VPC建立对等连接,不需要接入ER中。 中转VPC:1个,用于转发业务VPC之间、以及业务VPC和线下IDC之间的流量,该VPC下不建议运行任何业务。中转VPC需要接入ER中。 须知: 业务VPC和中转VPC的网段与客户IDC侧网段不能重复。 通过对等连接连通的VPC子网网段不能重叠,因此业务VPC和中转VPC的子网网段不允许重叠。 由于中转VPC需要接入企业路由器,关于接入企业路由器的约束,更多详细请参见约束与限制。 VPC对等连接 本示例中共创建2个对等连接,用于连通VPC-A、VPC-B和VPC-Transit之间的网络,资源规划示例如表7所示。 云专线DC 本示例中的DC包含1个物理连接,1个虚拟网关以及1个虚拟接口,资源规划示例如表8所示。 企业路由器ER 本示例中创建1个ER,并在ER中添加2个连接,资源规划示例如表9所示。 弹性云服务器ECS 本示例共创建2个ECS,每个业务VPC内各有1个ECS,资源规划示例如表10所示。
  • 网络规划说明 企业路由器和中转VPC组网规划如图1所示,业务VPC之间通过对等连接通信,将中转VPC和DC分别接入ER中,组网规划说明如表2所示。 图1 企业路由器和中转VPC组网规划 使用企业路由器和中转VPC组网方案,可以实现业务VPC之间的云上网络通过对等连接连通,云上和云下之间的网络通过ER和DC连通。 云上VPC和线下IDC通信时,通过ER和DC实现通信,本示例的网络流量路径说明请参见表1中的“路径一” 云上VPC通信时,通过业务VPC和中转VPC之间的对等连接实现通信,本示例的网络流量路径说明请参见表1中的“路径二”。 表1 网络流量路径说明 序号 路径 说明 路径一 请求路径:VPC-A→线下IDC 在VPC-A路由表中,通过下一跳为Peer-A-T的路由将流量转送到VPC-Transit。 在VPC-Transit路由中,通过下一跳为ER的路由将流量转送到ER。 在ER路由表中,通过下一跳为VGW连接的路由将流量转送到虚拟网关。 虚拟网关连接虚拟接口,通过虚拟接口将流量从远端网关转送到物理专线。 通过物理专线将流量送达线下IDC。 响应路径:线下IDC→VPC-A 通过物理专线将流量转送到虚拟接口。 虚拟接口连接虚拟网关,通过虚拟接口将流量从本端网关转送到虚拟网关。 通过虚拟网关将流量转送到ER。 在ER路由表中,通过下一跳为VPC-T连接的路由将流量转送到VPC-Transit。 在VPC-Transit路由中,通过下一跳为Peer-A-T的路由将流量送达VPC-A。 路径二 请求路径:VPC-B→VPC-A 在VPC-B路由表中,通过下一跳为Peer-B-T的路由将流量转送到VPC-Transit。 在VPC-Transit路由表中,通过下一跳为Peer-A-T的路由将流量送达VPC-A。 响应路径:VPC-A→VPC-B 在VPC-A路由表中,通过下一跳为Peer-A-T的路由将流量转送到VPC-Transit。 在VPC-Transit路由表中,通过下一跳为Peer-B-T的路由将流量送达VPC-B。 表2 企业路由器和中转VPC组网规划说明 资源 说明 VPC 业务VPC,实际运行客户业务的VPC,本示例中为VPC-A和VPC-B,具体说明如下: 业务VPC的网段,不能与客户IDC侧网段重复。 通过对等连接连通的VPC子网网段不能重叠,本示例中业务VPC-A、业务VPC-B以及中转VPC-Transit的网段均不相同。 VPC有一个默认路由表。 VPC默认路由表中的路由说明如下: VPC-A:表示通过VPC-A和VPC-Transit之间的对等连接Peer-A-T,将VPC子网流量转发至中转VPC,此处配置两条路由,目的地址分别为VPC-B的网段和线下IDC的子网网段,路由信息如表3所示。 VPC-B:表示通过VPC-B和VPC-Transit之间的对等连接Peer-B-T,将VPC子网流量转发至中转VPC,此处配置两条路由,目的地址分别为VPC-A的网段和线下IDC的子网网段,路由信息如表3所示。 中转VPC,接入ER的VPC,本示例中为VPC-Transit,具体说明如下: 中转VPC用于中转业务VPC之间、以及业务VPC和线下IDC之间的流量,该VPC下不建议运行任何业务。 中转VPC的网段,不能与客户IDC侧网段重复。 通过对等连接连通的VPC子网网段不能重叠,本示例中业务VPC-A、业务VPC-B以及中转VPC-Transit的网段均不相同。 VPC有一个默认路由表。 VPC默认路由表中的路由说明如下,详细路由信息请参见表3。 下一跳为对等连接:表示通过Peer-A-T和Peer-B-T,转发业务VPC-A和VPC-B之间的流量,此处目的地址分别配置为VPC-A和VPC-B的网段。 下一跳为企业路由器:表示通过ER,将业务VPC-A和VPC-B的流量转发至DC的虚拟网关,再经过虚拟网关送达线下IDC,此处目的地址配置为线下IDC网段。 DC 1个物理连接:需要运营商施工搭建连通华为云和线下IDC的物理专线。 1个虚拟网关:将虚拟网关接入ER中,即表示将“虚拟网关(VGW)”连接添加到ER。 1个虚拟接口:连接虚拟网关和物理连接。 ER 在企业路由器中添加以下连接,并配置路由信息: VPC: 将1个“虚拟私有云(VPC)”连接关联至ER默认路由表,不开启“配置连接侧路由”,手动在VPC路由表中添加路由。 在默认路由表中添加“虚拟私有云(VPC)”连接的路由,此处不使用传播自动学习路由,需要手动在ER路由表添加静态路由,路由信息如表4所示。 DC: 将1个“虚拟网关(VGW)”连接关联至ER默认路由表。 在默认路由表中创建“虚拟网关(VGW)”连接的传播,路由自动学习DC侧的所有路由信息,路由信息如表4所示。 ECS 每个业务VPC内各有1个ECS,本示例用该ECS来验证云上业务VPC之间、以及业务VPC和线下IDC的网络通信情况。 如果您有多台ECS,并且这些ECS位于不同的安全组,需要在安全组中添加规则放通网络。 表3 VPC路由表 VPC名称 目的地址 下一跳 路由类型 VPC-A 172.17.0.0/16 对等连接:Peer-A-T 静态路由:自定义 10.10.0.0/16 对等连接:Peer-A-T 静态路由:自定义 VPC-B 172.16.0.0/16 对等连接:Peer-B-T 静态路由:自定义 10.10.0.0/16 对等连接:Peer-B-T 静态路由:自定义 VPC-Transit 172.17.0.0/16 对等连接:Peer-B-T 静态路由:自定义 172.16.0.0/16 对等连接:Peer-A-T 静态路由:自定义 10.10.0.0/16 企业路由器:ER 静态路由:自定义 在ER中添加VPC连接时,不开启“配置连接侧路由”选项,需要手动在VPC-Transit路由表中配置路由。 表4 ER路由表 目的地址 下一跳 路由类型 VPC-A网段:172.16.0.0/16 VPC-T连接:er-attach-VPCtransit 静态路由 VPC-B网段:172.17.0.0/16 VPC-T连接:er-attach-VPCtransit 静态路由 本端网关和远端网关:10.0.0.0/30 VGW连接:vgw-demo 传播路由 IDC侧网段:10.10.0.0/16 VGW连接:vgw-demo 传播路由
  • 操作步骤 将4个VPC分别接入企业路由器中。 添加“虚拟私有云(VPC)”连接,具体方法请参见在企业路由器中添加VPC连接。 在企业路由器中创建2个路由表。 创建路由表,具体方法请参见创建路由表。 在两个路由表中分别创建“虚拟私有云(VPC)”连接的关联和传播。 创建关联,具体方法请参见创建关联将连接关联至路由表中。 创建传播,具体方法请参见创建传播。 路由表1资源规划详情,请参见表7。 路由表2资源规划详情,请参见表8。 在VPC路由表中配置ER的路由信息。 配置路由信息,具体方法请参见在VPC路由表中配置路由。
  • 通过中心网络构建跨区域VPC互通组网流程 本章节介绍通过企业路由器和云连接中心网络构建跨区域VPC互通组网,流程如表1所示。 表1 构建跨区域VPC组网流程说明 序号 步骤 说明 1 创建云服务资源 创建3个企业路由器,每个区域内需要1个企业路由器。 创建业务VPC和其子网,本示例中在每个区域下各创建1个VPC和1子网。 在每个业务VPC子网内创建ECS,本示例中共创建3个ECS。 创建1个云连接中心网络,创建中心网络时需要配置策略,此时需要将不同区域的企业路由器添加到策略中。 创建全域互联带宽,本示例中创建3个全域互联带宽连通不同区域网络。 2 在企业路由器中配置VPC连接 针对每个区域的企业路由器,分别在企业路由器中添加“虚拟私有云(VPC)”连接,即将VPC接入企业路由器中。 3 在中心网络内为跨区域网络链路配置带宽 为中心网络内的跨区域连接配置带宽,根据业务的实际需要配置,确保带宽满足业务需求。 4 验证跨区域网络的通信情况 分别登录不同区域的ECS,执行ping命令,验证网络互通情况。 父主题: 通过企业路由器和云连接中心网络实现跨区域VPC互通
共100000条