华为云用户手册

  • 语法格式 1 2 3 4 5 6 7 8 9 10 create table dwsSource ( attr_name attr_type (',' attr_name attr_type)* (',' watermark for rowtime_column_name as watermark-strategy_expression) ) with ( 'connector.type' = 'redis', 'connector.host' = '', 'connector.port' = '' );
  • 参数说明 表1 参数说明 参数 是否必选 说明 connector.type 是 connector类型,对于redis,需配置为'redis'。 connector.host 是 redis连接地址。 connector.port 是 redis连接端口。 connector.password 否 redis认证密码。 connector.deploy-mode 否 redis部署模式,支持standalone/cluster,默认standalone。 connector.table-name 否 table存储模式下必配,redis中存储表名。在table存储模式下,数据将以hash类型存储到redis,其中key为:${table-name}:${ext-key},field名为列名。 说明: table存储模式:将connector.table-name、connector.key-column作为redis的key。redis的hash类型,每个key对应一个hashmap,hashmap的hashkey为源表的字段名,hashvalue为源表的字段值。 connector.use-internal-schema 否 table存储模式下可配置,是否使用redis中已存在schema,默认为false。 connector.key-column 否 table存储模式下可配置,将该字段值作为redis中的ext-key,未配置时,ext-key为生成的uuid。
  • 常见问题 Q:作业运行失败,运行日志中有如下报错信息,应该怎么解决? java.io.IOException: unable to open JDBC writer ... Caused by: org.postgresql.util.PSQLException: The connection attempt failed. ... Caused by: java.net.SocketTimeoutException: connect timed out A:应考虑是跨源没有绑定,或者跨源没有绑定成功。 参考增强型跨源连接章节,重新配置跨源。参考 DLI 跨源连接DWS失败进行问题排查。
  • 前提条件 请务必确保您的账户下已在 数据仓库 服务(DWS)里创建了DWS集群。 如何创建DWS集群,请参考《数据仓库服务管理指南》中“创建集群”章节。 请确保已创建DWS数据库表。 该场景作业需要运行在DLI的独享队列上,因此要与DWS集群建立增强型跨源连接,且用户可以根据实际所需设置相应安全组规则。 如何建立增强型跨源连接,请参考《 数据湖探索 用户指南》中增强型跨源连接章节。 如何设置安全组规则,请参见《虚拟私有云用户指南》中“安全组”章节。 Flink跨源开发场景中直接配置跨源认证信息存在密码泄露的风险,优先推荐您使用DLI提供的跨源认证。 跨源认证简介及操作方法请参考跨源认证简介。
  • 参数说明 表1 参数说明 参数 是否必选 默认值 数据类型 说明 connector 是 无 String connector类型,需配置为'gaussdb'。 url 是 无 String jdbc连接地址。“url”参数中的ip地址请使用DWS的内网地址。 使用gsjdbc4驱动连接时,格式为:jdbc:postgresql://${ip}:${port}/${dbName} 。 使用gsjdbc200驱动连接时,格式为:jdbc:gaussdb://${ip}:${port}/${dbName}。 table-name 是 无 String 操作的DWS表名。如果该DWS表在某schema下,则具体可以参考如果该DWS表在某schema下的说明。 driver 否 org.postgresql.Driver String jdbc连接驱动,默认为: org.postgresql.Driver。 使用gsjdbc4驱动连接时,加载的数据库驱动类为:org.postgresql.Driver。 使用gsjdbc200驱动连接时,加载的数据库驱动类为:com.huawei.gauss200.jdbc.Driver。 username 否 无 String DWS数据库认证用户名,需要和'password'参数一起配置。 password 否 无 String DWS数据库认证密码,需要和'username'参数一起配置。 scan.partition.column 否 无 String 用于对输入进行分区的列名。 注意:该参数与scan.partition.lower-bound、scan.partition.upper-bound、 scan.partition.num参数必须同时配置或者同时都不配置。 scan.partition.lower-bound 否 无 Integer 第一个分区的最小值。 与scan.partition.column、scan.partition.upper-bound、 scan.partition.num必须同时配置或者同时都不配置。 scan.partition.upper-bound 否 无 Integer 最后一个分区的最大值。 与scan.partition.column、scan.partition.lower-bound、 scan.partition.num必须同时配置或者同时都不配置。 scan.partition.num 否 无 Integer 分区的个数。 与scan.partition.column、scan.partition.upper-bound、 scan.partition.upper-bound必须同时配置或者同时都不配置。 scan.fetch-size 否 0 Integer 每次从数据库拉取数据的行数。默认值为0,表示不限制。 pwd_auth_name 否 无 String DLI侧创建的Password类型的跨源认证名称。 使用跨源认证则无需在作业中配置账号和密码。
  • 功能描述 DLI将Flink作业从数据仓库服务(DWS)中读取数据。DWS数据库内核兼容PostgreSQL,PostgreSQL数据库可存储更加复杂类型的数据,支持空间信息服务、多版本并发控制(MVCC)、高并发,适用场景包括位置应用、金融保险、互联网电商等。 数据仓库服务(Data Warehouse Service,简称DWS)是一种基于基础架构和平台的在线数据处理数据库,为用户提供海量数据挖掘和分析服务。DWS的更多信息,请参见《数据仓库服务管理指南》。
  • 语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 create table dwsSource ( attr_name attr_type (',' attr_name attr_type)* (','PRIMARY KEY (attr_name, ...) NOT ENFORCED) (',' watermark for rowtime_column_name as watermark-strategy_expression) ) with ( 'connector' = 'gaussdb', 'url' = '', 'table-name' = '', 'username' = '', 'password' = '' );
  • 购买GeminiDB Redis实例时,如何选择合适的节点规格和节点数量? 购买Redis实例通常需要关注2个主要指标:QPS和数据量大小。购买GeminiDB Redis实例时,也是依据这两个指标进行选择,可以采用“快速选择”和“自定义”购买实例: 使用“快速选择”购买实例,例如原先采用的是16GB集群,可以对标选择GeminiDB Redis16GB集群。若对应的规格QPS不满足业务需求,则需要选择更高规格。 使用“自定义”选择时,计算和存储需要单独选择,节点规格和节点数量决定实例的QPS,实例总容量决定数据存储容量上限。选择节点规格、节点数量、实例总容量后,可以从“实例规格预览”查看所选择实例的QPS、连接数等信息。 父主题: 产品咨询
  • 使用场景 CloudPond运行有必选云服务,同时您可以根据需求将一些可选的云服务和应用部署在CloudPond上,实现在您本地使用各类华为云服务,以及边云协同的场景,以满足数据本地化和低时延访问的需求。 支持必选服务E CS 、EVS、VPC、EIP部署至边缘小站,为您提供在本地使用华为云基础云服务资源的便利。 支持丰富的可选云服务(如 MRS 、DWS、IEF、ROMA Connect、SFS Turbo等)在边缘小站本地运行,与云上服务形成协同关系,共同支撑业务需求。 在CloudPond上部署云市场相关应用,将华为云生态无缝拓展到边缘(即将上线)。 除了上述提到的必选服务和可选服务,CloudPond还支持各类管理、监控、安全和迁移服务。详细介绍请参见与CloudPond有业务交互的云服务。 CloudPond控制台提供了跳转至各个必选服务和可选服务创建资源界面的功能。 在边缘可用区创建业务资源之前,请先了解CloudPond支持的必选服务的约束与限制,可选服务的约束与限制请直接参考各服务的产品文档。
  • 在边缘可用区管理业务资源 CloudPond提供和华为云通用可用区使用云服务的一致体验,用户可以通过各服务控制台访问CloudPond上运行的各类云服务。 请您参考表1,详细了解CloudPond支持的云服务的使用方法。 表1 使用云服务参考文档 云服务名称 主要参考文档 弹性 云服务器ECS 弹性云服务器ECS用户指南 云硬盘EVS 云硬盘EVS用户指南 虚拟私有云VPC 虚拟私有云VPC用户指南 弹性公网IP EIP 弹性公网IP EIP用户指南 云桌面 Workspace 云桌面Workspace 用户指南 云容器引擎 CCE 云容器引擎CCE用户指南 弹性负载均衡 ELB 弹性负载均衡ELB用户指南 应用与 数据集成平台 ROMA Connect 应用与数据集成平台ROMA Connect用户指南 Web应用防火墙 WAF Web应用防火墙WAF用户指南 MapReduce服务 MRS MapReduce服务MRS用户指南 主机迁移服务 SMS 主机迁移 服务用户指南 弹性文件服务SFS 弹性文件服务用户指南 企业主机安全 HSS 企业主机安全用户指南 数据库安全服务DBSS 数据库安全服务用户指南 云堡垒机CBH 云堡垒机 CBH用户指南 数据仓库服务DWS 数据仓库服务DWS管理指南 数据治理中心 DataArts Studio 数据治理 中心 DataArts Studio 用户指南 云数据库RDS 云数据库RDS用户指南 父主题: 业务资源
  • 使用场景 CloudPond运行有必选云服务,同时您可以根据需求将一些可选的云服务和应用部署在CloudPond上,实现在您本地使用各类华为云服务,以及边云协同的场景,以满足数据本地化和低时延访问的需求。 支持必选服务ECS、EVS、VPC、EIP部署至边缘小站,为您提供在本地使用华为云基础云服务资源的便利。 支持丰富的可选云服务(如MRS、DWS、IEF、ROMA Connect、SFS Turbo等)在边缘小站本地运行,与云上服务形成协同关系,共同支撑业务需求。 在CloudPond上部署云市场相关应用,将华为云生态无缝拓展到边缘(即将上线)。 除了上述提到的必选服务和可选服务,CloudPond还支持各类管理、监控、安全和迁移服务。详细介绍请参见与CloudPond有业务交互的云服务。 CloudPond控制台提供了跳转至各个必选服务和可选服务创建资源界面的功能。 在边缘可用区创建业务资源之前,请先了解CloudPond支持的必选服务的约束与限制,可选服务的约束与限制请直接参考各服务的产品文档。
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):私有访问密钥。与访问密钥ID结合使用,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Token可通过调用获取用户Token接口获取。 调用本服务API需要项目级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", // IAM 用户名 "password": "********", //IAM用户密码 "domain": { "name": "domainname" //IAM用户所属账号名 } } } }, "scope": { "project": { "name": "xxxxxxxx" //项目名称 } } } } 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 1 2 3 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333。
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,如“cn-north-1”,您可以从地区和终端节点获取。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获取用户Token。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中的“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求,或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 1 2 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器 域名 或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为方便查看,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 模板约束与限制 使用 RFS 服务进行模板部署,模板文件内容具有如下约束与限制: 模块的数量限制为25,模块嵌套深度限制为3。 不能使用Provisioners功能、Backend Configuration功能和Cloud 功能。 可以使用Module Sources功能,但仅支持Local Modules。 可以使用HuaweiCloud Provider,但Provider内部分资源禁止使用。具体清单列举如下: huaweicloud_vod_watermark_template huaweicloud_compute_keypair huaweicloud_identity_access_key huaweicloud_images_image_v2 huaweicloud_kps_keypair huaweicloud_obs_bucket_object huaweicloud_iotda_batchtask huaweicloud_cce_chart huaweicloud_iotda_batchtask_file huaweicloud_cse_microservice 部分函数禁止使用。具体清单列举如下: abspath basename dirname file filebase64 filebase64sha256 filebase64sha512 fileexists fileset filemd5 filesha1 filesha256 filesha512 pathexpand templatefile 不建议使用nonsensitive方法输出敏感信息。随意使用此方法可能会导致本该被隐藏的敏感信息被服务明文打印出来从而导致敏感信息泄露 如果必须进行输出,建议优先考虑编码后再输出(如nonsensitive(sha256(var.sensitive_value))) 父主题: 资源编排
  • 请求消息示例 POST /v2/usg/acs/auth/appauth Connection: keep-alive Content-Type: application/json X-Request-ID: 5162fa32dc7e47afafeee39a72a2eec3 Accept-Language: zh-CN Host: api.meeting.huaweicloud.com X-Token-Type: LongTicket Authorization: HMAC-SHA256 signature=3eca3f0f1e90ed55de38388066d02f1b7a86571a8ce30823af1df7c4edd7e086,access=ZmRiOGU0Njk5NTg2NDU4YmJkMTBjODM0ODcyZGNjNjI= User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_191) { "appId": "fdb8e4699586458bbd10c834872dcc62", "clientType": 72, "expireTime": 1627722929, "nonce": "EycLQsHwxhzK9OW8UEKWNfH2I3CGR2nINuU1EBpv162d42d92s", "userEmail": "******", "userId": "testuser@mycorp.com", "userName": "testuser", "userPhone": "173****9092" }
  • CURL命令示例 curl -k -i -H 'content-type: application/json' -X POST -H 'Content-Type: application/json,Accept-Language: zh-CN,X-Token-Type: LongTicket,Authorization: HMAC-SHA256 signature=3eca3f0f1e90ed55de38388066d02f1b7a86571a8ce30823af1df7c4edd7e086,access=ZmRiOGU0Njk5NTg2NDU4YmJkMTBjODM0ODcyZGNjNjI=' -d '{"appId": "fdb8e4699586458bbd10c834872dcc62","clientType": 72,"corpId": "807074304","expireTime": 1597824907000,"nonce": "EycLQsHwxhzK9OW8UEKWNfH2I3CGR2nINuU1EBpQ","userEmail": "******","userId": "alice@ent01","userName": "alice","userPhone": "173****9092"}' 'https://api.meeting.huaweicloud.com/v2/usg/acs/auth/appauth'
  • 响应消息示例 HTTP/1.1 200 "X-Envoy-Upstream-Service-Time": "230", "Server": "api-gateway", "X-Request-Id": "085d1f96cd9ddd6f3c50d70a0b2eb239", "X-Content-Type-Options": "nosniff", "Connection": "keep-alive", "X-Download-Options": "noopen", "Pragma": "No-cache", "Date": "Sat, 31 Jul 2021 06:18:07 GMT", "X-Frame-Options": "SAMEORIGIN", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "Cache-Control": "no-cache", "X-Xss-Protection": "1; mode=block", "Content-Security-Policy": "connect-src 'self' *.huaweicloud.com ;style-src 'self' 'unsafe-inline' 'unsafe-eval';object-src 'self'; font-src 'self' data:;", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Content-Length": "1250", "Content-Type": "application/json" { "accessToken":"cnr1316vcp2ceIkbfko3z13Y2J8UdioOw0ER4kTK", "tokenIp":"49.4.112.60", "validPeriod":56326, "expireTime":1627768613, "createTime":1627712287360, "user":{ "realm":"huaweicloud.com", "userId":"53e2759d388e413abf6a56743a2694c5", "ucloginAccount":"Auto-53e2759d388e413abf6a56743a2694c5", "serviceAccount":"sip:+99111283523475338@huaweicloud.com", "numberHA1":"065eb94e5b090f70c77d4d1439f35b8e", "alias1":null, "companyId":"651543334", "spId":"8a8df0a174a1c6680174a26f578b0000", "companyDomain":null, "userType":2, "adminType":2, "name":"testuser@mycorp.com", "nameEn":"", "isBindPhone":null, "freeUser":false, "thirdAccount":"testuser@mycorp.com", "visionAccount":null, "headPictureUrl":null, "password":null, "status":0, "paidAccount":null, "paidPassword":null, "weLinkUser":false, "appId":"fdb8e4699586458bbd10c834872dcc62", "tr069Account":null, "corpType":5, "cloudUserId":"", "grayUser":true }, "clientType":72, "forceLoginInd":null, "firstLogin":false, "pwdExpired":false, "daysPwdAvailable":-19678, "proxyToken":null, "tokenType":0, "refreshToken":"cnr13168neNyRDfomYEIci7zVjBBybZQG90fYdX2", "refreshValidPeriod":2592000, "refreshExpireTime":1630304287, "refreshCreateTime":1627712287360 }
  • 请求参数 表2 参数说明 参数 是否必须 类型 位置 描述 Authorization 是 String Header 携带应用鉴权信息。 规则:HMAC-SHA256 signature=HexEncode(HMAC256((appId + ":" + userId + ":" + expireTime + ":" + nonce), appKey)),access=base64(appId) 样例:HMAC-SHA256 signature=07f31aa9eafb06652c6899248b145c1a3264242e2ccf4c81b1b6eb99bb5c,access=ZmRiOGU0Njk5NTg2NDU4YmJkMTBjODM0ODcyZGNjNjI= 说明: 如携带了userId信息,则Body中,也需填写对应的userId信息。 (必填)鉴权头域携带access内容为对应颁发应用id进行base64编码。 X-Token-Type 是 String Header Token类型设置为:LongTicket Content-Type 是 String Header Body的媒体格式。 样例:application/json; charset=UTF-8 X-Request-ID 否 String Header 请求requestId,用来标识一路请求,用于问题跟踪定位,建议使用UUID,若不携带,则后台自动生成。 Accept-Language 否 String Header 语言参数,默认为中文zh-CN,英文为en-US。 appId 是 String Body App ID。如何获取App ID请参考“App ID的申请”。 clientType 是 Integer Body 登录账号类型。 72:API调用类型 corpId 否 String Body 企业ID。 说明: 当SP应用场景携带,如果corpId和userId字段未携带或值为空字符串时,当作SP默认管理员登录。 仅在SP模式下需要填写,单企业模式不要填写,否则会鉴权失败。 expireTime 是 Long Body 应用鉴权信息过期时间戳,单位秒。 说明: 当收到App ID鉴权请求时服务端的Unix时间戳大于expireTime时,本次鉴权失败。 样例:如果要求App ID鉴权信息10分钟后过期,expireTime = 当前Unix时间戳 + 60*10。 如果要求应用鉴权信息始终不过期,expireTime = 0。 nonce 是 String Body 随机字符串,用于计算应用鉴权信息。 minLength:32 maxLength:64 userEmail 否 String Body email地址。 userId 否 String Body 第三方用户ID。 说明: 当userId字段未携带或值为空字符串时,当作企业默认管理员登录。 userName 否 String Body 用户名称。 userPhone 否 String Body 手机号,例如中国大陆手机+86xxxxxxx deptCode 否 String Body 部门编码。通过“查询部门及其一级子部门列表”接口获取。
  • 响应参数 表4 响应参数 参数 类型 描述 accessToken String Access Token字符串。 clientType Integer 登录账号类型。 72:API调用类型 createTime Long Access token的创建时间戳,单位:毫秒。 daysPwdAvailable Integer 密码有效天数。 delayDelete Boolean 是否延时删除状态。 expireTime Long Access Token的失效时间戳,单位:秒。 firstLogin Boolean 是否首次登录。 说明: 首次登录表示尚未修改过密码。首次登录时,系统会提醒用户需要修改密码。 默认值:false。 forceLoginInd Integer 抢占登录标识。 0:非抢占 1:抢占(未启用) proxyToken ProxyTokenDTO object 代理鉴权信息。 pwdExpired Boolean 密码是否过期。 默认值:false。 refreshCreateTime Long Refresh Token的创建时间戳,单位:毫秒。 refreshExpireTime Long Refresh Token的失效时间戳,单位:秒。 refreshToken String Refresh Token字符串。 refreshValidPeriod Long Refresh Token有效时长,单位:秒。 tokenIp String 用户IP。 tokenType Integer Token类型。 0:用户AC CES S TOKEN 1:会控TOKEN 2:一次性TOKEN user UserInfo object 用户鉴权信息。 validPeriod Long Access Token的有效时长,单位:秒。
  • 描述 该接口使用App ID方式进行鉴权,鉴权通过后生成一个Access Token。App ID鉴权的原理介绍,请参考App ID鉴权介绍。 当clientType取值为72时,同一个userId,同时最多能创建64个Token。比如已经创建了64个Token,并且Token都在有效期内,再用同一个userId创建一个Token,前64个Token中最早创建的Token将失效。 当clientType取值为非72时,同一个userId,同时最多能创建1个Token。 Token有效期是12~24小时。
  • 操作步骤 登录应用服务网格ASM控制台。 单击右上角“购买网格”。 参考购买基础版网格中的指导,设置网格名称,选择Istio版本。 在“集群配置”中选择在创建集群中创建的集群,如果有多个集群,可以同时勾选多个。勾选后,系统自动校验集群是否符合添加要求,若校验不通过,会以图标标识,鼠标放上去可以查看校验不通过的原因以及解决方案。具体内容可参考集群校验报错常见场景及解决方案。 同一虚拟私有云的集群只能加入同一个网格。 为了满足高可用的要求,集群需要至少包含两个可用节点,每个节点至少保证有2U4G的可用资源。 如果实例(Pod)需要跨集群通信,集群需要使用ENI网络模型,且集群之间网络互通,可以处于同一VPC内,也可以将多个集群的VPC通过其他方式(对等连接、云连接等)连通。 集群的服务网段、容器网段不能和网格内已选集群的服务网段、容器网段冲突。如果集群和网格内的已选集群处于不同的VPC,集群的子网网段也不能冲突。 同一网格最多只能添加五个集群。 在可观测性配置中勾选“启用应用指标”,已默认选中“ AOM 服务”。其他可观测性配置根据需要配置即可。 展开高级配置,在“命名空间注入配置”中勾选集群的“default”命名空间,选择重启已有服务。 图1 命名空间注入配置 设置完成后单击“提交”。 创建时间预计需要5~10分钟,请耐心等待。当网格状态从“安装中”变为“运行中”,表示网格创建成功。
  • 为服务添加灰度版本 登录应用服务网格ASM控制台,单击“asmtest”网格内的。 创建灰度任务名称为“test”的灰度任务,并配置基本信息及灰度版本信息,灰度发布服务选择创建工作负载及服务中创建的名称为“servicetest”的服务,工作负载会自动关联“deptest”,单击“发布”。 图1 创建灰度任务 如果服务“servicetest”无法选择,需要确认服务是否异常,修复后才能选择。 单击“配置流量策略”,选择“基于流量比例”策略类型,为v2(灰度版本)配置“流量配比”为80%。 图2 配置流量策略 单击“策略下发”。 灰度策略的生效需要几秒的时间,您可以在监测灰度运行状态页面,观察灰度版本的运行状态。
  • 清除资源 到此本Demo已全部操作完成,因节点和应用运行过程中会产生费用,如果无特殊要求,请及时删除应用和节点,避免费用产生。 选择左侧导航中的“体验任务”,单击Bookinfo任务中的“卸载”。 单击“确定”。卸载Bookinfo体验任务,会自动删除productpage、details、reviews、ratings服务及相关资源。 图17 卸载体验任务 卸载体验任务后,已完成灰度发布的服务,其灰度版本对应的负载需要手动在CCE控制台删除。
  • 为服务添加灰度版本 本步骤将为Bookinfo应用的“reviews”服务添加新的灰度版本,并配置相应的灰度策略,将原有生产环境的默认版本的流量引流一部分到新版本中。 下面将以为“reviews”服务添加一个v3新版本,且v3新版本接收Bookinfo应用的30%流量为例进行配置。 部署灰度版本 在左侧导航中选择“灰度发布”,在金丝雀发布下,单击“立即发布”。 配置灰度发布基本信息。 灰度任务名称:用户自定义,此处设置为reviews-v3。 命名空间:选择服务所在命名空间。 灰度发布服务:在下拉框中选择reviews。 工作负载:选择服务所属的工作负载。 配置灰度版本信息。 部署集群:选择服务所属的集群。 版本号:配置为v3。 实例数量:使用默认。 实例配置:镜像版本选择1.17.2,其他参数保持默认。 单击“发布”,待启动进度为100%,表明灰度版本部署成功。 图8 查看启动进度 配置流量策略 为灰度版本设置流量策略,灰度版本会根据配置的流量配比引流老版本中的部分或全部流量。 灰度版本部署成功后,单击“配置流量策略”。 设置流量策略。 策略类型分为“基于流量比例”和“基于请求内容”,通过页签选择确定。 基于流量比例:根据流量比例配置规则,将从原版本中切分指定比例的流量到灰度版本。例如80%的流量走原版本,20%的流量走灰度版本。 基于请求内容:根据请求内容配置规则,只有请求内容中满足特定条件的流量会切分到灰度版本上。例如只有在Windows操作系统上的用户可以访问灰度版本。 以“基于流量比例”为例,且v3版本流量配比为20%。 图9 流量策略 单击“策略下发”。 灰度策略的生效需要几秒的时间,您需要在“监测与处理”页面开通 免费体验 APM,或者购买 APM 套餐包,否则无法观测到原版本和灰度版本的流量监控数据。 在“服务列表”页面,单击productpage服务中的“访问地址”。不断刷新页面,页面在v1和v3版本之间来回切换,并且比例大致接近4:1。 图10 v1版本页面 图11 v3版本页面 您也可以在一台已连接公网的机器上执行如下命令,持续访问productpage服务。 while true;do wget -q -O- http://ip:port/productpage; done 返回控制台的“监测与处理”页面查看v1和v3版本的实时流量监控情况。 图12 流量监控详情 在“流量监控”页面,您可以查看Bookinfo应用各服务之间的实时拓扑。ASM提供的流量监控功能,可监控服务之间的拓扑、会话请求调用链、各环节耗时和RPS、RT等性能状态。 图13 流量监控拓扑 从拓扑图可以看出,reviews-v1和reviews-v3服务的调用次数分别为706和167,比例大致接近4:1,符合设定的流量比例策略。成功实现了灰度发布。
  • Bookinfo应用分析 Bookinfo是一个模仿在线书店的应用,页面上会显示一本书籍的描述,书籍的细节(如页数),以及关于书籍的一些评论。 Bookinfo应用由四个单独的服务构成,几个服务是由不同的语言编写的。这些服务对应用服务网格ASM并无依赖,但是构成了一个有代表性的服务网格的例子,即由多个服务、多个语言构成,且reviews服务具有多个版本。这四个服务的说明如下: productpage:会调用details和reviews两个服务,用来生成页面。 details:包含了书籍的信息。 reviews:包含了书籍相关的评论,同时会调用ratings服务。 ratings:包含了由书籍评价组成的评级信息。 其中,reviews服务有3个版本: v1(1.17.0)版本不会调用ratings服务。 v2(1.17.1)版本会调用ratings服务,并使用1到5个黑色星形图标来显示评分信息。 v3(1.17.2)版本会调用ratings服务,并使用1到5个红色星形图标来显示评分信息。 为了直观的展示灰度版本之间流量切换情况,本教程以reviews服务的1.17.1版本(黑星形)、1.17.2版本(红星形)为例进行说明。 图2 Bookinfo应用的端到端架构 在ASM中运行Bookinfo应用,无需对应用自身做出任何改变,只需简单的在ASM环境中对服务进行配置和运行,即把Envoy Sidecar注入到每个服务之中。最终的部署结果如图3所示。 图3 Envoy Sidecar注入之后的Bookinfo应用 所有的服务都和Envoy Sidecar集成在一起,被集成服务的所有出入流量都被Sidecar所劫持,这样就可以利用ASM为应用提供服务路由、遥测数据收集以及策略实施等功能。
  • 购买网格 企业版和基础版网格均支持一键体验任务。基础版可治理单个集群,且免费提供200实例规格,建议您的业务在正式加入网格前先使用基础版。 登录应用服务网格ASM控制台。 单击右上角“购买网格”。 设置如下参数,其余参数均采用默认值。 网格类型 选择基础版。 网格名称 设置网格的名称。 Istio版本 网格支持的Istio版本。 集群 选择4中创建的集群。 Istio控制面节点 如果需要高可用,建议选择两个或以上不同可用区的节点。 设置完成后,在右侧的配置清单中确认网格配置,单击“提交”。 创建时间预计需要1~3分钟,请耐心等待。当网格状态从“安装中”变为“运行中”,表示网格创建成功。
共100000条