华为云用户手册

  • 非简单请求 对于非简单请求,您需要开启跨域访问,并且创建一个“请求方法”为“OPTIONS”的API。 “请求方法”为“OPTIONS”的API和普通API的区别如下: 所属分组:选择已开启CORS的API所在的分组。 请求方法:选择“OPTIONS”。 请求协议:选择与已开启CORS的API相同的请求协议。 路径:填斜杠/即可,也可选择与已开启CORS的API相同或者匹配的请求Path。 安全认证:可选择“无认证”。无论选择哪种认证方式,API网关都按照无认证处理。 支持跨域CORS:选择开启CORS。 假设后端服务类型为Mock,示例如下: 浏览器发送“请求方法”为“OPTIONS”的API请求: OPTIONS /HTTP/1.1 User-Agent: curl/7.29.0 Host: localhost Accept: */* Origin: http://www.cors.com Access-Control-Request-Method: PUT Access-Control-Request-Headers: X-Sdk-Date Origin:此字段必选,表示请求消息所属源。 Access-Control-Request-Method:此字段必选,表示请求会使用哪些HTTP请求方法。 Access-Control-Request-Headers:此字段可选,表示请求会额外发送的头信息字段。 后端服务返回消息:无 API网关返回消息: HTTP/1.1 200 OK Date: Tue, 15 Jan 2019 02:38:48 GMT Content-Type: application/json Content-Length: 1036 Server: api-gateway X-Request-Id: c9b8926888c356d6a9581c5c10bb4d11 Access-Control-Allow-Origin: * Access-Control-Allow-Headers: X-Stage,X-Sdk-Date,X-Sdk-Nonce,X-Proxy-Signed-Headers,X-Sdk-Content-Sha256,X-Forwarded-For,Authorization,Content-Type,Accept,Accept-Ranges,Cache-Control,Range Access-Control-Expose-Headers: X-Request-Id,X-Apig-Latency,X-Apig-Upstream-Latency,X-Apig-RateLimit-Api,X-Apig-RateLimit-User,X-Apig-RateLimit-App,X-Apig-RateLimit-Ip,X-Apig-RateLimit-Api-Allenv Access-Control-Allow-Methods: GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH Access-Control-Max-Age: 172800 Access-Control-Allow-Origin:此字段必选,“*”表示API网关接受任意域的请求。 Access-Control-Allow-Headers:当请求消息中包含此字段时,此字段必选。表示允许跨域的所有请求头信息字段。 Access-Control-Expose-Headers:表示跨域访问允许查看的返回头信息字段。 Access-Control-Allow-Methods:此字段必选,表示API网关支持的所有HTTP请求方法。 Access-Control-Max-Age:此字段可选,表示本次预检的有效期,单位:秒。在有效期内,无需再次发出预检请求。 浏览器发送一个带Origin字段的请求头: PUT /simple HTTP/1.1 Host: www.test.com Origin: http://www.cors.com Content-Type: application/x-www-form-urlencoded; charset=utf-8 Accept: application/json Date: Tue, 15 Jan 2019 01:25:52 GMT 后端服务返回消息: HTTP/1.1 200 OK Date: Tue, 15 Jan 2019 01:25:52 GMT Content-Type: application/json Content-Length: 16 Server: api-gateway {"status":"200"} API网关返回消息: HTTP/1.1 200 OK Date: Tue, 15 Jan 2019 01:25:52 GMT Content-Type: application/json Content-Length: 16 Server: api-gateway X-Request-Id: 454d689fa69847610b3ca486458fb08b Access-Control-Allow-Origin: * {"status":"200"}
  • 简单请求 对于简单请求,您需要开启简单跨域访问。 场景一:已开启CORS,且后端服务响应消息中未指定跨域头时,API网关接受任意域的请求,并返回“Access-Control-Allow-Origin”跨域头,示例如下: 浏览器发送一个带Origin字段的请求消息: GET /simple HTTP/1.1 Host: www.test.com Origin: http://www.cors.com Content-Type: application/x-www-form-urlencoded; charset=utf-8 Accept: application/json Date: Tue, 15 Jan 2019 01:25:52 GMT Origin:此字段必选,表示请求消息所属源,上例中请求来源于“http://www.cors.com”,API网关/后端服务根据这个值,决定是否同意本次请求。 后端服务返回响应消息: HTTP/1.1 200 OK Date: Tue, 15 Jan 2019 01:25:52 GMT Content-Type: application/json Content-Length: 16 Server: api-gateway {"status":"200"} API网关响应消息: HTTP/1.1 200 OK Date: Tue, 15 Jan 2019 01:25:52 GMT Content-Type: application/json Content-Length: 16 Server: api-gateway X-Request-Id: 454d689fa69847610b3ca486458fb08b Access-Control-Allow-Origin: * {"status":"200"} Access-Control-Allow-Origin:此字段必选,“*”表示API网关接受任意域的请求。 场景二:已开启CORS,且后端服务响应消息中指定跨域头时,后端服务响应的跨域头将覆盖API网关增加的跨域头,示例如下: 浏览器发送一个带Origin字段的请求消息: GET /simple HTTP/1.1 Host: www.test.com Origin: http://www.cors.com Content-Type: application/x-www-form-urlencoded; charset=utf-8 Accept: application/json Date: Tue, 15 Jan 2019 01:25:52 GMT Origin:此字段必选,表示请求消息所属源,上例中请求来源于“http://www.cors.com”,API网关/后端服务根据这个值,决定是否同意本次请求。 后端服务返回响应消息: HTTP/1.1 200 OK Date: Tue, 15 Jan 2019 01:25:52 GMT Content-Type: application/json Content-Length: 16 Server: api-gateway Access-Control-Allow-Origin: http://www.cors.com {"status":"200"} Access-Control-Allow-Origin:表示后端服务接受“http://www.cors.com”的请求。 API网关响应消息: HTTP/1.1 200 OK Date: Tue, 15 Jan 2019 01:25:52 GMT Content-Type: application/json Content-Length: 16 Server: api-gateway X-Request-Id: 454d689fa69847610b3ca486458fb08b Access-Control-Allow-Origin: http://www.cors.com {"status":"200"} 后端服务响应消息中的跨域头覆盖API网关响应消息中的跨域头。
  • 开启跨域访问 API网关默认不开启跨域访问,如果您需要开启,请参考以下说明完成跨域配置。如需自定义跨域的请求头、跨域的请求方法和指定授权访问的域,请使用跨域资源共享策略说明。 简单请求的跨域访问 如果是创建新的API,在“安全配置”时,勾选“开启支持跨域(CORS)”开关。详细的使用指导,可参考简单请求。 非简单请求的跨域访问 非简单请求的跨域访问可通过两种配置方式实现,选择其中一种配置即可。 方式一:配置一个OPTIONS请求,作为预检请求。预检请求API的参数设置,请参考以下说明填写,操作详情请参考非简单请求。 方式二:只需配置一个跨域资源共享策略并绑定API即可,配置详情请参考跨域资源共享策略说明。 在“前端定义”中,参数填写说明如下: 请求方法:选择“OPTIONS” 请求协议:选择与已开启CORS的API相同的请求协议 路径:填斜杠/ 图2 预检请求-定义API请求 在“安全配置”中,安全认证选“无认证”,勾选“开启支持跨域CORS”。 图3 预检请求-使用无认证方式 后端配置选择“Mock”。 图4 预检请求-后端选Mock
  • 什么是跨域访问 浏览器出于安全性考虑,会限制从页面脚本内发起的跨域访问(CORS)请求,此时页面只能访问同源的资源,而CORS允许浏览器向跨域服务器,发送XMLHttpRequest请求,从而实现跨域访问。 图1 跨域访问 浏览器将CORS请求分为两类: 简单请求 简单跨域请求的场景需要满足以下两个条件: 请求方法是HEAD,GET,或者POST。 HTTP的头信息不超出以下范围: Accept Accept-Language Content-Language Last-Event-ID Content-Type:取值范围:application/x-www-form-urlencoded、multipart/form-data、text/plain 对于简单请求,浏览器自动在头信息之中,添加一个Origin字段,Origin字段用于说明本次请求来自哪个源(协议+ 域名 +端口)。服务器根据这个值,决定是否同意这次请求。服务器响应消息中包含“Access-Control-Allow-Origin”时,表示同意请求。 非简单请求 不满足简单请求两个条件的都为非简单请求。 对于非简单请求,在正式通信之前,浏览器会增加一次HTTP查询请求,称为预检请求。浏览器询问服务器,当前页面所在的源是否在服务器的许可名单之中,以及可以使用哪些HTTP请求方法和头信息字段。预检通过后,浏览器向服务器发送简单请求。
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件通道”,进入“事件通道”页面。 单击“创建事件通道”,弹出“创建事件通道”对话框。 输入事件通道名称、描述、企业项目和跨账号信息,单击“确定”,完成自定义事件通道的创建;具体参数可参考下表: 表1 创建自定义事件通道参数说明 参数名称 说明 通道名称 请输入通道名称。 描述 请输入描述。 企业项目 请选择企业项目。 说明: 关联企业项目后,不支持修改。 跨账号 选择是否开启跨账号。 说明: 启用跨账号后,允许指定账号向当前通道发布事件。 创建通道时需要开启跨账号开关,输入目标账号的ID。 同账号跨区域时目标通道也需要开启跨账号开关,输入本账号的ID。 账号ID 请输入被授权账号ID,多账号以逗号分隔。 说明: 支持配置最多3个账号,多账号以逗号分隔,如:“account1,account2”。 策略 { "Sid": "allow_account_to_put_events", "Effect": "Allow", "Principal": { " IAM ": [] }, "Action": "eg:channels:putEvents", "Resource": "urn:eg:cn-north-7:eeb7f0f587674635a3669e1d63013316:channel:" } 说明: 目前策略只读,不支持编辑。 事件通道创建成功后,在“自定义事件通道”区域查看创建的自定义事件通道。 如果需要修改自定义事件通道的描述信息,单击待修改事件通道后的“编辑”,在弹出的对话框中编辑描述信息。 如果需要查看自定义事件通道的信息,单击待查看信息的事件通道名称,在弹出的对话框中查看自定义事件通道信息。
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件通道”,进入“事件通道”页面。 单击操作列“事件轨迹”,进入“事件轨迹”页面。 单击右侧“过滤”图标,进行查询。 表1 高级搜索条目参数说明 参数名称 说明 时间范围 选择事件发布时间范围。 查询类型 可选择“事件源和事件类型”和“投递状态和订阅名称”。 事件ID 输入事件ID。 单击“事件轨迹”,查看事件轨迹及事件接收、事件投递详情。 图1 查看事件轨迹 单击“事件ID”,可查看事件详情如图2所示。 图2 事件详情 投递失败的事件详情可在72小时内查询到,投递成功的事件详情72小时内无法保证一定能查询到。
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件流”,进入“事件流”页面。 单击“创建事件流”。 在弹窗中输入事件流名称和描述,单击“确定”,完成事件流名称和描述信息输入。 配置Kafka事件源。 单击“事件源”,右侧弹出“事件源”弹窗。 事件提供方选择“分布式消息服务 Kafka版”。 设置事件源参数。 图1 事件源-Kafka 表1 Kafka参数说明 参数名称 说明 实例 选择Kafka实例。 接入方式 选择“密文接入”或“明文接入”。 安全协议 当选择为密文接入时会显示对应的安全协议。 Topic 选择Topic。 消费组 输入消费组。 并发数 输入并发数,输入值范围1~1000。 建议并发数与选择的Topic的分区数保持一致,如果不一致可能会影响消息消费速率。当您选择Topic时,如果并发数为空会读取您选择的Topic的分区数作为并发数。 消费点位 选择消费点位。 最新点位:将会从消息队列的最新消息开始消费。 最早点位:将会从消息队列的最早消息开始消费。 SASL认证机制 当Kafka实例开启SASL SSL时可见,选择SASL认证机制。 PLAIN:一种简单的用户名密码校验机制。 SC RAM -SHA-512:采用哈希算法对用户名与密码生成凭证,进行身份校验的安全认证机制,比PLAIN机制安全性更高。 SASL证书地址 当Kafka实例开启SASL SSL时可见,输入SASL证书地址。获取地址请参考如何获取分布式消息服务Kafka实例的SASL证书地址。 说明: 必须使用zip压缩包,压缩包内的文件数量不超过两个,压缩包和文件大小均不可超过1M; 压缩包里证书的名称必须是固定的:client.jks。 SASL证书密钥 当Kafka实例开启SASL SSL时可见,输入SASL证书密钥。 用户名 当Kafka实例开启SASL SSL时可见,输入实例用户名。 用户密码 当Kafka实例开启SASL SSL时可见,输入实例用户密码。 单击“保存”,完成配置事件源。 完成配置事件源后,您可以参考路由到 函数工作流 ,继续配置事件流的事件目标。 当事件源和事件目标都配置完成后,单击右上角“保存”,完成事件流的创建。 发送到目标端失败时,将重试整批事件,直到处理成功或源端消息过期为止,目标端需支持处理重复事件。
  • 创建自定义事件通道 登录事件网格控制台。 在左侧导航栏选择“事件通道”,进入“事件通道”页面。 单击“创建事件通道”,弹出“创建事件通道”对话框。 输入事件通道名称和描述信息,单击“确定”,完成自定义事件通道的创建。 事件通道创建成功后,在“自定义事件通道”区域查看创建的自定义事件通道。 如果需要修改自定义事件通道的描述信息,单击待修改事件通道后的“编辑”,在弹出的对话框中编辑描述信息。 如果需要查看自定义事件通道的信息,单击待查看信息的事件通道名称,在弹出的对话框中查看自定义事件通道信息。
  • 发布事件 本章节介绍在事件网格控制台如何发布事件。 您可以通过发布事件功能,调试事件订阅中事件源、事件通道、事件目标是否已是连通状态,已配置的事件规则是否生效,事件是否成功发送到事件目标。 前提条件: 已创建自定义事件通道、已创建自定义应用事件源、已设置事件目标,并基于上述内容创建事件订阅。 登录事件网格控制台。 在左侧导航栏选择“事件通道”,进入“事件通道”页面。 单击“发布事件”,进入“发布事件”页面。 配置事件条目。 表1 事件条目参数说明 参数名称 说明 事件通道 选择事件通道。 事件源 输入事件源,支持自定义应用事件源。 事件类型 输入事件类型。 事件详情 输入JSON格式事件内容。 时间戳 选择时间戳。 单击“预览”,预览事件。 单击“发布”,发送事件。事件发布成功结果如图1所示。 图1 发布事件 单击“添加事件条目”,可以配置多条事件信息。 支持发布单条事件,或同时发布多条事件。 单击,可以复制事件条目。 单击,可以删除事件条目。
  • 事件轨迹 本章节介绍在事件网格控制台如何追踪事件轨迹。 您可以通过事件轨迹功能,追踪查询事件源名称、事件类型、订阅名称及事件ID。 登录事件网格控制台。 在左侧导航栏选择“事件通道”,进入“事件通道”页面。 单击操作列“事件轨迹”,进入“事件轨迹”页面。 单击“高级搜索”,进行查询。 表2 高级搜索条目参数说明 参数名称 说明 时间范围 选择事件发布时间范围。 事件源名称 输入事件源名称。 事件类型 输入事件类型。 订阅名称 输入订阅名称。 事件ID 输入事件ID。 单击“事件轨迹”,查看事件接收和事件投递详情。 图2 事件轨迹 单击“事件ID”,可查看事件详情如图3所示。 图3 事件详情
  • 事件格式查看 前提条件: 创建rabbitmq实例。 图1 rabbitmq实例 创建和rabbitmq实例同一vpc、子网的访问端点。 创建事件通道。 图2 创建事件通道 创建rabbitmq事件源。 图3 rabbitmq事件源 创建rabbitmq事件订阅。 图4 创建rabbitmq事件订阅 图5 查看事件源状态 发送事件。 图6 发送事件 图7 安全组放通15671端口,地址栏输入公网访问Web界面UI地址 查看事件消息格式。 查看事件轨迹的事件详情: 图8 事件轨迹详情 消息体事件格式如下: { "datacontenttype": "application/json", "data": { "context": "11111" }, "subject": "RABBITMQ:cn-north-4:f003dc69-2fc3-4c44-9062-0b9a2c6cb8cc/0ef1e7a03280f3ed2f69c00c652a5744:RABBITMQ:source-rabbitmq", "specversion": "1.0", "id": "cd845ec7-0314-400d-9293-d39d7b258d9b", "source": "source-rabbitmq", "time": "2024-02-05T15:31:51Z", "type": "RABBITMQ:CloudTrace:RabbitmqCall" } 查看目标函数日志: 图9 目标函数日志
  • 创建RabbitMQ事件源 登录事件网格控制台。 在左侧导航栏选择“事件源”,进入“事件源”页面。 单击“自定义事件源”,弹出“创建自定义事件源”对话框。 参考表1,填写自定义事件源的配置信息。 表1 RabbitMQ事件源参数说明 参数名称 说明 配置类型 支持以下两种类型: 选择:选择一个已创建的自定义事件通道。 新建:创建一个新的自定义事件通道。 通道 “配置类型”为“选择”时,在下拉列表中选择一个已创建的自定义事件通道。 “配置类型”为“新建”时,输入事件通道名称和描述信息。 事件源创建成功后,事件通道不支持修改。 事件源名称 您自定义的事件源名称,用于识别不同的事件源。 事件源创建成功后,事件源名称不支持修改。 描述(可选) 事件源的描述信息。 事件源类型 事件源类型,选择“分布式消息服务RabbitMQ版”。 说明: 如之前未创建授权委托,事件源类型首次选择“分布式消息服务RabbitMQ版”时,系统会自动弹出创建委托授权界面,需要您创建授权委托,详情请查看授权委托。 RabbitMQ实例 消息队列RabbitMQ版中的实例名称。 用户名 RabbitMQ实例的用户名。 密码 RabbitMQ实例的密码。 Vhost RabbitMQ实例的 虚拟主机 。 Queue RabbitMQ实例的队列。 单击“确定”,完成自定义事件源的创建。 创建成功后,在“自定义事件源”页签,查看创建的事件源。 如果需要修改自定义事件源的描述信息,单击待修改事件源后的“编辑”,在弹出的对话框中编辑描述及相关参数信息。 如果需要查看自定义事件源的信息,单击待查看信息的事件源名称,在弹出的对话框中查看自定义事件源信息。
  • 事件格式查看 前提条件: 创建rocketmq实例。 图1 rocketmq实例 创建和rocketmq实例同一vpc、子网的访问端点。 创建事件通道。 图2 创建事件通道 创建rocketmq事件源。 图3 rocketmq事件源 创建rocketmq事件订阅。 图4 创建rocketmq事件订阅 图5 创建事件订阅成功后rocketmq事件源变为运行中 发送事件。 图6 发送事件 查看事件消息格式。 查看事件轨迹的事件详情: 图7 事件轨迹详情 消息体事件格式如下: { "datacontenttype": "application/json", "data": { "context": "{\"hello\":\"world\"}", "topic": "topic-test" }, "subject": "ROCKETMQ:cn-north-4:f003dc69-2fc3-4c44-9062-0b9a2c6cb8cc/0ef1e7a03280f3ed2f69c00c652a5744:ROCKETMQ:source-rocketmq", "specversion": "1.0", "id": "e6cc599b-0664-4078-87dd-5630087d5f7e", "source": "source-rocketmq", "time": "2024-02-05T14:20:31Z", "type": "ROCKETMQ:CloudTrace:RocketmqCall" } 查看目标函数日志: 图8 目标函数日志
  • 创建RocketMQ事件源 登录事件网格控制台。 在左侧导航栏选择“事件源”,进入“事件源”页面。 单击“自定义事件源”,弹出“创建自定义事件源”对话框。 参考表1,填写自定义事件源的配置信息。 表1 RocketMQ事件源参数说明 参数名称 说明 配置类型 支持以下两种类型: 选择:选择一个已创建的自定义事件通道。 新建:创建一个新的自定义事件通道。 通道 “配置类型”为“选择”时,在下拉列表中选择一个已创建的自定义事件通道。 “配置类型”为“新建”时,输入事件通道名称和描述信息。 事件源创建成功后,事件通道不支持修改。 事件源名称 您自定义的事件源名称,用于识别不同的事件源。 事件源创建成功后,事件源名称不支持修改。 描述(可选) 事件源的描述信息。 事件源类型 事件源类型选择“分布式消息服务RocketMQ版”。 说明: 如之前未创建授权委托,事件源类型首次选择“分布式消息服务RocketMQ版”时,系统会自动弹出创建委托授权界面,需要您创建授权委托,详情请查看授权委托。 RocketMQ实例 选择消息队列RocketMQ版中的实例名称。 若选择“无”,表示添加用户自建的消息队列RocketMQ版实例。 Topic RocketMQ实例的Topic。 消费组 RocketMQ实例的消费组。 用户名 RocketMQ实例开启ACl访问控制的时候需要填写实例的用户名。 密钥 RocketMQ实例开启ACl访问控制的时候需要填写实例的密钥。 虚拟私有云 当“RocketMQ实例”选择“无”时参数可见,选择虚拟私有云。 子网 当“RocketMQ实例”选择“无”时参数可见,选择子网。 连接地址 当“RocketMQ实例”选择“无”时参数可见,输入自建RocketMQ版实例的连接地址。 SSL 当“RocketMQ实例”选择“无”时参数可见,配置是否开启SSL。 说明: 自建RocketMQ事件源处于“运行中”时,不支持修改SSL。如果涉及SSL变化,建议该事件源删除重建。 ACL访问控制 当“RocketMQ实例”选择“无”时参数可见,配置是否开启ACL访问控制。 单击“确定”,完成自定义事件源的创建。 创建成功后,在“自定义事件源”页签,查看创建的事件源。 如果需要修改自定义事件源的描述信息,单击待修改事件源后的“编辑”,在弹出的对话框中编辑描述及相关参数信息。 如果需要查看自定义事件源的信息,单击待查看信息的事件源名称,在弹出的对话框中查看自定义事件源信息。
  • 监控指标 表1 监控指标说明 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始值) streaming_process_num 处理事件数量 该指标为单位时间处理事件数量 ≥ 0 事件流 1分钟 streaming_success_num 处理成功事件数量 该指标为单位时间处理成功事件数量 ≥ 0 事件流 1分钟 streaming_success_rate 处理事件成功率 该指标为单位时间处理事件成功率 0-100% 事件流 1分钟 streaming_failed_num 处理事件失败数量 该指标为单位时间处理事件失败数量 ≥ 0 事件流 1分钟 streaming_failed_rate 处理事件失败率 该指标为单位时间处理事件失败率 0-100% 事件流 1分钟 streaming_process_time 事件平均处理耗时 该指标为单位时间事件平均处理耗时 ≥ 0 ms 事件流 1分钟 表2 维度说明 维度 Key Value 事件流 streaming_id 事件流ID
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件模型”,进入“事件模型”页面。 在“自定义事件模型”页签中,通过以下任意一种方式删除自定义事件模型。 单击待删除自定义事件模型后的“删除”,弹出“删除事件模型”对话框。 单击待删除自定义事件模型的标识,进入自定义事件模型详情页。单击“删除”,弹出“删除事件模型”对话框。 勾选自定义事件模型标识左侧的方框,可选一个或多个,单击信息栏左上侧的“批量删除”,弹出“删除事件模型”对话框。 单击“确定”,完成自定义事件模型的删除。
  • 操作步骤: 创建事件通道。 图2 创建事件通道 创建rabbitmq事件源。 图3 创建rabbitmq事件源 创建rabbitmq事件订阅。 图4 创建rabbitmq事件订阅 查看事件源状态 图5 查看事件源状态 发送事件。 图6 发送事件 安全组放通15671端口,地址栏输入公网访问Web界面UI地址: 查看事件消息格式。 查看事件轨迹的事件详情: 图7 查看事件详情 消息体事件格式如下: { "datacontenttype": "application/json", "data": { "context": "11111" }, "subject": "RABBITMQ:cn-north-4:f003dc69-2fc3-4c44-9062-0b9a2c6cb8cc/0ef1e7a03280f3ed2f69c00c652a5744:RABBITMQ:source-rabbitmq", "specversion": "1.0", "id": "cd845ec7-0314-400d-9293-d39d7b258d9b", "source": "source-rabbitmq", "time": "2024-02-05T15:31:51Z", "type": "RABBITMQ:CloudTrace:RabbitmqCall" } 查看目标函数日志: 图8 查看目标函数日志
  • 创建新版本 登录事件网格控制台。 在左侧导航栏选择“事件模型”,进入“事件模型”页面。 在“自定义事件模型”页签中,通过以下任意一种方式创建新版本。 单击待创建新版本的自定义事件模型后的“添加版本”,弹出“添加版本”对话框。 单击待创建新版本的自定义事件模型的标识,进入自定义事件模型详情页。在“版本列表”页签,单击“添加版本”,弹出“添加版本”对话框。 输入版本内容,单击“确定”,完成新版本的创建。
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件路由”,进入“事件路由”页面。 图1 事件路由页面 单击“创建事件路由任务”,进入创建详情页。 配置“任务基本配置”。 图2 任务基本配置 表1 任务基本配置参数说明 参数 说明 任务名称 请输入任务名称 描述 请输入对本任务的描述。 配置“源端和目标端配置”。 当源端和目标端均为Kafka时: 图3 源端和目标端配置 源端类型:Kafka 目标端类型:Kafka 规格(QPS):选择为2000、5000、9000、15000或>20000。 表2 源端目标端配置参数说明 参数 说明 配置类型 请选择“Kafka地址”或“实例名称”。 选择为“Kafka地址”类型时,请配置以下参数: Kafka地址 请输入Kafka地址。 说明: 支持配置多个地址以逗号分隔,例如:192.168.0.1:111,192.168.0.2:222。 虚拟私有云 请选择虚拟私有云。 子网 请选择子网。 安全协议 请选择安全协议为“SASL_SSL”、“SASL_PLAINTEXT”或“PLAINTEXT”。 认证机制 请选择认证机制为“SCRAM-SHA-512”或“PLAIN”。 用户名 请输入用户名。 密码 请输入密码。 选择为“实例名称”类型时,请配置以下参数: 实例名称 请选择Kafka实例。 接入方式 请选择“密文接入”或“明文接入”。 安全协议 默认为“SASL_SSL”。 认证机制 请选择认证机制为“SCRAM-SHA-512”或“PLAIN”。 用户名 请输入用户名。 密码 请输入密码。 配置“任务对象配置”。 图4 任务对象配置 表3 任务对象配置参数说明 参数 说明 Topics 选择“正则表达式”或“输入/选择”。 说明: 当选择“正则表达式”时需在下方输入表达式。 同步消费进度 请选择是否打开。 说明: 打开后会将消息消费进度同步到目标Kafka。 当前同步的进度有100以内的误差。 副本数 请配置副本数。 说明: 自动创建的Topic副本数,不能超过目标端Kafka的Broker数量。 启动偏移量 请选择为“最早”或“最新”。 压缩算法 请选择压缩算法为“none”、“gzip”、“snappy”、“lz4”或“zstd”。 Topic映射 请输入要映射的源端Topic和目标端Topic名称,单击“保存”。 说明: 如果源端和目标端的kafka是同一个实例,则建议配置topic映射,否则可能导致topic中的数据出现循环复制。 Topic映射的名称不能相同。 完成参数配置后单击“立即购买”,完成事件路由创建,创建成功后可在事件路由页面查看任务状态。 事件路由任务创建完成后默认为“未启用”状态,需要单击“启用”按钮,待状态显示为“运行中”时,任务正式启用。 图5 启用事件路由 事件路由公测期间免费。 如果源端kafka和目标端kafka在不同vpc里,但是他们的broker地址存在重叠,这种情况任务也会失败,规避方式是让用户用一个新的vpc打通其中一个kafka的网络,保障源端和目标端的地址不重叠。 创建任务成功后,会生成mm2开头的Topic,此为运行任务资源所需,请勿删除,若删除此任务后,则Topic可删除。
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件流”,进入“事件流”页面。 单击“创建事件流”。 在弹窗中输入事件流名称和描述,单击“确定”,完成事件流名称和描述信息输入。 请参考配置分布式消息服务 Kafka版,配置事件源。 配置事件目标。 单击“事件目标”,右侧弹出“事件目标”弹窗。 目标服务选择“分布式消息服务 Kafka版”。 设置事件目标参数。 图1 分布式消息服务 Kafka版 表1 分布式消息服务 Kafka版参数说明 参数名称 说明 目标连接 选择目标连接。如果还未创建目标连接,请先创建分布式消息服务Kafka版目标连接,如何创建请参见目标连接。 Topic 选择Topic。先选目标连接以加载Topic选项。 消息Key配置 关闭 不启用消息Key。 开启 变量:从CloudEvents标准事件中获取变量值,将变量值作为Key值。 常量:将指定的常量作为key值。若选择常量,所有消息将发送至同一分区。 规则配置 类型 事件网格将CloudEvents标准事件转换成事件目标可以接受的事件类型。支持以下三种转换类型: 透传:事件网格不对事件进行转换,将原生事件的完整结构直接路由到事件目标。 变量:事件网格EventGrid通过JSONPath从事件中提取参数,然后把这些参数路由到事件目标。 常量:事件只起到触发器的作用,不管事件内容是什么,事件网格都把常量路由到事件目标。 如果需要了解更多转换类型的信息,请参考事件内容转换。 消息推送 批量推送 配置是否开启批量推送,批量推送可帮您批量聚合多个事件。 批量推送条数 推送间隔 开启批量推送可见,每次批量推送的最大聚合条数,默认值100,输入值范围1~10000。 开启批量推送可见,输入批量推送间隔,默认值1,输入值范围0~15,单位:秒。
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件模型”,进入“事件模型”页面。 在“自定义事件模型”页签中,通过以下任意一种方式编辑自定义事件模型。 单击待编辑自定义事件模型后的“编辑”,弹出“编辑自定义事件模型”对话框。 单击待编辑自定义事件模型的标识,进入自定义事件模型详情页。单击“编辑”,弹出“编辑自定义事件模型”对话框。 根据实际需求,修改自定义事件模型的描述信息、版本兼容方法和版本内容,单击“确定”。
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件流”,进入“事件流”页面。 单击“创建事件流”。 在弹窗中输入事件流名称和描述,单击“确定”,完成事件流名称和描述信息输入。 请参考配置分布式消息服务 Kafka版,配置事件源。 配置事件目标。 单击“事件目标”,右侧弹出“事件目标”弹窗。 目标服务选择“ 对象存储服务 OBS”。 设置事件目标参数。 图1 对象存储服务OBS 表1 对象存储服务OBS参数说明 参数名称 说明 AK 请输入AK。 说明: 如何获取AK/SK,请参考如何获取访问密钥AK/SK。 SK 请输入SK。 桶 请选择/输入OBS桶名称。 转储目录 请输入转储目录。 说明: OBS桶中对象的目录,多级目录用“/”分隔。 时间目录格式 请选择时间目录格式。 说明: 数据将存储在转储目录下的时间目录中,时间目录是按时间格式作为层级的目录。 例如,当选择的时间目录格式精确到日时,存储目录为:“桶名称/转储目录/年/月/日”。 规则配置 类型 事件网格将CloudEvents标准事件转换成事件目标可以接受的事件类型。支持以下三种转换类型: 透传:事件网格不对事件进行转换,将原生事件的完整结构直接路由到事件目标。 变量:事件网格EventGrid通过JSONPath从事件中提取参数,然后把这些参数路由到事件目标。 常量:事件只起到触发器的作用,不管事件内容是什么,事件网格都把常量路由到事件目标。 如果需要了解更多转换类型的信息,请参考事件内容转换。 消息推送 批量推送 配置是否开启批量推送,批量推送可帮您批量聚合多个事件。 批量推送条数 推送间隔 开启批量推送可见,每次批量推送的最大聚合条数,默认值100,输入值范围1~10000。 开启批量推送可见,输入批量推送间隔,默认值1,输入值范围0~15,单位:秒。
  • 操作步骤: 创建事件通道。 图2 创建事件通道 创建rocketmq事件源。 图3 创建rocketmq事件源 创建rocketmq事件订阅。 图4 创建rocketmq事件订阅 创建事件订阅成功后rocketmq事件源变为运行中 图5 创建事件订阅 发送事件。 图6 发送事件 查看事件消息格式。 查看事件轨迹的事件详情: 图7 查看事件详情 消息体事件格式如下: { "datacontenttype": "application/json", "data": { "context": "{\"hello\":\"world\"}", "topic": "topic-test" }, "subject": "ROCKETMQ:cn-north-4:f003dc69-2fc3-4c44-9062-0b9a2c6cb8cc/0ef1e7a03280f3ed2f69c00c652a5744:ROCKETMQ:source-rocketmq", "specversion": "1.0", "id": "e6cc599b-0664-4078-87dd-5630087d5f7e", "source": "source-rocketmq", "time": "2024-02-05T14:20:31Z", "type": "ROCKETMQ:CloudTrace:RocketmqCall" } 查看目标函数日志: 图8 查看目标函数日志
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件订阅”,进入“事件订阅”页面。 单击“创建事件订阅”。 单击“事件目标”。 在弹窗中选择“事件目标”。 启用“死信队列”,并配置参数。 图1 配置死信队列 表1 死信队列参数说明 参数名称 说明 队列类型 选择队列类型。 实例 选择实例。 目标连接 选择目标连接。 说明: 目前只能选择与队列类型匹配的目标连接。 Topic 选择Topic。 说明: 如果事件目标与死信队列使用同一个Topic,EG将无法区分事件成功与失败,不推荐您配置同一个Topic。 单击“确定”,完成死信配置。
  • 监控指标 表1 监控指标说明 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始值) sub_num 投递事件数量 该指标为单位时间订阅投递事件数量 ≥ 0 事件订阅 1分钟 sub_success_num 投递事件成功数量 该指标为单位时间订阅投递事件成功数量 ≥ 0 事件订阅 1分钟 sub_success_rate 投递事件成功率 该指标为单位时间订阅投递事件成功率 0-100% 事件订阅 1分钟 sub_failed_num 投递事件失败数量 该指标为单位时间订阅投递事件失败数量 ≥ 0 事件订阅 1分钟 sub_failed_rate 投递事件失败率 该指标为单位时间订阅投递事件失败率 0-100% 事件订阅 1分钟 sub_retry_num 投递事件重试数量 该指标为单位时间订阅投递事件重试数量 ≥ 0 事件订阅 1分钟 sub_retry_rate 投递事件重试率 该指标为单位时间订阅投递事件重试率 0-100% 事件订阅 1分钟 sub_process_time 投递事件平均处理耗时 该指标为单位时间订阅投递事件平均处理耗时 ≥ 0 ms 事件订阅 1分钟 表2 维度说明 维度 Key Value 事件订阅 subscription_id 事件订阅ID 事件订阅-目标 target_id 事件目标ID
  • 创建社区版RocketMQ事件源 登录事件网格控制台。 在左侧导航栏选择“事件流”,进入“事件流”页面。 单击“创建事件流”,进入“创建事件流”页面。 图1 创建事件流 单击“事件源”,弹出“配置事件源”对话框。 图2 配置事件源 参考表1,填写事件源的配置信息。 表1 社区版 RocketMQ参数说明 参数名称 说明 事件提供方 选择社区版 RocketMQ。 地址 请输入连接地址。 Group 请输入Group。 Topic 请输入Topic。 虚拟私有云 请选择虚拟私有云。 说明: 事件流创建之后不允许修改虚拟私有云,编辑会有异常提示。 子网 请选择子网。 说明: 事件流创建之后不允许修改子网,编辑会有异常提示。 SSL 请选择是否开启SSL。 ACL访问控制 请选择是否开启ACL访问控制。 说明: 当开启ACL访问控制时,需要配置用户名及密钥。 tag 请输入tag。 消费点位 请选择最早、最新或自定义。 说明: 当消费点位选择自定义时,需要配置日期时间。 消费超时时间(毫秒) 请输入1000到900000之间的整数。 消息类型 默认为普通消息。 消费线程数 请输入20到64之间的整数。 批量消费最大消息数 请输入1到32之间的整数。 单击“下一步”,进入规则配置页面,规则配置可参考过滤规则参数说明。 图3 规则配置 单击“下一步”完成规则配置,您可以参考路由到函数工作流,继续配置事件流的事件目标。 事件源配置为社区版RocketMQ时,配置事件目标为FunctionGraph(函数计算)时,执行方式可选择为“同步”或“异步”。 当事件源和事件目标都配置完成后,单击“保存”,完成事件流的创建。 MQ采集函数首次启动分钟级后生效。 广播模式下不支持失败重试,即消费失败后,失败消息不再重试,消费者继续消费新的消息。 发送到目标端失败时,将利用RocketMQ本身的重试能力进行重试,目标端需支持处理重复事件,达到重试上限时,源端消息进入RocketMQ对应topic的死信队列,EG事件不再投递,详情请参考管理死信队列。
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件模型”,进入“事件模型”页面。 单击“自定义事件模型”,弹出“创建自定义事件模型”对话框。 参考表1,填写自定义事件模型的配置信息。 表1 自定义事件模型参数说明 参数 说明 标识 输入事件模型标识,用于识别不同的事件模型。 描述 事件模型的描述信息。 格式 默认为“JSON_SCHEMA_DRAFT_6”。 版本兼容 为事件模型选择兼容方式。支持如下兼容方式: 向后兼容 向前兼容 不兼容 前后兼容 版本内容 输入版本内容。 图1 创建自定义事件模型 单击“确定”,完成自定义事件模型的创建。
  • 监控指标 表1 监控指标说明 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始值) pub_num 接入事件数量 该指标为单位时间通道接入事件数量 ≥ 0 事件通道 1分钟 pub_success_num 接入事件成功数量 该指标为单位时间通道接入事件成功数量 ≥ 0 事件通道 1分钟 pub_success_rate 接入事件成功率 该指标为单位时间通道接入事件成功率 0-100% 事件通道 1分钟 pub_failed_num 接入事件失败数量 该指标为单位时间通道接入失败数量 ≥ 0 事件通道 1分钟 pub_failed_rate 接入事件失败率 该指标为单位时间通道接入事件失败率 0-100% 事件通道 1分钟 pub_process_time 接入事件平均处理耗时 该指标为单位时间通道接入事件平均处理耗时 ≥ 0 ms 事件通道 1分钟 表2 维度说明 维度 Key Value 事件通道 channel_id 事件通道ID
  • 创建分布式消息服务RocketMQ版事件源 登录事件网格控制台。 在左侧导航栏选择“事件流”,进入“事件流”页面。 单击“创建事件流”,进入“创建事件流”页面。 图1 创建事件流 单击“事件源”,弹出“配置事件源”对话框。 图2 配置事件源 参考表1,填写事件源的配置信息。 表1 分布式消息服务RocketMQ版参数说明 参数名称 说明 事件提供方 选择分布式消息服务 RocketMQ版。 实例 请选择实例。 Group 请输入消费组。 Topic 请输入Topic。 SSL 请选择是否开启SSL。 ACL访问控制 请选择是否开启ACL访问控制。 说明: 当开启ACL访问控制时,需要配置用户名及密钥。 tag 请输入tag。 消费超时时间(毫秒) 请输入1000到900000之间的整数。 消费方式 请选择“并发消费”或“顺序消费”。 消费线程数 请输入20到64之间的整数。 批量消费最大消息数 请输入1到32之间的整数。 最大重试次数 请输入最大重试次数。 说明: 设置-1表示无限重试,0表示不重试。 如果RockrtMQ版本为4.x版本,则默认允许每条消息最多重试16次,每次重试的时间间隔如表2所示。 重试间隔(毫秒) 请输入1000到30000之间的整数。 表2 RockrtMQ 4.x版本重试时间间隔 第几次重试 与上次重试的间隔时间 第几次重试 与上次重试的间隔时间 1 10秒 9 7分钟 2 30秒 10 8分钟 3 1分钟 11 9分钟 4 2分钟 12 10分钟 5 3分钟 13 20分钟 6 4分钟 14 30分钟 7 5分钟 15 1小时 8 6分钟 16 2小时 表3 生产顺序性和消费顺序性组合 生产顺序 消费顺序 顺序性效果 设置消息组,保证消息顺序发送。 顺序消费 按照消息组粒度,严格保证消息顺序。 同一消息组内的消息的消费顺序和发送顺序完全一致。 设置消息组,保证消息顺序发送。 并发消费 并发消费,尽可能按时间顺序处理。 未设置消息组,消息乱序发送。 顺序消费 按队列存储粒度,严格顺序。 基于 Apache RocketMQ 本身队列的属性,消费顺序和队列存储的顺序一致,但不保证和发送顺序一致。 未设置消息组,消息乱序发送。 并发消费 并发消费,尽可能按照时间顺序处理。 单击“下一步”,进入规则配置页面,规则配置可参考过滤规则参数说明。 图3 规则配置 单击“下一步”完成规则配置,您可以参考路由到函数工作流,继续配置事件流的事件目标。 事件源配置为分布式消息服务RocketMQ版时,配置事件目标为FunctionGraph(函数计算)时,执行方式可选择为“同步”或“异步”。 当事件源和事件目标都配置完成后,单击“保存”,完成事件流的创建。 MQ采集函数首次启动分钟级后生效。 广播模式下不支持失败重试,即消费失败后,失败消息不再重试,消费者继续消费新的消息。 发送到目标端失败时,将利用RocketMQ本身的重试能力进行重试,目标端需支持处理重复事件,达到重试上限时,源端消息进入RocketMQ对应topic的死信队列,EG事件不再投递。
  • 创建项目并授权 创建项目 进入管理控制台页面,单击右上方的用户名,在下拉列表中选择“ 统一身份认证 ”,进入统一身份认证服务页面。选择左侧导航中的“项目”,单击“创建项目”,选择区域并输入项目名称。 授权 通过为用户组授予权限(包括资源集和操作集),实现项目和用户组的关联。将用户加入到用户组,使用户具有用户组中的权限,从而精确地控制用户所能访问的项目,以及所能操作的资源。具体步骤可参考创建用户组并授权。
共100000条