华为云用户手册

  • 请求参数说明 表1 请求参数列表 参数名称 参数类型 是否必选 描述 input *GetObjectInput 必选 参数解释: 图片处理请求参数。详情参见GetObjectInput。 extensions extensionOptions 可选 参数解释: 拓展配置项。通过调用拓展配置项为对应请求配置额外的拓展请求头,详情参见extensionOptions。 表2 GetObjectInput 参数名称 参数类型 是否必选 描述 Bucket string 必选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 Key string 必选 参数解释: 对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 ResponseCacheControl string 可选 参数解释: 指定OBS返回请求中Cache-Control头的值。指定Object被下载时的网页的缓存行为。 默认取值: 无 ResponseContentDisposition string 可选 参数解释: 指定OBS返回请求中Content-Disposition头的值。指定Object被下载时的名称。 默认取值: 无 ResponseContentEncoding string 可选 参数解释: 指定OBS返回请求中Content-Encoding头的值。指定Object被下载时的内容编码格式。 默认取值: 无 ResponseContentLanguage string 可选 参数解释: 指定OBS返回请求中Content-Language头的值。指定Object被下载时的内容语言格式。 默认取值: 无 ResponseContentType string 可选 参数解释: 指定OBS返回请求中Content-Type头的值。指定Object文件类型。 默认取值: 无 ResponseExpires string 可选 参数解释: 指定OBS返回请求中Expires头的值。指定Object被下载时的网页的缓存过期时间。 默认取值: 无 VersionId string 可选 参数解释: 对象的版本号。例如:G001117FCE89978B0000401205D5DC9。 取值范围: 长度为32的字符串。 默认取值: 无,如果不设置则默认指定最新版本的对象。 ImageProcess string 可选 参数解释: 图片处理参数,描述针对对象的图片处理命令或处理样式。例如如果想表示对图片依次进行缩放、旋转,取值:image/resize,m_fixed,w_100,h_100/rotate,90。 取值范围: 命令方式:image/commands 样式方式:style/stylename 详细参数说明参见处理图片。 默认取值: 如果不输入处理命令,将返回原图。 RangeStart int64 可选 参数解释: 指定下载对象的起始位置。 取值范围: 0~对象长度,单位:字节。 默认取值: 0,即从对象的第一个字节开始下载。 RangeEnd int64 可选 参数解释: 指定下载对象的结束位置。 取值范围: 取值必须大于RangeStart。 如果该值大于对象长度-1,实际仍取对象长度-1,单位为字节。 默认取值: 无 IfMatch string 可选 参数解释: 指定一个预设的Etag值,如果下载对象的ETag值与该参数值相同,则返回对象内容,否则返回错误。 取值范围: 长度为32的字符串。 默认取值: 无 IfNoneMatch string 可选 参数解释: 指定一个预设的Etag值,如果下载对象的ETag值与该参数值不相同,则返回对象内容,否则返回错误。 取值范围: 长度为32的字符串。 默认取值: 无 IfModifiedSince time.Time 可选 参数解释: 如果对象在指定的时间后有修改,则返回对象内容,否则返回错误。 约束限制: 日期格式必须为ISO8601的格式。 例如:2018-01-01T00:00:00.000Z,表示如果最后修改时间晚于2018-01-01T00:00:00.000Z则返回对象内容,否则返回错误。 代码示例:time.Now().Add(time.Duration(24) * time.Hour)。 默认取值: 无 IfUnmodifiedSince time.Time 可选 参数解释: 如果对象在指定的时间后没有修改,则返回对象内容,否则返回错误。 约束限制: 日期格式必须为ISO8601的格式。 例如:2018-01-01T00:00:00.000Z,表示如果最后修改时间早于2018-01-01T00:00:00.000Z则返回对象内容,否则返回错误。 代码示例:time.Now().Add(time.Duration(24) * time.Hour)。 默认取值: 无 SseHeader SseCHeader 可选 参数解释: 服务端解密头信息,详见SseCHeader。 约束限制: 如果客户端的对象上传时,使用了客户提供的加密密钥进行服务端加密,当下载对象时,同样也必须在消息中提供密钥。 表3 SseCHeader 参数名称 参数类型 是否必选 描述 Encryption string 作为请求参数时必选 参数解释: 表示服务端加密是SSE-C方式。对象使用SSE-C加密方式。 取值范围: 可选值:AES256,即选择SSE-C方式加密对象。 默认取值: 无 Key string 作为请求参数时必选 参数解释: SSE-C方式下加密使用的密钥,该密钥用于加密对象。 约束限制: 该头域由256bit的密钥经过Base64编码得到,示例:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw= 默认取值: 无 KeyMD5 string 作为请求参数时可选 参数解释: SSE-C方式下加密使用密钥的MD5值,该值用于验证密钥传输过程中是否出错。 约束限制: 由密钥值经过MD5加密再经过Base64编码后得到,示例:4XvB3tbNTN+tIEVa0/fGaQ== 默认取值: 无
  • 接口约束 您必须拥有obs:object:PutObject权限,才能进行图片处理。相关授权操作可参见典型权限场景配置案例。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 所有的图片处理操作均不会修改原图。 归档存储不支持图片处理。 深度归档存储不支持图片处理。 处理后的图片直接返回浏览器展示,不会保存在OBS中,也不会占用存储空间,不会产生存储费用。图片处理只收取处理的费用。
  • 返回结果说明 表10 返回结果 参数名称 参数类型 描述 output *BaseModel 参数解释: 接口返回信息。详情参见BaseModel。 err error 参数解释: 接口返回错误信息。 表11 BaseModel 参数名称 参数类型 描述 StatusCode int 参数解释: HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 RequestId string 参数解释: OBS服务端返回的请求ID。 默认取值: 无 ResponseHeaders map[string][]string 参数解释: HTTP响应头信息。 默认取值: 无
  • 代码示例 本示例用于设置examplebucket桶下example/objectname对象的对象ACL为私有。 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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 package main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityToken(securityToken)) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.SetObjectAclInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定对象,此处以 example/objectname 为例。 input.Key = "example/objectname" // 指定对象Acl,此处以私有为例 input.ACL = obs.AclPrivate // 设置对象ACL output, err := obsClient.SetObjectAcl(input) if err == nil { fmt.Printf("Set Object(%s)'s acl successful with Bucket(%s)!\n", input.Key, input.Bucket) fmt.Printf("RequestId:%s\n", output.RequestId) return } fmt.Printf("Set Object(%s)'s acl fail with Bucket(%s)!\n", input.Key, input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } }
  • 请求参数说明 表1 请求参数列表 参数名称 参数类型 是否必选 描述 input *SetObjectAclInput 必选 参数解释: 设置对象ACL请求参数。详情参见SetObjectAclInput。 extensions extensionOptions 可选 参数解释: 拓展配置项。通过调用拓展配置项为对应请求配置额外的拓展请求头,详情参考extensionOptions。 表2 SetObjectAclInput 参数名称 参数类型 是否必选 描述 Bucket string 必选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 Key string 必选 参数解释: 对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4. myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 VersionId string 可选 参数解释: 对象的版本号。例如:G001117FCE89978B0000401205D5DC9A。 取值范围: 长度为32的字符串。 默认取值: 无 ACL AclType 可选 参数解释: 预定义ACL。 取值范围: AclType取值详见AclType。 默认取值: 无 Owner Owner 可选 参数解释: 对象的所有者账号户ID,详见Owner。 约束限制: Owner和Grants必须配套使用,且与ACL互斥。 Grants []Grant 可选 参数解释: 被授权用户权限信息,详见Grant。 默认取值: 无 表3 AclType 常量名 原始值 说明 AclPrivate private 私有读写。 桶或对象的所有者拥有完全控制的权限,其他任何人都没有访问权限。 AclPublicRead public-read 公共读私有写。 设在桶上,所有人可以获取该桶内对象列表、桶内多段任务、桶的元数据、桶的多版本。 设在对象上,所有人可以获取该对象内容和元数据。 AclPublicReadWrite public-read-write 公共读写。 设在桶上,所有人可以获取该桶内对象列表、桶内多段任务、桶的元数据、桶的多版本、上传对象、删除对象、初始化段任务、上传段、合并段、拷贝段、取消多段上传任务。 设在对象上,所有人可以获取该对象内容和元数据。 AclPublicReadDelivered public-read-delivered 桶公共读,桶内对象公共读。 设在桶上,所有人可以获取该桶内对象列表、桶内多段任务、桶的元数据、桶的多版本,可以获取该桶内对象的内容和元数据。 说明: AclPublicReadDelivered不能应用于对象。 AclPublicReadWriteDelivered public-read-write-delivered 桶公共读写,桶内对象公共读写。 设在桶上,所有人可以获取该桶内对象列表、桶内多段任务、桶的元数据、桶的多版本、上传对象、删除对象、初始化段任务、上传段、合并段、拷贝段、取消多段上传任务,可以获取该桶内对象的内容和元数据。 说明: AclPublicReadWriteDelivered不能应用于对象。 AclBucketOwnerFullControl bucket-owner-full-control 设在对象上,桶和对象的所有者拥有对象的完全控制权限,其他任何人都没有访问权限。 默认情况下,上传对象至其他用户的桶中,桶拥有者没有对象的控制权限。对象拥有者为桶拥有者添加此权限控制策略后,桶所有者可以完全控制对象。例如,用户A上传对象x至用户B的桶中,系统默认用户B没有对象x的控制权。当用户A为对象x设置bucket-owner-full-control后,用户B就拥有了对象x的控制权。 表4 Owner 参数名称 参数类型 是否必选 描述 ID string 作为请求参数时必选 参数解释: 所有者的账号ID,即domain_id。 取值范围: 如何获取账号ID请参见如何获取账号ID和用户ID? 默认取值: 无 表5 Grant 参数名称 参数类型 是否必选 描述 Grantee Grantee 作为请求参数时必选 参数解释: 被授权用户相关信息,详见Grantee。 Permission PermissionType 作为请求参数时必选 参数解释: 被授予的权限。 取值范围: 权限取值范围详见PermissionType。 默认取值: 无 表6 Grantee 参数名称 参数类型 是否必选 描述 Type GranteeType 作为请求参数时必选 参数解释: 被授权用户的类型。 取值范围: 被授权用户类型的取值范围详见GranteeType。 默认取值: 无 ID string 作为请求参数时,如果Type为用户类型则必选。 参数解释: 被授权用户的账号ID,即domain_id。 取值范围: 如何获取账号ID请参见如何获取账号ID和用户ID? 默认取值: 无 DisplayName string 作为请求参数时可选 参数解释: 被授权用户的账号名。 约束限制: 不支持中文。 只能以字母开头。 长度为6-32个字符。 只能包含英文字母、数字或特殊字符(-_)。 默认取值: 无 URI GroupUriType 作为请求参数时,如果Type为用户组类型则必选。 参数解释: 被授权的用户组。 取值范围: 授权用户组取值范围详见GroupUriType。 默认取值: 无 表7 PermissionType 常量名 原始值 说明 PermissionRead READ 读权限。 PermissionWrite WRITE 写权限。 PermissionReadAcp READ_ACP 读取ACL配置的权限。 PermissionWriteAcp WRITE_ACP 修改ACL配置的权限。 PermissionFullControl FULL_CONTROL 完全控制权限,包括对桶或对象的读写权限,以及对桶或对象ACL配置的读写权限。 表8 GranteeType 常量名 原始值 说明 GranteeGroup Group 用户组。 GranteeUser CanonicalUser 单个用户。 表9 GroupUriType 常量名 原始值 说明 GroupAllUsers AllUsers 所有用户。
  • 功能说明 访问控制列表(Access Control List,ACL)用于资源拥有者给其他账号授予资源的访问权限。默认情况下,创建存储桶或对象时仅资源拥有者对资源的完全控制权限,即桶创建者对桶拥有完全控制权限,对象上传者对对象拥有完全控制权限,而其他账号默认无权访问资源。如果资源拥有者想授予其他账号资源的读写权限,可以使用ACL实现。OBS桶和对象的ACL是基于账号进行授权,授权后对账号和账号下的 IAM 用户都生效。了解更多可参见ACL权限控制方式介绍。SSE-KMS方式加密的对象即使设置了ACL,跨租户也不生效。 OBS用户在上传对象时可以设置权限控制策略,也可以通过ACL操作API接口对已存在的对象更改或者获取ACL。
  • 接口约束 您必须是桶拥有者或拥有设置对象ACL的权限,才能设置对象ACL。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObjectAcl权限,如果使用桶策略则需授予PutObjectAcl权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 一个对象的ACL最多支持配置100条规则。
  • 日志读写限制 本文介绍 云日志 服务日志读写的限制。 表1 日志读写限制表 类别 限制项 说明 备注 华为账号 日志写入流量 您在1个华为账号下,写入流量最大为500MB/s。 如您有更大的使用需求,请提交工单申请。 日志写入次数 您在1个华为账号下,写入次数最大为10000次/s。 如您有更大的使用需求,请提交工单申请。 日志查询流量 您在1个华为账号下,通过API查询日志,单次返回日志最大为10MB。 如您有更大的使用需求,请提交工单申请。 日志读取次数 您在1个华为账号下,读取次数最大为1000次/min。 如您有更大的使用需求,请提交工单申请。 日志组 日志写入流量 您在1个日志组下,写入流量最大为200MB/s。 非硬性限制,超过限制不保证服务质量。 日志写入次数 您在1个日志组下,写入次数最大为1000次/s。 非硬性限制,超过限制不保证服务质量。 日志查询流量 您在1个日志组下,通过API查询日志,单次返回日志最大为10MB。 不涉及。 日志读取次数 您在1个日志组下,读取次数最大为500次/min。 非硬性限制,超过限制不保证服务质量。 日志流 日志写入流量 您在1个日志流下,写入流量最大为100MB/s。 非硬性限制,超过限制不保证服务质量。 日志写入次数 您在1个日志流下,写入次数最大为500次/s。 非硬性限制,超过限制不保证服务质量。 日志查询流量 您在1个日志流下,通过API查询日志,单次返回日志最大为10MB。 不涉及。 日志读取次数 您在1个日志流下,读取次数最大为100次/min。 非硬性限制,超过限制不保证服务质量。 日志时间 日志时间不超过24小时。从当前时间往前推24小时或往后推24小时,超过该时间的日志将无法进行采集。 例如: 当前时间为2022年1月7日11:00,那么1月6日11:00前的日志无法进行采集。 当前时间为2022年1月7日11:00,那么1月8日11:00后的日志无法进行采集 不涉及。 SDK SDK上报日志流量 推荐使用1.0.0以上SDK正式版本,若有低版本,请尽快升级,否则无法保证SLA。 低版本SDK可能会导致上报失败。 端侧SDK 当前限制邀测中,不建议在生产环境中使用。 邀测阶段,可能会频繁迭代,需要您配合产品升级。 父主题: 约束与限制
  • 示例:通过流水和明细账单查看并核对资源用量 以下例子提到价格仅为参考示例,实际计算请以价格计算器中的价格为准。 云日志流水账单 云日志服务按需计费是按小时计费,您可以在流水账单中核对计费周期的信息是否和实际相符,具体如表1所示。 表1 云日志流水账单 产品类型 云日志服务 LTS 产品 云日志服务 计费模式 按需 消费时间 2023/07/11 16:00:00 GMT+08:00-2023/07/11 17:00:00 GMT+08:00时段计费系统将生成1笔流水账单,统计该计费周期内使用的日志存储总量。 官网价 官网价=日志存储量(GB)× 每GB单价 本例中,单价可在价格计算器中查询,以0.000479元/GB/小时为例,使用量( 定价 量纲)为2517.116GB,那么官网价=2,517.116 * 0.000479= 1.20569864元。 优惠金额 用户使用云服务享受折扣优惠如商务折扣、伙伴授予折扣以及促销优惠等减免的金额。基于官网价的优惠金额。 抹零金额 华为云产品 定价精度为小数点后8位(单位:元),因此在计费过程中会产生小数点后8位的资源使用费用。而在实际扣费时,仅扣除到小数点后2位,小数点后第3位到第8位部分金额会被舍弃,这种舍弃部分的金额称作抹零金额。 应付金额 应付金额=官网价-优惠金额-抹零金额(以下示例仅供参考,请以实际账单为准) 假设优惠金额为0,那么应付金额=1.20569864 - 0 - 0.00041737约等于1.20 元 云日志明细账单 以下例子提到价格仅为参考示例,实际计算请以价格计算器中的价格为准。 明细账单可以通过多维度展示客户账单的详细信息。一般通过设置统计维度为“按使用量”,统计周期为“按账期”来统计资源在某个月份的总开销,您可以核对表2所示的信息是否和实际相符。 表2 云日志明细账单 产品类型 云日志服务 LTS 产品 云日志服务 计费模式 按需 资源名称/ID 例如fbda872a-2cbf-44d4-9572-4dc6d7503ad7.lts.logstorage 规格 日志存储大小 使用量类型 容量 单价 按需计费云日志属于简单定价,您可以在价格计算器中查询单价。 单价单位 在价格计算器中查询到的单价单位:0.000479元/GB/小时 使用量 按产品单价单位显示使用量,云日志的单价单位为元/GB/小时,因此使用量以小时为单位。本例中,7月总计使用量为480。 使用量单位 GB 官网价 官网价=单价*容量 本例中,单价可在价格计算器中查询,以0.000479元/GB/小时为例,容量为480GB,那么官网价=0.000479 * 480 = 0.22992 元。 优惠金额 用户使用云服务享受折扣优惠如商务折扣、伙伴授予折扣以及促销优惠等减免的金额。基于官网价的优惠金额。 应付金额 用户使用云服务享受折扣优惠后需要支付的费用金额。
  • 日志转储概述 主机和云服务的日志数据上报至 云日志服务LTS 后,LTS会根据配置的日志存储时间定时清理日志内容。例如日志存储时间为30天,上报到LTS的日志只保存30天,30天后开始删除日志内容。请以创建日志组或日志流时设置的日志存储时间为准,详情请参考管理日志组和管理日志流。超出存储时间的日志数据将会被自动删除,对于需要长期存储的日志数据(日志持久化),云日志服务提供转储功能,可以将日志转储至其他云服务中进行长期保存。 日志转储功能只能拷贝已有日志,不会删除日志。云日志服务LTS根据用户配置的日志存储时间定时清理日志文件,不会影响转储后的日志。 当前LTS支持以下表1,请根据您的业务场景进行日志转储服务选择。 表1 转储服务类型 转储服务类型 使用场景 对象存储服务 OBS 对象存储服务(Object Storage Service,OBS)提供海量、安全、高可靠、低成本的数据存储能力,可供用户存储任意类型和大小的数据。适合企业备份/归档、 视频点播 、视频监控等多种数据存储场景。 创建周期性日志转储时,LTS支持OBS桶的存储类别为标准存储、已恢复的归档存储的OBS桶。 创建一次性日志转储时,LTS支持OBS桶的存储类别为标准存储。 分布式消息服务Kafka版(DMS) 分布式消息服务Kafka版(Distributed Message Service for Kafka)是一款基于开源社区版Kafka提供的消息队列服务,具备高效可靠的消息异步传递机制,向用户提供计算、存储和带宽资源独占式的Kafka专享实例。 主要用于不同系统间的数据交流和传递,在企业解决方案、金融支付、电信、电子商务、社交、即时通信、视频、物联网、车联网等众多领域都有广泛应用。 Kafka可以应对大量日志传输场景,应用通过异步方式将日志消息同步到消息服务,再通过其他组件对日志做实时或离线分析,也可用于关键日志信息收集进行应用监控。 数据接入服务 DIS 数据接入服务(Data Ingestion Service,简称DIS)为处理或分析流数据的自定义应用程序构建数据流管道,主要解决云服务外的数据实时传输到云服务内的问题。数据接入服务每小时可从数十万种数据源(如IoT数据采集、日志和定位追踪事件、网站点击流、社交媒体源等)中连续捕获、传送和存储数TB数据。 数据仓库 服务 GaussDB (DWS) 数据仓库服务(Data Warehouse Service,简称DWS)是完全托管的企业级云上数据仓库服务,具备高性能、低成本、易扩展等特性,满足大数据时代企业数据仓库业务诉求。适用于对海量日志进行存储,分析等场景。 数据湖探索 DLI 数据湖 探索(Data Lake Insight,简称DLI)是完全兼容Apache Spark、Apache Flink、Trino生态,提供一站式的流处理、批处理、交互式分析的Serverless融合处理分析服务。 适用于需要对海量日志内容进行分析,大数据处理的场景,例如游戏公司不同部门日常通过游戏数据分析平台,分析每日新增日志获取所需指标,通过数据来辅助决策等场景。 父主题: 日志转储
  • 日志结构化 执行搜索与分析前,需要将上报的日志进行结构化配置和索引配置。结构化后的数据具有统一的长度和格式,能够显著提升搜索与分析的效率和准确性。 日志数据可分为结构化数据和非结构化数据。 结构化数据是指能够用数字或统一的数据模型描述的数据,具有严格的长度和格式,便于存储和分析。 非结构化数据是指不便于用数据库二维逻辑表来表现的数据,数据结构不规则或不完整,缺乏预定义的数据模型,难以直接进行分析。 日志结构化是以日志流为单位,通过特定的提取方式,将日志流中格式固定或相似度较高的日志提取出来,同时过滤掉不相关的日志。结构化后的日志可以方便的使用SQL语法进行查询与分析。 日志结构化解析是将非结构化或半结构化的日志数据转换为结构化格式的过程,以便于更好地存储、查询和分析,提高日志数据的可读性、可搜索性和查询效率。 云日志服务支持两种日志结构化解析方式:ICAgent结构化解析和云端结构化解析,且一个日志流只能配置一种结构化方式,例如选择ICAgent结构化解析后,不能再选择云端结构化解析,需要删除后,才能重新选择。更多信息请参考图1。 若用户在日志接入时已经配置ICAgent结构化解析,则无需再配置云端结构化解析。 ICAgent结构化解析是在采集侧做结构化,支持插件组合解析,单个日志流的多个采集配置支持不同结构化解析规则,推荐使用ICAgent结构化解析的方式,更多内容请参考ICAgent结构化解析规则说明。 云端结构化解析是通过不同的日志提取方式将日志流中的日志进行结构化,云端结构化解析会消耗LTS服务端算力,未来会按照日志大小收取日志加工流量费用。 图1 不同解析方式
  • 短语搜索 短语搜索用于准确匹配目标短语,例如搜索语句abc def,不区分先后顺序,将匹配所有同时包含abc和def的日志。短语搜索和关键词搜索的区别请参考表2。 短语搜索:在关键词搜索语法的基础上实现,短语搜索能够区分关键词的顺序,用于精准匹配目标短语,搜索结果更加精确。短语搜索适用于英文短语、中文短语的搜索,不支持模糊搜索。 关键词搜索:关键词搜索是基于分词实现,通过分词符先将搜索内容拆分为多个关键词,然后匹配日志。关键词搜索不会区分多个关键词在日志中出现的顺序,因此只要日志中按照搜索的与或非逻辑能命中关键词,该日志就会被搜索到。 表2 搜索区别 搜索方式 短语搜索 关键词搜索 搜索区别 区分关键词的顺序,用于精准匹配目标短语,搜索结果更加精确。 不区分关键词的顺序,按照搜索逻辑命中关键词即可。 举例说明 假设您的日志流中存在2条原始日志,如下: 原始日志1:this service is lts 原始日志2:lts is service 短语搜索:#"is lts",会命中1条日志。 关键词搜索:is lts,会命中2条日志。 短语搜索:#"lts is",会命中1条日志。 关键词搜索:lts is,会命中2条日志。 表3 搜索方式 搜索方式 说明 全文搜索 #"abc def" content:#"abc def" content为日志原文对应的内置字段,#"abc def"等同于content:#"abc def",默认匹配日志原文的内容。 字段搜索 key:#"abc def" value参数不可为空。 字段搜索和not运算符配合使用时,还会匹配到不包含该字段的日志。 短语搜索不支持搭配模糊搜索。 短语搜索中的星号(*)和问号(?)会被视为普通字符,因此短语搜索不支持搭配模糊搜索,可以用来搜索日志中的星号(*)和问号(?)。 短语搜索不支持对分词符进行搜索。 例如搜索语句#"var/log",其中 / 为分词符,搜索语句等同于#"var log",会搜索包含目标短语var log的日志。同理,搜索语句#"var:log"、#"var;log"等搜索的也是包含目标短语var log的日志。 中文搜索推荐采用短语搜索。 由于中文默认采用的是一元分词,每个汉字单独分词,搜索时会匹配同时包含搜索语句中每一个汉字的日志,本身便具有模糊搜索的特性,当需要更加精确的结果时,推荐采用短语搜索。
  • 短语搜索 短语搜索用于准确匹配目标短语,例如搜索语句#"abc def",区分先后顺序,将匹配所有同时包含abc、def,且abc位于def前面的日志。短语搜索和关键词搜索的区别请参考表2。 短语搜索:在关键词搜索语法的基础上实现,短语搜索能够区分关键词的顺序,用于精准匹配目标短语,搜索结果更加精确。短语搜索适用于英文短语、中文短语的搜索,不支持模糊搜索。 关键词搜索:关键词搜索是基于分词实现,通过分词符先将搜索内容拆分为多个关键词,然后匹配日志。关键词搜索不会区分多个关键词在日志中出现的顺序,因此只要日志中按照搜索的与或非逻辑能命中关键词,该日志就会被搜索到。 表2 搜索区别 搜索方式 说明 示例 短语搜索 区分关键词的顺序,用于精准匹配目标短语,搜索结果更加精确。 假设您的日志流中存在两条原始日志,如下: 原始日志1:this service is lts 原始日志2:lts is service 则搜索:#"is lts",会命中1条日志;搜索:#"lts is",会命中1条日志。 关键词搜索 不区分关键词的顺序,按照搜索逻辑命中关键词即可。 假设您的日志流中存在两条原始日志,如下: 原始日志1:this service is lts 原始日志2:lts is service 则搜索:is lts,会命中2条日志;搜索:lts is,会命中2条日志。 使用限制如下: 短语搜索不支持搭配模糊搜索。 短语搜索中的星号(*)和问号(?)会被视为普通字符,因此短语搜索不支持搭配模糊搜索,可以用来搜索日志中的星号(*)和问号(?)。 短语搜索不支持对分词符进行搜索。 例如搜索语句#"var/log",其中 / 为分词符,搜索语句等同于#"var log",会搜索包含目标短语var log的日志。同理,搜索语句#"var:log"、#"var;log"等搜索的也是包含目标短语var log的日志。 中文搜索推荐采用短语搜索。 由于中文默认采用的是一元分词,每个汉字单独分词,搜索时会匹配同时包含搜索语句中每一个汉字的日志,本身便具有模糊搜索的特性,当需要更加精确的结果时,推荐采用短语搜索。
  • 服务信息 服务信息展示实例ID、项目ID、规格、服务版本、续费、购买服务及退订服务。 规格:显示服务当前许可的设备接入的数量。 服务版本:专业版。 路侧服务数量:显示服务当前的路侧服务数量。 续费:当需要续费已购买的服务时,可单击续费跳转至续费页面进行服务续费。 购买服务:单击购买服务跳转至购买页面进行服务购买。 退订服务:当您想退订当前服务时,请单击退订服务跳转至退订管理页面进行退订操作。 执行退订操作前,请确保待退订的云资源数据已完成备份或者迁移,退订完成后资源将被完全删除,且不可恢复,请谨慎操作。
  • 规格 实例类型 服务配置 配置规格 标准版 (平台支持200设备数联接或200TPS,平台部署的硬件支持选用鲲鹏、X86、ARM架构的各种硬件) 路侧服务 部署摄像头和雷达,感知路侧对象和事件,每个边缘计算节点(ITS800)上部署一套。 路侧服务部署的硬件支持选用鲲鹏、X86、ARM架构的各种硬件。 专业版 (平台支持1000设备数联接或1000TPS,平台部署的硬件支持选用鲲鹏、X86、ARM架构的各种硬件) 路侧服务 部署摄像头和雷达,感知路侧对象和事件,每个边缘计算节点(ITS800)上部署一套。 路侧服务部署的硬件支持选用鲲鹏、X86、ARM架构的各种硬件。
  • 使用限制 实例类型 描述 限制 标准版 数据上报并发处理能力 200TPS 数据上报时延 ≤200ms 北向数据推送并发处理能力 200TPS 北向API接口调用并发处理能力 200TPS 支持设备同时在线数目 200设备 平台最高扩容 支持平台最高扩容至千万级联接,百万级并发,支撑集团级数量设备接入 专业版 数据上报并发处理能力 1000TPS 数据上报时延 ≤200ms 北向数据推送并发处理能力 1000TPS 北向API接口调用并发处理能力 200TPS 支持设备同时在线数目 1000设备 平台最高扩容 支持平台最高扩容至千万级联接,百万级并发,支撑集团级数量设备接入
  • 响应示例 状态码: 200 OK,请求响应成功。 { "env_tags" : [ { "name" : "***", "business_id" : 162, "uuid" : "e9c8f632*********cbfcfa148c0", "descp" : null, "creator_id" : null, "env_id_list" : null, "id" : 72, "gmt_create" : "2022-10-25T02:18:44.000+00:00", "gmt_modify" : "2022-10-25T02:18:44.000+00:00" } ], "total_count" : 1 }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 env_tags Array of CmdbTagEntity objects 环境标签数据列表。 total_count Integer 总条数。 表4 CmdbTagEntity 参数 参数类型 描述 name String 环境标签名称。 business_id Long 应用id。 uuid String UUID。 descp String 描述信息。 creator_id Long 创建者id。 env_id_list Array of integers 环境id列表。 id Long 环境标签id。 gmt_create String 创建时间。 gmt_modify String 修改时间。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 从IAM服务获取的用户Token。 x-business-id 是 Long 应用id。 表2 请求Body参数 参数 是否必选 参数类型 描述 business_id 是 Long 应用id。 keyword 否 String 关键字。 page_enable 否 Boolean 是否分页。 page_number 否 Integer 每页容量。 page_size 否 Integer 当前页码。
  • 响应示例 状态码: 200 OK,请求响应成功。 { "node_list" : [ { "node_type" : "Env", "node_name" : "apm-task:cn-east-204", "node_id" : "55", "env_id" : 55 }, { "node_type" : "Env", "node_name" : "apm-api:cn-east-204-az2", "node_id" : "45", "env_id" : 45 }, { "node_type" : "Env", "node_name" : "apm-archive:cn-east-204", "node_id" : "4394", "env_id" : 4394 }, { "node_type" : "Env", "node_name" : "apm-store:cn-east-204-az1", "node_id" : "46", "env_id" : 46 }, { "node_type" : "Env", "node_name" : "apm-store:cn-east-204-az2", "node_id" : "47", "env_id" : 47 }, { "node_type" : "Env", "node_name" : "apm-api:cn-east-204-az1", "node_id" : "48", "env_id" : 48 }, { "node_type" : "Env", "node_name" : "apm-pu-task:cn-east-204-az1", "node_id" : "4396", "env_id" : 4396 }, { "node_type" : "Env", "node_name" : "apm-pu-task:cn-east-204-az2", "node_id" : "4397", "env_id" : 4397 }, { "node_type" : "Env", "node_name" : "apm-deliver:cn-east-204", "node_id" : "1104", "env_id" : 1104 }, { "node_type" : "Env", "node_name" : "apm-merge:cn-east-204", "node_id" : "3568", "env_id" : 3568 }, { "node_type" : "Mysql", "node_name" : "Mysql", "node_id" : "Mysql", "env_id" : null }, { "node_type" : "Env", "node_name" : "apm-alarm:cn-east-204", "node_id" : "913", "env_id" : 913 }, { "node_type" : "Env", "node_name" : "config-web:cn-east-204", "node_id" : "51", "env_id" : 51 }, { "node_type" : "Env", "node_name" : "user", "node_id" : "user", "env_id" : null }, { "node_type" : "Env", "node_name" : "apm-access:cn-east-204-AZ1", "node_id" : "42", "env_id" : 42 }, { "node_type" : "Env", "node_name" : "apm-master:cn-east-204", "node_id" : "53", "env_id" : 53 }, { "node_type" : "Env", "node_name" : "apm-front:cn-east-204", "node_id" : "54", "env_id" : 54 }, { "node_type" : "Env", "node_name" : "apm-access:cn-east-204-AZ2", "node_id" : "43", "env_id" : 43 } ], "line_list" : [ { "from_node" : "user", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "0.09", "count" : "272", "error" : "0" }, "filter_value" : "user" }, { "from_node" : "47", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "10.28", "count" : "780", "error" : "0" }, "filter_value" : "47" }, { "from_node" : "4394", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "29.49", "count" : "694", "error" : "0" }, "filter_value" : "4394" }, { "from_node" : "46", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "10.41", "count" : "843", "error" : "0" }, "filter_value" : "46" }, { "from_node" : "4397", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "41.54", "count" : "175", "error" : "0" }, "filter_value" : "4397" }, { "from_node" : "48", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "39.47", "count" : "47", "error" : "0" }, "filter_value" : "48" }, { "from_node" : "4396", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "36.15", "count" : "167", "error" : "0" }, "filter_value" : "4396" }, { "from_node" : "51", "to_node" : "Mysql", "direction" : "out", "collector" : "Mysql", "target_env_id" : 51, "hints" : { "rt" : "1.12", "count" : "97402", "error" : "14" }, "filter_value" : "Mysql" }, { "from_node" : "1104", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "0.98", "count" : "156", "error" : "0" }, "filter_value" : "1104" }, { "from_node" : "913", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "64.91", "count" : "686", "error" : "0" }, "filter_value" : "913" }, { "from_node" : "3568", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "30.67", "count" : "563", "error" : "0" }, "filter_value" : "3568" }, { "from_node" : "54", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "1.86", "count" : "682", "error" : "0" }, "filter_value" : "54" }, { "from_node" : "43", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "1.03", "count" : "409", "error" : "0" }, "filter_value" : "43" }, { "from_node" : "42", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "1.26", "count" : "401", "error" : "0" }, "filter_value" : "42" }, { "from_node" : "53", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "3.78", "count" : "1035", "error" : "0" }, "filter_value" : "53" }, { "from_node" : "45", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "31.25", "count" : "48", "error" : "0" }, "filter_value" : "45" }, { "from_node" : "55", "to_node" : "51", "direction" : "in", "collector" : "Url", "target_env_id" : 51, "hints" : { "rt" : "1.13", "count" : "94", "error" : "0" }, "filter_value" : "55" } ], "collector_config" : { "Mysql" : { "line_view_config" : { "metric_set" : "total", "filter_prefix" : null, "line_view_item_list" : [ { "function" : "SUM(invokeCount)", "as" : "count" }, { "function" : "SUM(totalTime)/SUM(invokeCount)", "as" : "rt" }, { "function" : "SUM(errorCount)", "as" : "errorCount" } ] }, "detail_view_config" : { "metric_set" : "connection", "group_by" : "db", "detail_view_item_list" : [ { "function" : "SUM(invokeCount)", "as" : "count" }, { "function" : "SUM(totalTime)/SUM(invokeCount)", "as" : "rt" }, { "function" : "SUM(errorCount)", "as" : "errorCount" } ] } }, "Url" : { "line_view_config" : { "metric_set" : "user", "filter_prefix" : "clusterId=", "line_view_item_list" : [ { "function" : "SUM(invokeCount)", "as" : "count" }, { "function" : "SUM(totalTime)/SUM(invokeCount)", "as" : "rt" }, { "function" : "SUM(errorCount)", "as" : "errorCount" } ] }, "detail_view_config" : null } }, "real_start_time" : 1667465696000, "real_end_time" : 1667466896000 }
  • 请求示例 查询目标应用ID为6,开始时间戳为1667462525000,结束时间戳为1667463725000的应用全局拓扑图信息。 /v1/apm2/openapi/topology/business-search { "direction" : "", "end_time" : 1667463725000, "start_time" : 1667462525000, "filter_user" : true, "target_business_id" : 6, "env_tag_list" : [ ] }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 从IAM服务获取的用户Token。 x-business-id 是 Long 应用id。 表2 请求Body参数 参数 是否必选 参数类型 描述 target_business_id 是 Long 目标应用id。 env_tag_list 否 Array of integers 环境标签列表,可为空。 direction 否 String 方向,可为空。 end_time 是 String 结束时间。 start_time 是 String 开始时间。 filter_user 否 Boolean 过滤。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 鉴权token。 表3 请求Body参数 参数 是否必选 参数类型 描述 rum_id 否 String 站点id。 start_timestamp 否 String 开始时间戳。 end_timestamp 否 String 结束时间戳。 timestamp 否 Long 上报时间戳。 url 否 String 请求url。 uuid 否 String 站点的标识。 custom_key 否 String 自定义事件名。 str_val 否 String 事件值。 type 否 String 类型。 ssid 否 String 标识符ssid。 t 否 String 函数类型。 rum_ids 否 Array of strings 站点id集合。
  • 购买服务 购买CraftArts IPDCenter服务需要 注册华为账号 并开通华为云。 账号开通后需要进行华为云账号的实名认证,请参考企业账号如何完成实名认证 、个人账号如何完成实名认证。 如果您使用IAM账号登录,则需要为IAM用户授权。 登录服务的IAM用户,需要至少具有资源购买权限,例如租户管理员权限“Tenant Administrator”或者全局管理员权限“FullAccess”。 进入购买CraftArts IPDCenter页面,根据实际需求选择配置,然后选择购买并支付。
  • 扩容仿真管理服务-基础版 登录CraftArts IPDCenter控制台。 在左侧菜单栏选择“工业仿真云平台服务”,进入“工业仿真云平台服务”页面。 在“工业仿真云平台服务”页面的服务区域,选择的“公有云服务”页签,单击“仿真管理服务-基础版”后的。 图1 仿真管理服务-基础版扩容入口 在扩容页面,设置扩容的“用户数”,确认扩容信息,单击“去支付”。 图2 配置扩容参数 进入支付页面,选择支付方式,确认付款,支付订单后即可完成扩容。 扩容完成后,可在“工业仿真云平台服务”页面的“公有云服务”区域,查看“仿真管理服务-基础版”扩容后的规格信息。
  • 扩容仿真计算服务 登录CraftArts IPDCenter控制台。 在左侧菜单栏选择“工业仿真云平台服务”,进入“工业仿真云平台服务”页面。 在“工业仿真云平台服务”页面的服务区域,选择的“公有云服务”页签,单击“仿真计算服务”后的。 图3 仿真计算服务扩容入口 在扩容页面,设置扩容的“节点数量”,确认扩容信息,单击“去支付”。 图4 配置扩容参数 进入支付页面,选择支付方式,确认付款,支付订单后即可完成扩容。 扩容完成后,可在“工业仿真云平台服务”页面的“公有云服务”区域,查看“仿真计算服务”扩容后的规格信息。
  • 操作步骤 进入CraftArts IPDCenter购买页面。 选择商品及商品配置项。 表1 商品及商品配置项 商品 部署位置 说明 公有云 智能边缘小站CloudPond IPDCenter基础服务 区域 - 资源所在区域,不同区域的云服务产品之间内网互不相通;请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 - 可用区 选择IPDCenter基础服务所属的可用区。 可选值来源于位置服务(Location Service,L CS )授予账号使用的对应边缘可用区(Availability Zone,AZ)。 计费模式 商品的计费模式,当前仅支持“包年/包月”的计费模式。 环境名称 根据您的使用场景,对用户环境进行标识,比如:xx研发生产环境,xx研发测试环境等。 企业项目 仅对开通企业项目的企业客户账号显示。如需使用该功能,请联系客服申请开通。 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理,默认项目为default。了解更多企业项目相关信息,请参见企业项目管理。 - 虚拟私有云 表示在华为云上构建的逻辑隔离的网络空间,一个虚拟私有云由至少一个子网组成。系统会为您在每个地域提供默认的虚拟私有云和子网。 如现有的虚拟私有云/子网不符合您的要求,可以在虚拟私有云控制台进行创建,具体操作请参见创建虚拟私有云和子网。 同一虚拟私有云内资源默认内网互通。 - 安全组 表示一个逻辑上的分组,为具有相同安全保护需求并相互信任的云服务器提供访问策略。系统会为您提供一个默认安全组,默认安全组的规则是在出方向上的数据报文全部放行,入方向访问受限,安全组内的云服务器无需添加规则即可互相访问。 如现有的安全组不符合您的要求,可以在虚拟私有云控制台进行创建,具体操作请参见创建安全组。 用户数 最小配额为100,最大配额为8000。 购买时长 提供包月、包年多种规格,您可按需选择。支持自动续费。 单击“立即购买”,查看订单信息,确认无误后,按照界面提示选择支付方式完成付款。
  • 操作步骤 进入购买CraftArts IPDCenter页面。 选择商品及商品配置项。 表1 商品及商品配置项 商品 部署位置 说明 公有云 智能边缘小站CloudPond IPDCenter基础服务 区域 - 资源所在区域,不同区域的云服务产品之间内网互不相通;请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 - 可用区 选择IPDCenter基础服务所属的可用区。 可选值来源于位置服务(Location Service,LCS )授予账号使用的对应边缘可用区(Availability Zone,AZ)。 计费模式 商品的计费模式,当前仅支持“包年/包月”的计费模式。 环境名称 根据您的使用场景,对用户环境进行标识,比如:xx研发生产环境,xx研发测试环境等。 企业项目 仅对开通企业项目的企业客户账号显示。如需使用该功能,请联系客服申请开通。 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理,默认项目为default。了解更多企业项目相关信息,请参见企业项目管理。 - 虚拟私有云 表示在华为云上构建的逻辑隔离的网络空间,一个虚拟私有云由至少一个子网组成。系统会为您在每个地域提供默认的虚拟私有云和子网。 如现有的虚拟私有云/子网不符合您的要求,可以在虚拟私有云控制台进行创建,具体操作请参见创建虚拟私有云和子网。 同一虚拟私有云内资源默认内网互通。 - 安全组 表示一个逻辑上的分组,为具有相同安全保护需求并相互信任的云服务器提供访问策略。系统会为您提供一个默认安全组,默认安全组的规则是在出方向上的数据报文全部放行,入方向访问受限,安全组内的云服务器无需添加规则即可互相访问。 如现有的安全组不符合您的要求,可以在虚拟私有云控制台进行创建,具体操作请参见创建安全组。 用户数 最小配额为100,最大配额为8000。 购买时长 提供包月、包年多种规格,您可按需选择。支持自动续费。 单击“立即购买”,查看订单信息,确认无误后,按照界面提示选择支付方式完成付款。
  • 上传镜像 镜像上传需要使用SWR镜像容器服务,开通及使用请参照 容器镜像服务 SWR_用户指南。 上传镜像 访问 SWR容器镜像 服务,在左侧导航栏选择“总览”,然后单击右上方“创建组织”。 创建名称为hw_swr的组织 获取SWR登录指令 访问SWR容器 镜像服务 ,在左侧导航栏选择“总览”,然后单击右上角“登录指令”。 复制登录指令到您推送镜像的本地机器上执行 tag镜像 使用tag命令将镜像重命名以确定上传位置和组织,获取上传位置和组织前缀请参考pull/push命令 docker tag edge_monitor:1.0.0 swr.cn-north-4.myhuaweicloud.com/hw_swr/edge_monitor:1.0.0 上传镜像 docker push swr.cn-north-4.myhuaweicloud.com/hw_swr/edge_monitor:1.0.0 查看上传结果 上传镜像后请在SWR将镜像设置为公开。 父主题: 前提条件
  • 开发插件 根据您的需要开发插件,提供了一个Demo工程来协助您更快地了解SDK。 下载Demo Demo下载地址:使用ModulSDK开发插件Demo。 SDK下载地址:ModuleSDK_Java。 导入ModuleSDK依赖包 选择项目名右键单击Open Project Structure,选择Libraries后,单击中间框上方“+”号,选择下载好的ModuleSDK,添加到工程模块。 该Demo包含三个模块: erp-integration:此模块主要演示It集成服务。 modbus-driver:此模块主要演示协议转换。 monitor-app:此模块主要演示数据处理。 以其中的数据处理样例即monitor-app模块为例演示如何开发一个插件并远程部署到边缘上进行数据处理。 如果您有兴趣,可以参考开发指南-插件侧开发,该文档详细讲述了实践的架构和业务。 父主题: 前提条件
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全