云服务器内容精选

  • 请求参数 表3 body参数列表 参数名称 必选 类型 参数值域 默认值 参数说明 参数示例 siteTemplateHttpDto 是 REFERENCE 详细请参见表4。 站点模板HTTP配置信息 - 表4 SiteTemplateHttpDto对象的参数列表 参数名称 必选 类型 参数值域 默认值 参数说明 参数示例 enableHttp 是 boolean true false true HTTP使能开关。默认值为true。 true
  • 请求示例 HTTP的示例 PUT /controller/campus/v3/networkconfig/site-templates/fbde1c5d-5b94-49e3-a912-48641015e45c/enablehttp?isForceOverride=true HTTP/1.1 Host: 192.168.1.125:18002 Content-Type: application/json Accept: application/json Accept-Language: en-US X-AC CES S-TOKEN: x-yyyyyy { "enableHttp" : true }
  • 响应示例 返回状态码为200:站点模板HTTP配置结果。 HTTP/1.1 200 OK Date: Sun,16 Feb 2025 10:00:00 GMT Server: example-server Content-Type: application/json;charset=UTF-8 Content-Length: 250 Connection: keep-alive { "errcode" : "0", "errmsg" : "", "data" : { "enableHttp" : true } } 返回状态码为400:校验异常。 HTTP/1.1 400 Bad Request Date: Sun,16 Feb 2025 10:00:00 GMT Server: example-server Content-Type: application/json;charset=UTF-8 Content-Length: 250 Connection: keep-alive 返回状态码为500:内部服务错误。 HTTP/1.1 500 Internal Server Error Date: Sun,16 Feb 2025 10:00:00 GMT Server: example-server Content-Type: application/json;charset=UTF-8 Content-Length: 250 Connection: keep-alive
  • URI /controller/campus/v3/networkconfig/site-templates/{siteTemplateId}/enablehttp 表1 path参数列表 参数名称 必选 类型 参数值域 默认值 参数说明 参数示例 siteTemplateId 是 string 36个字符。 - 站点模板标识,UUID格式。 "fbde1c5d-5b94-49e3-a912-48641015e45c" 表2 query参数列表 参数名称 必选 类型 参数值域 默认值 参数说明 参数示例 isForceOverride 否 boolean true false - 是否强制覆盖 true
  • 请求示例 HTTP的示例 GET /controller/campus/v3/networkconfig/site-templates/fbde1c5d-5b94-49e3-a912-48641015e45c/enablehttp HTTP/1.1 Host: 192.168.1.125:18002 Content-Type: application/json Accept: application/json Accept-Language: en-US X-ACCESS-TOKEN: x-yyyyyy
  • URI /controller/campus/v3/networkconfig/site-templates/{siteTemplateId}/enablehttp 表1 path参数列表 参数名称 必选 类型 参数值域 默认值 参数说明 参数示例 siteTemplateId 是 string 36个字符。 - 站点模板标识,UUID格式。 "fbde1c5d-5b94-49e3-a912-48641015e45c"
  • 响应参数 返回状态码为200:站点模板HTTP配置配置结果。 表2 SiteTemplateHttpResponseDto对象的参数列表 参数名称 类型 参数值域 默认值 参数说明 参数示例 errcode string 0~128个字符。 - 错误码。 "0" errmsg string 0~256个字符。 - 错误信息。 "" data REFERENCE 详细请参见表3。 站点模板HTTP配置信息。 - 表3 SiteTemplateHttpDto对象的参数列表 参数名称 类型 参数值域 默认值 参数说明 参数示例 enableHttp boolean true false true HTTP使能开关。默认值为true。 true 返回状态码为400:校验异常。 详细信息请参见实际响应消息体。 返回状态码为500:内部服务错误。 详细信息请参见实际响应消息体。
  • 响应示例 返回状态码为200:站点模板HTTP配置配置结果。 HTTP/1.1 200 OK Date: Sun,16 Feb 2025 10:00:00 GMT Server: example-server Content-Type: application/json;charset=UTF-8 Content-Length: 250 Connection: keep-alive { "errcode" : "0", "errmsg" : "", "data" : { "enableHttp" : true } } 返回状态码为400:校验异常。 HTTP/1.1 400 Bad Request Date: Sun,16 Feb 2025 10:00:00 GMT Server: example-server Content-Type: application/json;charset=UTF-8 Content-Length: 250 Connection: keep-alive 返回状态码为500:内部服务错误。 HTTP/1.1 500 Internal Server Error Date: Sun,16 Feb 2025 10:00:00 GMT Server: example-server Content-Type: application/json;charset=UTF-8 Content-Length: 250 Connection: keep-alive
  • 创建Next.js项目 本案例以Next.js框架的默认demo为例演示部署过程,需要在Linux环境中创建一个全新的Next.js项目,本案例采用本地运行Docker node:18.15.0镜像的方式,同样适用于其他Linux系统。关于Docker镜像和Linux操作系统的使用并非本案例主要内容,不做过多赘述。 启动Docker容器并进入code目录(原生Linux系统忽略)。 docker run -it --network=host -v D:/code/nextjs/:/code node:18.15.0 bashcd code 在控制台执行以下命令来创建一个Next.js框架demo工程: npx create-next-app@13.5.6 回车后等待出现该提示词“√ What is your project named? ...”后输入项目名称,如:nextjs-app。 后续提示可以保持默认,或根据您的实际业务情况修改即可。 等待项目创建完成。 图1 项目创建成功 进入项目目录。 cd nextjs-app 官方默认Demo代码需要修改项目中layout.tsx(该文件在nextjs-app下的app目录)文件的代码,不然会导致无法下载字体文件的错误,参见图2并删除红框标出的内容。 图2 删除相关代码 构建项目。 npm run build 图3 构建项目 构建完成后目录内容如下: 图4 项目构建成功后目录内容 创建启动脚本。 创建名为“bootstrap”的启动脚本,并修改bootstrap文件内容如下: export PATH=/opt/function/runtime/nodejs18.15/rtsp/nodejs/bin:$PATH && export npm_config_cache=/tmp/cache && cd /opt/function/code/ && PORT=8000 npm start 打包函数代码。 将目录中的“.next”、“public”、“package.json”和“bootstrap”打包成zip压缩包,本案例命名为“nextjs-func-code.zip”作为函数代码备用。 父主题: 使用Next.js项目构建HTTP函数
  • HTTP(S)取消订阅消息的格式 HTTP(S)订阅终端取消订阅确认后,终端将收到 SMN 推送的取消订阅确认消息,下面将描述HTTP Content信息,它是JSON串,具体字段说明如表4所示。 表4 HTTP(S)取消订阅消息的格式参数说明 参数 说明 type 消息类型,UnsubscribeConfirmation。 signature 签名信息。 签名字段包括message,message_id,subscribe_url、timestamp,topic_urn和type,具体签名信息校验,请参见校验消息签名。 topic_urn 主题的唯一标识,表示消息归属的主题。 message_id 消息唯一标识。 signature_version 签名的版本信息,目前是V1。 message 取消订阅确认消息的描述。 subscribe_url 再次订阅确认需要访问的URL。 signing_cert_url 用于消息签名的证书URL。 timestamp 消息第一次发送的时间戳。 HTTP(S)取消订阅消息样例如下: { "signature": "ViE96uGbBkl+S8eWqgebi5KdmRht2U8+Rs88yuyMHq1k4h3jUkcDZ6HCqTqdpJ8nrLcdqETyyEiOQyTszJdU05z+LhfE8jerCCdSbL4zeInVkydHh0kcCRWmORye0/EuQ/gLC1UIXwvUsqbUCPnBRhNFXOeXMOPPCzK+d04xjy4QHd1H/bHxgsY3AlTe0gCFT068Zru7OK6w9aQaY44mXnN3OWGmBmoHyFab5TRXLSQNz/9u/Vj646cQMMaI0PPQ30QzGYD0MtzgDZi12m8jMTHAnMkTEcbLaEgaqmaoEnATSpEcspFKNXv2skwk7rsVakMOISpMH3+qC6RzhE******", "topic_urn": "urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******", "message_id": "d86c201092574e71a3ca85826652c58b", "signature_version": "v1", "type": "UnsubscribeConfirmation", "message": "You are unsubscribed from topic: urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******. To subscribe to this topic again, please visit the subscribe_url included in this message. The subscribe_url is valid only within 48 hours.", "subscribe_url": "https://console.******.com/smn/subscription/confirm?token=0a419ac94f80f2c62f14c01e34ae5dfcf6b0b92ef46241218eaae5b4cb90d5d423cf104593284665a1f98691b1576976785114fb4408450e8de153b9f1******&topic_urn=urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******®ion=region01®ion_id=region01", "signing_cert_url": "https://smn.region01.******.com/smn/SMN_region01_3190c26a56fb435f9882e3435b******.pem", "timestamp": "2024-07-10T11:45:00Z"}
  • HTTP(S)推送消息的格式 HTTP(S)订阅终端订阅确认后,终端将收到SMN推送的消息,下面将描述HTTP Content信息,它是JSON串,具体字段说明如表3所示。 表3 HTTP(S)推送消息的格式参数说明 参数 说明 type 消息类型,Notification。 signature 签名信息。 签名字段包括message,message_id,subject, timestamp,topic_urn和type,具体签名信息校验,如果subject不存在,则不参与校验,请参见校验消息签名。 subject 消息标题。 topic_urn 主题的唯一标识,表示消息归属的主题。 message_id 消息唯一标识。 signature_version 签名的版本信息,目前是V1。 message 订阅推送消息的描述。 unsubscribe_url 通过访问该链接可以取消终端订阅。 signing_cert_url 用于消息签名的证书URL。 timestamp 消息第一次发送的时间戳。 HTTP(S)推送消息样例如下: { "signature": "WmSQ2/0kp2v2u2T33lMqKYrrLxnJoW2NHqIy5QowDuHH3y+HvhCNlCgHDUiAGpb3suCXJm16hWF+EJAYR+tPaTY1q0N3p0p+oBbhlD30fOTxRNsEWRAg73k4qArmQajhdDZOtd57xelQiNhzl2r6iCs0en4kR2iY78zZM/9caZQGBTlNcjkd2lyXYP6aSc7MOgxTsYrRus0A6yipD3zsUA7TvTdfsauAe2hZLR5W0l+um+S3ytT7sA1CMlIJPBXHP5WlqS4iMAeivmufZv7T+G43DbwWfw/seKnK6uFKWd214oqsY2/oLY3C4dcyLdvsy0/7/W8zvxXbgHeSL4******", "subject": "SMN", "topic_urn": "urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******", "message_id": "d84bd6629ef04513ad2e37bffd6e17cb", "signature_version": "v1", "type": "Notification", "message": "{\"enterpriseProjectId\": \"0\", \"eventTime\": \"2019-08-12 22:40:55.040632\", \"chargingMode\": \"postPaid\", \"cloudserviceType\": \"xxx.service.type.bandwidth\", \"eventType\": 1, \"regionId\": \"region01\", \"tenantId\": \"057eefe55400d2742f8cc00178******\", \"resourceType\": \"xxx.resource.type.bandwidth\", \"resourceSpecCode\": \"19_bgp\", \"resourceSize\": 10, \"resourceId\": \"e091f1b1-08ef-4e2b-a27e-f85e4c******\", \"resouceSizeMeasureId\": 15, \"resourceName\": \"elbauto_2019_08_13_06_40_46\"}", "unsubscribe_url": "https://console.******.com/smn/subscription/unsubscribe?region=region01®ion_id=region01&subscription_urn=urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******:23cf104593284665a1f98691b1******", "signing_cert_url": "https://smn.region01.******.com/smn/SMN_region01_3190c26a56fb435f9882e3435b******.pem", "timestamp": "2024-07-10T09:45:00Z"}
  • HTTP(S)订阅确认消息的格式 添加HTTP(S)订阅终端以后,SMN会向订阅终端推送一条订阅确认的消息,下面将描述消息的HTTP Content,它是JSON格式的字符串,其中包括subscribe_url值,订阅确认需要GET请求subscribe_url地址进行确认,具体JSON字段说明如表2所示。 表2 HTTP(S)订阅确认消息的格式参数说明 参数 说明 type 消息类型,SubscriptionConfirmation。 signature 签名信息。 签名字段包括message,message_id,subscribe_url,timestamp,topic_urn和type,具体签名信息校验,请参见校验消息签名。 topic_urn 主题的唯一标识,表示消息归属的主题。 message_id 消息唯一标识。 signature_version 签名的版本信息,目前是V1。 message 订阅确认消息的描述。 subscribe_url 订阅确认需要访问的URL。 signing_cert_url 用于消息签名的证书URL,不需要鉴权,可直接访问。 timestamp 消息第一次发送的时间戳。 HTTP(S)订阅确认消息样例如下: { "subscribe_url": "https://console.******.com/smn/subscription/confirm?token=0a419ac94f80f2c62f14c01e34ae5dfcf6b0b92ef46241218eaae5b4cb90d5d423cf104593284665a1f98691b1576976785114fb4408450e8de153b9f1******&topic_urn=urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******®ion=region01®ion_id=region01", "signature": "W/DQSiqpRkY6En0jNaFtCYOpmUjMhzoJIdMPLhnRv37iPzNhH+SxlievFoUIyS29z7Ig4hL/ECWNfGrRhTqoasiAeOaXOjoRNoQ73YfyqWm7x7OdX+2c202zxaOS5GcsUHohxAS+wCYd6W6aVhx6eQpWzpzLwrGgE+iPmsd5I00HXIBeZEeBx/VuoqkPyBDnSvGNNDTJ2gw+fL7XuKqf/DUUjjI8dkPsp3gAcETe/XMgf3UTMFDvLLrq2fAZVhr/jMR/9m81PwuDs1k9i3iBxT67afzmQ1AhY/a/ayQX7Fmwf/FBpehG1o8e98lXAZFS2nzhvTpttawUFG8Z82******", "topic_urn": "urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******", "message_id": "54bb04eddfc842e9b44ca36393f77cd3", "signature_version": "v1", "type": "SubscriptionConfirmation", "message": "You are invited to subscribe to topic: urn:smn:regionid:0a419ac94f80f2c62f14c01e34******:test_******. To confirm this subscription, please visit the subscribe_url included in this message. The subscribe_url is valid only within 48 hours.", "signing_cert_url": "https://smn.region01.******.com/smn/SMN_region01_3190c26a56fb435f9882e3435b******.pem", "timestamp": "2024-07-10T09:43:44Z"}
  • 操作场景 接收SMN服务发送的HTTP(S)消息时,终端证书的CN名称请参考业界规范,部分特殊字符可能导致https消息发送失败。 在互联网上传递未加密的http协议消息内容存在信息泄漏风险,推荐用户终端添加订阅时对接通道优先使用https类型。 描述SMN服务向HTTP(S)终端发送消息的格式,您可以通过消息头部信息中的消息类型来区分消息格式。消息格式包括:HTTP(S)订阅确认消息的格式、HTTP(S)推送消息的格式和HTTP(S)取消订阅消息的格式三种消息格式,HTTP/HTTPS协议均为POST方式。 当SMN服务向HTTP(S)终端发送消息时,头部包括请求X-SMN-MESSAGE-TYPE,X-SMN-MESSAGE-ID,X-SMN-TOPIC-URN,如表1所示。 表1 消息HTTP(S)头部参数说明 参数 说明 X-SMN-MESSAGE-TYPE 消息类型,消息类型分别有: SubscriptionConfirmation Notification UnsubscribeConfirmation X-SMN-MESSAGE-ID 消息唯一标识。 X-SMN-TOPIC-URN 主题的唯一标识,表示消息归属的主题。 关于HTTP(S)头部字段的说明: RFC 7230 章节3.2中规定,HTTP(S)头部的字段名称不区分大小写。 RFC 7540 章节8.1.2中规定,对于支持HTTP/2的服务端,头部字段信息需要统一改为全小写。 对于用户自定义的HTTP(S)头部字段,SMN也将采用上述的处理策略。 用户如果从HTTP(S)头部中获取相关字段,建议采用不区分大小写的方式。
  • 前提条件 已 注册华为账号 并开通华为云,完成实名认证。 已创建URL列表文件并上传至OBS,确保URL列表文件中的URL可通过HEAD请求和GET请求正常访问。 如果URL列表文件中的URL无法通过HEAD请求和GET请求正常访问,则该场景不适合HTTP/HTTPS方式迁移,建议通过桶迁移方式迁移或者咨询OBS其他方案。 已获取目的端账号的AK/SK并授予相关权限。 目的端桶需要的权限包括:列举桶,获取桶位置,列举对象,获取对象元数据,获取对象内容,上传对象,列举已上传段,取回归档存储对象。获取方式参见目的端桶权限获取。 已在OBS服务中创建桶。 您过去24小时内已创建的迁移任务未满1000000个。 您名下处于“等待中”状态的迁移任务未满1000000个。
  • 创建HTTP请求连接 登录CodeArts Link控制台。 在左侧导航栏选择“连接器”,在连接器页面单击“新建连接”。 选择“HTTP请求”连接器。 在弹窗中配置连接器信息,完成后单击“确定”。 参数 说明 描述 填写连接器的描述信息,用于识别不同的连接器。 基本地址 要调用API的请求地址。 安全认证 要调用API所使用的认证方式。 APP认证:使用API所授权集成应用的Key和Secret进行API请求的安全认证。 无认证:表示API请求不需要认证。 APP Key(APP认证) 仅当“安全认证”选择“APP认证”时需要配置。 API所授权集成应用的Key。 APP Secret(APP认证) 仅当“安全认证”选择“APP认证”时需要配置。 API所授权集成应用的Secret。