华为云用户手册

  • 解决方法 租户或用户以正确的AK/SK登录Docker客户端。 向本租户或用户下有操作权限的namespace上传镜像,或者更换到新的namespace。 执行如下命令,向本租户或用户下有操作权限的namespace上传镜像。 docker push 10.125.54.133:20202/test2/busybox:latest 10.125.54.133:20202为租户或用户准备上传仓库的IP和端口号。 test2为该租户或用户下有操作权限的namespace。 执行如下命令,更换到新的namespace。 docker push 10.125.54.133:20202/test3/busybox:latest 10.125.54.133:20202为租户或用户准备上传仓库的IP和端口号。 test3为新的namespace。 上传成功后,显示如下: The push refers to a repository [10.125.54.133:20202/test2/busybox]6a749002dd6a: Pushedlatest: digest: sha256:ecb3f3e96e003af6e02f0f47ac4d25a3b0585db54de0a82bb070f8cb78a79bc7 size: 527 出现异常,请联系技术支持工程师。
  • 问题描述 在后台Docker登录成功以后,使用Docker客户端上传镜像包时,例如执行如下命令上传: docker push 10.125.54.133:20202/test1/busybox:latest 10.125.54.133:20202为租户或用户准备上传仓库的IP和端口号。 test1为namespace。 上传失败,Docker客户端出现如下提示: unauthorized: authentication required
  • 解决方法 待查看日志的主机未安装ICAgent ServiceStage的日志查看能力是由 AOM 服务提供的。主机是否安装ICAgent是使用AOM的日志能力的前提,否则将无法查看ServiceStage的日志。ICAgent是AOM的采集器,分别运行在每台主机上用于实时采集指标、日志和应用性能数据。 如何为待查看日志的主机安装ICAgent,请参考安装ICAgent。 用户业务日志输出位置为非标准位置 由于用户配置了日志策略,导致用户程序业务日志未输出到标准的输出位置。需参考如下方法进行排查处理: 虚拟机部署 排查配置的日志策略,是否把用户程序业务日志输出位置写到ServiceStage默认指定的虚拟机日志目录(/var/log/application/${组件名}-${环境名}-${随机字符串}/${版本号}/${实例ID}/start_app.log)外的其他目录。 请查询业务代码,对日志策略进行调整。 容器部署 排查配置的日志策略,是否把业务日志输出到除标准输出外的其他地方。请参考设置应用日志策略进行相关配置。
  • 解决方法 登录ServiceStage控制台。 在区域列表选择您的业务所在区域,例如“亚太-新加坡”。 在浏览器地址栏,获取“region”字段对应的值。 region取值示例如下面加粗内容所示: https://console.huaweicloud.com/servicestage/?agencyId=df****************************c1®ion=ap-southeast-3&locale=zh-cn#/overview 分别为SWR、APIG服务创建 VPC终端节点 ,请参考购买连接“接口”型终端节点服务的终端节点。 区域:请选择2所选择的区域。 服务类别:选择“按名称查找服务”。 服务名称:请参考表1填写各云服务对应的终端节点服务名称。 请将下表中的${region}替换为3获取到的值。 表1 连接“接口”型终端节点服务说明 云服务 终端节点服务名称 SWR com.myhuaweicloud.${region}.swr 说明: 如果您选择的是“华南-广州”区域,SWR的终端节点服务名称是:swr.cn-south-1.myhuaweicloud.com。 APIG com.myhuaweicloud.${region}.api 勾选“创建内网 域名 ”。 虚拟私有云:根据您的实际业务需要,为表1所示的所有终端节点服务选择同一个虚拟私有云。 子网:根据您的实际业务需要,为表1所示的终端节点服务分别选择子网。 其他参数请根据实际业务需要进行设置。 为OBS服务创建VPC终端节点,请参考购买连接“网关”型终端节点服务的终端节点。 需要为表2所示的OBS服务的终端节点服务分别创建VPC终端节点。 区域:请选择2所选择的区域。 服务类别:选择“按名称查找服务”。 服务名称:请参考表2填写OBS服务对应的终端节点服务名称。 表2 连接“网关”型终端节点服务说明 区域 终端节点服务名称 西南-贵阳一 cn-southwest-2.com.myhuaweicloud.v4.obsv2 cn-southwest-2.myhuaweicloud.v4.obsv2.lz05 华南-广州 cn-south-1.com.myhuaweicloud.v4.obsv2 cn-south-1.com.myhuaweicloud.v4.obsv2.lz05 cn-south-1.com.myhuaweicloud.v4.obsv2.lz08 cn-south-1.com.myhuaweicloud.v4.obsv2.lz09 华东二 com.myhuaweicloud.cn-east-4.obslb01.v4.obsv2.vxlan com.myhuaweicloud.cn-east-4.obslb01.v6.obsv2.vxlan 亚太-新加坡 ap-southeast-3.com.myhuaweicloud.v4.obsv2 ap-southeast-3.com.myhuaweicloud.v6.obsv2 非洲-约翰内斯堡 af-south-1.myhuaweicloud.v4.obsv2 af-south-1.myhuaweicloud.v6.obsv2 华东-上海一 cn-east-3.com.myhuaweicloud.v4.global.obsv2 cn-east-3.v4obsv2_new.58c9f146-63f0-4f07-98d3-18fe4874086b cn-east-3.myhuaweicloud.v4.obsv2.lz03 cn-east-3.myhuaweicloud.v4.obsv2.lz04 cn-east-3.com.myhuaweicloud.v4.obsv2.lz09 cn-east-3.com.myhuaweicloud.v4.obsv2.lz11 华北-北京四 cn-north-4.com.myhuaweicloud.v4.obsv2.OBSCluster9 cn-north-4.com.myhuaweicloud.v4.byte.obsv2 cn-north-4.com.myhuaweicloud.v4.CBG.obsv2 cn-north-4.com.myhuaweicloud.v4.obsv2.lz11 cn-north-4.com.myhuaweicloud.v4.storage.lz13 cn-north-4.com.myhuaweicloud.v4.obsv2.lz25 拉美-墨西哥城二 la-north-2.com.myhuaweicloud.v4.obsv2 虚拟私有云:为表2所示的所有终端节点服务选择4所选择的虚拟私有云。 子网:根据您的实际业务需要,为表2所示的终端节点服务分别选择子网。 其他参数请根据实际业务需要进行设置。 在终端节点列表,获取4中为APIG、SWR服务创建的VPC终端节点对应的服务地址。 其中,${region}为3获取到的值。 创建内网域名,请参考创建内网域名。 域名:请分别填写以下内网域名。 请将以下内网域名中的${region}替换为3获取到的值。 servicestage.${region}.myhuaweicloud.com swr-api.${region}.myhuaweicloud.com swr.${region}.myhuaweicloud.com VPC:选择4所选择的虚拟私有云。 其他参数请根据您的实际业务需要进行设置。 为7创建的所有内网域名添加记录集,请参考添加A类型记录集。 记录类型:选择“A – 将域名指向IPv4地址”。 记录值:参考下表填写。 请将下表中的${region}替换为3获取到的值。 内网域名 记录值 servicestage.${region}.myhuaweicloud.com 输入6获取到的com.myhuaweicloud.${region}.api终端节点服务对应的服务地址。 swr-api.${region}.myhuaweicloud.com swr.${region}.myhuaweicloud.com 输入6获取到的com.myhuaweicloud.${region}.swr终端节点服务对应的服务地址。 其他参数请根据您的实际业务需要进行设置。
  • 问题描述 VPC终端节点(VPC Endpoint),能够将VPC私密地连接到终端节点服务,使VPC中的云资源无需弹性公网IP就能够访问终端节点服务,提高了访问效率,为您提供更加灵活、安全的组网方式。 在Kubernetes类型环境下创建并部署组件时的组件镜像构建过程中,可以通过已创建的VPC终端节点与OBS、SWR服务通信,并使用APIG通过配置好的内网域名调用ServiceStage的功能接口。 仅“西南-贵阳一”、“华东二”、“华南-广州”、“亚太-新加坡”、“非洲-约翰内斯堡”、“华东-上海一”、“华北-北京四”、“拉美-墨西哥城二”区域的ServiceStage支持通过VPC终端节点访问依赖的服务。
  • FAQ 如何以root账户运行脚本命令? 将要以root账户运行的内容编写成一个脚本root-install.sh。 在真正要执行的install.sh执行如下语句,其中${ROOT_PASSWORD}为root账号的密码,-c后面的双引号中为执行的命令。切换用户后会丢失环境变量,可以在sh前加上所需要的环境变量。 echo "${ROOT_PASSWORD}" | su - root -c "APP_HOME=${APP_HOME} sh root-install.sh" 若执行上述语句发生“su: Permission denied”报错,找到/etc/pam.d/su文件,将“ auth required pam_wheel.so use_uid”这一句注释掉。
  • 系统默认配置 系统默认配置均在${APP_HOME}/servicestage-vmapp/application.conf文件中。文件内容如下所示: export LOG _PATH=/var/log/application/zqb-4-vm-wqd-2-7f6fbc/3c719644-f9f5-46b4-a06a-61fcf163e5b5export APP_HOME=/opt/application/zqb-4-vm-wqd-2-7f6fbc/2023.1207.11314/3c719644-f9f5-46b4-a06a-61fcf163e5b5export TOMCAT_STACK_HOME=/opt/application/zqb-4-vm-wqd-2-7f6fbc/2023.1207.11314/3c719644-f9f5-46b4-a06a-61fcf163e5b5/apache-tomcat-8.5.82export JRE_STACK_HOME=/opt/application/zqb-4-vm-wqd-2-7f6fbc/2023.1207.11314/3c719644-f9f5-46b4-a06a-61fcf163e5b5/jre1.8export APP_VALUE="{{app.value}}"export APP_USER=wwwexport APP_GROUP=www
  • 原因分析 在ServiceStage中,应用是指一个功能相对完备的业务系统,由一个或多个特性相关的组件组成,以应用维度组织多个组件。 在微服务中,可以将应用理解为完成某项完整业务场景的软件系统。应用一般由多个微服务组成,应用里面的微服务能够相互发现和调用。 在Spring Cloud微服务架构开发的项目中,应用名称通常在项目下各组件的“bootstrap.yaml”配置文件中定义。 在Java Chassis微服务架构开发的项目中,应用名称通常在项目下各组件的“microservice.yaml”配置文件中定义。 配置文件一般都存放于您当前项目各组件目录下的“/src/main/resources/”路径下。 ServiceStage应用下的各组件实例接入微服务引擎后,其微服务实例“所属应用”名称就是各组件下的配置文件中所定义的应用名称。
  • 应用压缩包内目录总体结构说明 Java应用压缩包示例:https://github.com/servicestage-demo/example/tree/master/servicestage-vm-demo/demoJavaExample.zip Tomcat应用压缩包示例:https://github.com/servicestage-demo/example/tree/master/servicestage-vm-demo/demoTomcatExample.zip 以Java应用压缩包demoJavaExample.zip为例,应用压缩包内目录总体结构说明如下: demoJavaExample/│├── scripts/│ │ ├── pre-stop.sh│ │ ├── stop.sh│ │ ├── uninstall.sh│ │ ├── install.sh│ │ ├── start.sh│ │ ├── check.sh│ │ ├── post-start.sh├── packages/│ │ ├── weather-1.0.0.jar├── config/│ │ ├── system.cfg├── appspec.yml 压缩包名前缀必须和解压后的文件目录名一致。例如压缩包名为demoJavaExample.zip,解压后文件目录必须为demoJavaExample。 应用压缩包内各个目录及文件的作用说明如下: scripts:必选目录,存储的是应用各个生命周期执行的脚本文件。
  • 脚本编写说明 Servicestage在执行脚本时的目录结构如下所示: APP_HOME/│├── scripts/│ │ ├── pre-stop.sh│ │ ├── stop.sh│ │ ├── uninstall.sh│ │ ├── install.sh│ │ ├── start.sh│ │ ├── check.sh│ │ ├── post-start.sh│ ├──packages/│ │ ├── my-app.jar/my-app.war├── config/│ │ ├── system.cfg├── servicestage-vmapp/│ │ ├── application.conf├── jre1.8├── apache-tomcat-8.5.82
  • appspec.yml文件说明 如下所示,appspec.yml文件定义了整个部署的流程以及部署过程中使用到的环境变量和健康检查等内容。 spec: # 应用运行自定义用户 deps: - name: "@os/linux/user@1.0" user: www group: www home: /home/www # 直接引入应用lifecycle脚本环境变量 env: - name: APP_ENV value: "{{app.env}}" # 以文件形式引入保存于/opt/application/${appName}/${appVersion}/${instanceId}/servicestage-vmapp/application.conf的应用lifecycle脚本环境变量 value: - name: APP_VALUE value: "{{app.value}}" # 应用健康检查 probes: # 接口健康检查 # health: # exec: # method: GET # request: http://127.0.0.1:8080/healthcheck # timeout: 5 # 脚本命令健康检查 liveness: exec: command: - ps -ef | grep ${APP_HOME}/apache-tomcat-*/bin/bootstrap.jar | grep -v grep # 目前只支持APP_HOME可以取到环境变量 timeout: 300 runas: www # 应用lifecycle脚本 lifecycle: install: - command: scripts/install.sh timeout: 300 check: - command: scripts/check.sh timeout: 300 runas: www start: - command: scripts/start.sh timeout: 300 runas: www post-start: - command: scripts/post-start.sh timeout: 300 runas: www pre-stop: - command: scripts/pre-stop.sh timeout: 300 runas: www stop: - command: scripts/stop.sh timeout: 300 runas: www uninstall: - command: scripts/uninstall.sh timeout: 300
  • tomcat的logging.properties说明 您需要自行准备logging.properties,将其复制到tomcat的目录下,复制代码示例如下: #!/bin/bash. ${APP_HOME}/servicestage-vmapp/application.conf cp ${APP_HOME}/conf/logging.properties ${TOMCAT_STACK_HOME}/conf/logging.properties logging.properties可以参考如下内容,使用时将@{LOG_FILE_PATH_APP}替换为真正的日志目录。 handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler1catalina.org.apache.juli.AsyncFileHandler.level = FINE1catalina.org.apache.juli.AsyncFileHandler.directory = @{LOG_FILE_PATH_APP}1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.2localhost.org.apache.juli.AsyncFileHandler.level = FINE2localhost.org.apache.juli.AsyncFileHandler.directory = @{LOG_FILE_PATH_APP}2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.3manager.org.apache.juli.AsyncFileHandler.level = FINE3manager.org.apache.juli.AsyncFileHandler.directory = @{LOG_FILE_PATH_APP}3manager.org.apache.juli.AsyncFileHandler.prefix = manager.4host-manager.org.apache.juli.AsyncFileHandler.level = FINE4host-manager.org.apache.juli.AsyncFileHandler.directory = @{LOG_FILE_PATH_APP}4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.java.util.logging.ConsoleHandler.level = FINEjava.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatterorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFOorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandlerorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFOorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandlerorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFOorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandlerorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFOorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandlerorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFOorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandlerorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFOorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler
  • config说明 system.cfg文件 设置config参数 在使用虚拟机部署方式创建并部署组件时,您可以参考添加配置项设置一些配置项,ServiceStage会将设置的配置项以键值对的形式存储在${APP_HOME}/config/system.cfg文件中。您也可以预置一些配置参数在config里面,格式参考示例如下: # system.cfg文件中存储内容的格式key1=value1key2=value2 引用config参数 引用config参数的方法示例如下: #!/bin/bash . ${APP_HOME}/config/system.cfg . ${APP_HOME}/config/user_config.cfg echo ${key1} server.xml文件 请参考tomcat的server.xml说明。 logging.properties文件 请参考tomcat的logging.properties说明。
  • 策略鉴权规则 用户在发起访问请求时,系统根据用户被授予的访问策略中的action进行鉴权判断。鉴权规则如下: 图1 系统鉴权逻辑图 用户发起访问请求。 系统在用户被授予的策略中寻找请求对应的action,优先寻找Deny指令。如果找到一个适用的Deny指令,系统将返回Deny决定。 如果没有找到Deny指令,系统将寻找适用于请求的任何Allow指令。如果找到一个Allow指令,系统将返回Allow决定。 如果找不到Allow指令,最终决定为Deny,鉴权结束。 父主题: 策略
  • 企业联邦用户登录 企业联邦用户是在企业管理系统中创建的用户,账号在 IAM 控制台创建身份提供商后,企业联邦用户可以登录华为云并根据对应权限使用云服务。详情请参考:身份提供商概述。 如果您已知创建该身份提供商的华为云账号名称、身份提供商名称、企业管理系统的账号和密码,可以通过此方式登录华为云。 在华为云的登录页面,单击登录下方的“企业联邦用户”,在“企业联邦身份登录”页面,输入账号名,选择身份提供商名称。 图8 企业联邦身份登录 原华为云账号名/租户名:创建身份提供商的华为云账号名称。如果不知道账号名,请向管理员获取。 身份提供商名称:管理员创建身份提供商时,设置的名称。如果不知道身份提供商名称,请向管理员获取。 单击“前往登录”,跳转至企业管理系统登录页面。 在企业管理系统登录页面,输入企业管理系统用户名、密码。 单击“登录”,登录华为云。
  • IAM用户登录 IAM用户是由华为云账号或管理员在IAM中创建的用户,是云服务的使用人员,具有独立的身份凭证(密码和访问密钥),根据账号授予的权限使用资源。IAM用户不进行独立的计费,由所属账号统一付费。 账号与IAM用户可以类比为父子关系,如下图所示。 图6 账号与IAM用户 IAM用户登录方法如下: 在华为云的登录页面,单击登录下方的“IAM用户”,在“IAM用户登录”页面,输入账号名,IAM用户名/邮件地址和密码。 图7 IAM用户登录 租户名/原华为云账号:IAM用户所属的账号,即华为云账号。如果不知道账号名,请向管理员获取。 IAM用户名/邮件地址:在IAM创建用户时,输入的IAM用户名/邮件地址。如果不知道用户名及初始密码,请向管理员获取。 IAM用户密码:IAM用户的密码,非账号密码。 单击“登录”,登录华为云。
  • 批量修改IAM用户信息 IAM支持批量修改IAM用户状态、访问方式、验证方式、登录密码、手机和邮件地址,修改方式类似,以修改IAM用户状态为例,说明批量修改IAM用户信息的方法。 进入IAM控制台,在左侧导航栏选择“用户”页签。 在用户列表中,勾选需要修改的用户。勾选完成后,单击用户列表上方的“编辑”。 图7 编辑用户信息 选择需要修改的IAM用户属性,以修改IAM用户状态为例,选择“状态”。 图8 选择状态 选择要给IAM用户配置的目标状态,若要停用IAM用户则选择“停用”,启用IAM用户则选择“启用”。 图9 修改状态 请排查用户是否有其他服务或场景在使用,停用正在使用的用户可能会对业务产生影响。 单击“确定”,确定IAM用户配置。 单击“确认”,完成所选IAM用户状态的修改。
  • 什么是边缘安全? 边缘安全(Edge Security,EdgeSec)是建立在边缘节点上的安全防护服务。 边缘安全加速(Edge Security Acceleration,ESA)是边缘安全服务的子产品,提供“缓存加速+应用安全”的一体化服务,支持网络加速以及Web攻击防护、DDoS防护、CC防护等多项安全功能,全面提升加速网络的安全防护能力,保障用户优质的访问体验和业务安全。 父主题: 产品咨询
  • 为什么Cookie中有HWEdgeSecSESID或HWEdgeSecSESTIME字段? HWEdgeSecSESID:会话ID;HWEdgeSecSESTIME:会议时间戳;这两个字段用于标记请求,如CC防护规则中用户计数。 防护域名/IP接入边缘安全后,边缘安全会在客户请求Cookie中插入HWEdgeSecSESID(会话ID),HWEdgeSecSESTIME(会话时间戳)等字段,这些字段服务于边缘安全统计和安全特性。 父主题: 功能咨询
  • 概述 针对不同的环境,您可以参考如下方式完成快速安装: 在Windows系统上安装KooCLI 在Linux系统上安装KooCLI 在MacOS系统上安装KooCLI 在Docker中配置和使用KooCLI 您也可以从下表中直接下载适配您目标系统的KooCLI到本地,再将其上传至您的目标机器,解压后即可使用: 表1 下载地址 操作系统 下载地址 隐私声明 Windows 64位 KooCLI-windows-amd64.zip KooCLI-windows-amd64.zip_sha256 详见《隐私政策声明》 Linux AMD 64位 KooCLI-linux-amd64.tar.gz KooCLI-linux-amd64.tar.gz_sha256 Linux ARM 64位 KooCLI-linux-arm64.tar.gz KooCLI-linux-arm64.tar.gz_sha256 macOS AMD 64位 KooCLI-mac-amd64.tar.gz KooCLI-mac-amd64.tar.gz_sha256 macOS ARM 64位 KooCLI-mac-arm64.tar.gz KooCLI-mac-arm64.tar.gz_sha256 KooCLI下载地址是不带sha256后缀结尾的链接,带sha256后缀结尾的下载链接仅为对应软件包的校验文件。 例如:Windows 64位的下载链接是KooCLI-windows-amd64.zip,它的校验文件下载链接则是KooCLI-windows-amd64.zip_sha256。 父主题: 步骤二:快速安装
  • 在Docker中配置和使用KooCLI 在Docker中配置和使用KooCLI,请遵循如下步骤(以创建Linux系统ubuntu发行版的Docker容器为例): 在按步骤执行之前,请确保您已经安装Docker。有关安装说明,请参阅 Docker 网站。可运行以下命令确认是否安装Docker: docker --version 创建Dockerfile文件 新建目录并在该目录下创建名为Dockerfile的纯文本文件,文件内容如下: FROM ubuntu:latestRUN apt-get update -y && apt-get install curl -y# 一键式安装KooCLIRUN curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh -yWORKDIR hcloud Dockerfile文件名带有大写字母D,且没有文件扩展名,每个目录只能保存一个。 hcloud_install.sh文件为一键式安装KooCLI的脚本文件,其对应的软件包校验文件为hcloud_install.sh.sha256 可在上述Dockerfile文件中追加如下内容,指定启动容器时运行的程序为KooCLI: ENTRYPOINT ["/usr/local/bin/hcloud"] 其后,以该文件构建的docker镜像所启动的容器仅支持执行单条KooCLI命令,详情见后文所示。 构建镜像 在此目录下运行以下命令来构建名为“hcloudcli”的Docker镜像: docker build --no-cache -t hcloudcli . ... 命令末尾的“.”指在当前目录中构建Docker镜像,不可省略。 在Dockerfile文件中追加“ENTRYPOINT ["/usr/local/bin/hcloud"]”时,在构建镜像时会有如下提示: 镜像构建成功后使用以下命令查看构建的镜像: docker images 使用镜像 用法一:基于“hcloudcli”镜像创建后台运行容器,并在容器中执行命令。 docker run -it -d --name hcloudcli hcloudcli 运行如下命令查看已启动的Docker容器: docker ps 运行如下命令进入Docker容器,进入到容器后KooCLI的使用方式与直接在宿主机上使用相同: docker exec -it hcloudcli /bin/bash 使用完成后,执行如下命令退出“hcloudcli”容器: exit 要完全停止“hcloudcli”容器运行,可执行如下命令: docker stop hcloudcli 用法二:基于“hcloudcli”镜像创建临时容器,并执行命令。 创建临时容器,并执行命令: docker run --rm -it hcloudcli ${command} 使用未追加“ENTRYPOINT ["/usr/local/bin/hcloud"]”的Dockerfile创建的Docker镜像,在执行“docker run”命令时需指定运行的程序为“hcloud”。如下所示: 使用追加了“ENTRYPOINT ["/usr/local/bin/hcloud"]”的Dockerfile创建的Docker镜像,则不需要指定运行程序。此时“docker run --rm -it hcloudcli”命令等效于在宿主机上直接执行“hcloud”命令。如下所示: 使用追加了“ENTRYPOINT ["/usr/local/bin/hcloud"]”的Dockerfile创建的Docker镜像,执行“docker run”时仅支持KooCLI相关命令。 创建临时容器,向容器共享宿主机文件(以Linux系统的宿主机为例),并执行命令: 通过宿主机系统目录和容器目录的挂载,将宿主机文件共享到容器: 示例1:通过将宿主机系统的/root/.hcloud/目录挂载到容器的/root/.hcloud/目录下,将宿主机配置文件共享到容器: docker run --rm -it -v /root/.hcloud/:/root/.hcloud/ hcloudcli ${command} 示例2:通过将宿主机系统的目录/cli挂载到容器的当前目录下,将宿主机该目录下的“test.json”文件共享到容器: docker run --rm -it -v /root/.hcloud/:/root/.hcloud/ -v /cli:$(pwd) hcloudcli ${command} 创建临时容器,向容器共享宿主机环境变量(以Linux系统的宿主机为例),执行命令: 通过“-e”标志共享宿主机的环境变量到容器中: docker run --rm -it -e ${envName} hcloudcli ${command} 给命令起别名(以Linux系统的宿主机为例),以简化命令。以使用追加了“ENTRYPOINT ["/usr/local/bin/hcloud"]”的Dockerfile创建的Docker镜像为例,执行如下命令,给原命令起别名为“hcloud”: alias hcloud='docker run --rm -it hcloudcli' 后续可使用别名执行原命令。如下所示: 更新镜像 已构建的镜像,其中的KooCLI版本为镜像构建时的最新版本。若要保证镜像中使用最新版本,重新构建镜像即可。 卸载镜像 执行如下命令卸载“hcloudcli”镜像: docker rmi hcloudcli 父主题: 步骤二:快速安装
  • 在Windows系统上安装KooCLI 点此下载适配Windows系统的KooCLI。 解压后得到hcloud.exe文件,如下图所示。 图1 在Windows系统下载并解压后的hcloud.exe文件 (可选)将KooCLI所在目录加入到系统环境变量Path中,方便在cmd窗口的任意目录下使用hcloud命令。 Windows 10 和 Windows 8 搜索并选择“查看高级系统设置”,然后单击“环境变量”; Windows 7 右键单击桌面上的“计算机”图标,从菜单中选择“属性”。单击“高级系统设置”链接,然后单击“环境变量”。 进入环境变量图形界面,在“用户变量”列表中,选中变量名为“Path”的环境变量,单击“编辑”。 在编辑环境变量界面中单击“新建”,输入hcloud.exe文件所在目录的路径。 单击三次“确定”,即可保存该修改。 (可选)打开cmd窗口,执行如下命令查看环境变量是否包含hcloud.exe文件所在目录,存在即说明配置成功。 set path (可选)打开Windows系统的cmd窗口(若您未执行如上步骤3,需要进入到工具所在的目录中),输入并执行如下命令,验证KooCLI是否安装成功。 hcloud version 系统显示类似如下版本信息,表示安装成功: hcloud version当前KooCLI版本:3.2.8 父主题: 步骤二:快速安装
  • 步骤三:初始化配置(可选) 本节以Windows系统为例介绍KooCLI的使用,Linux和Mac系统的使用基本相同,可参考。 如果您希望以无配置方式使用KooCLI,可跳过此步骤;若您希望以非交互方式添加配置项,请参考新增或修改配置项。 KooCLI初始化命令用于将常用的永久AK/SK和区域信息存储在配置文件中,如下表所示,避免使用时频繁输入这些固定信息: 表1 初始化时的参数 参数 说明 Access Key ID 访问密钥(永久AK/SK)中的访问密钥ID,简称AK,初始化时必填。 Secret Access Key 访问密钥(永久AK/SK)中的密码访问密钥,简称SK,初始化时必填。 Region 区域,如cn-north-4,初始化时选填。 可通过如下命令进行初始化配置,输入命令后按回车进入交互模式,根据界面提示输入各参数值: hcloud configure init hcloud configure init开始初始化配置,其中"Secret Access Key"输入内容匿名化处理,获取参数可参考'https://support.huaweicloud.com/usermanual-hcli/hcli_09.html'Access Key ID [required]: ********Secret Access Key [required]: ****Secret Access Key (again): ****Region: cn-north-4************************************************************* ********** 初始化配置成功 ********** ************************************************************* 初始化过程中,“Secret Access Key”的值需要二次确认。为保障您的账号安全,对您输入的“Secret Access Key”进行了匿名化处理。在您输入过程中不会显示输入的字符,在输入结束回车至下一行时,会以“*”回显您的输入内容。在配置完成后,KooCLI会在本地加密保存配置项中的认证相关的敏感信息。 如果重新执行初始化命令,则会在删除原配置文件后重新生成新的配置文件,配置文件保存地址如下: Windows系统: C:\Users\{您的Windows系统用户名}\.hcloud\config.json Linux系统: /home/{当前用户名}/.hcloud/config.json Mac系统: /Users/{当前用户名}/.hcloud/config.json 完成初始化后,可通过如下命令查询配置信息。KooCLI1.2.7以前的版本密文显示查询结果中的敏感信息;1.2.7及以后的版本匿名化显示查询结果中的敏感信息。 hcloud configure show --cli-profile=default hcloud configure show --cli-profile=default{ "name": "default", "mode": "AKSK", "accessKeyId": "********", "secretAccessKey": "****", "securityToken": "", "region": "cn-north-4", "projectId": "", "domainId": "", "skipSecureVerify": "false", "readTimeout": 10, "connectTimeout": 5, "retryCount": 0}
  • 一键式安装 请使用如下命令一键式安装KooCLI: curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh 如上命令默认将KooCLI下载至“/usr/local/hcloud/”目录,并移动到“/usr/local/bin/”目录下,方便在任意目录下使用hcloud命令(完成本步骤之前,请确保PATH系统变量值中存在“/usr/local/bin/”路径)。 您可在该命令执行过程中根据交互信息修改文件下载目录等。如执行过程中提示权限不足,您可切换至root用户重新执行安装命令。 若您希望使用其默认配置且跳过交互模式,可在该命令末尾添加“-y”,如下: curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh -y hcloud_install.sh文件为一键式安装KooCLI的脚本文件,其对应的软件包校验文件为hcloud_install.sh.sha256
  • 入门流程 本节以Windows系统为例介绍KooCLI的使用,Linux和MacOS系统的使用基本相同,可参考。 KooCLI最基础的入门操作包括:快速安装、初始化配置信息,查看与执行云服务操作命令。 图1为KooCLI大致的入门流程,本入门指导旨在帮助您对其操作有初步的认识。 图1 入门流程 注册华为帐号,创建IAM用户并授权,获取访问密钥等,请参见步骤一:准备工作。 使用KooCLI调用 API Explorer 中各云服务开放的API,管理和使用您的各类云服务资源前,需要先下载对应操作系统的KooCLI,请参见步骤二:快速安装。 使用KooCLI时,需要获取调用者的身份信息用以认证鉴权。如您不是以无配置方式使用,那么您需要先配置相关的认证信息,具体配置方法请参见步骤三:初始化配置。 完成配置后,即可使用KooCLI管理和使用您的各类云服务资源,方法请参见步骤四:查看与执行云服务操作命令。
  • 修改已初始化的配置项 KooCLI目前支持在配置项中以如下组合方式配置认证参数:访问密钥(永久AK/SK),临时安全凭证(临时AK/SK和SecurityToken)两种。 其中,临时安全凭证(临时AK/SK和SecurityToken)具有时效性。 初始化配置信息时,配置项的名称为“default”,且初始化时配置项中只允许配置永久AK/SK。如果您要使用其他认证方式,或修改初始化的配置项中的参数值,可使用“hcloud configure set --cli-profile=default --key1=value1...”命令,详情请参考新增或修改配置项。
  • 创建IAM用户并授权 使用KooCLI管理和使用您的各类云服务资源时,需提供调用者(IAM用户)的身份信息用于认证鉴权。 IAM用户是由华为帐号在IAM中创建的用户,是云服务的使用人员,具有独立的身份凭证,根据华为帐号授予的权限使用资源,可以确保华为帐号及资源的安全性。IAM用户不进行独立的计费,由所属华为帐号统一付费。 您注册华为云后,系统自动创建华为帐号对应的IAM用户,该用户在IAM中标识为“企业管理员”,其权限无法修改。出于业务需要,您可以另外创建IAM用户,并根据实际需要给IAM用户授权。
  • 一键式安装 请使用如下命令一键式安装KooCLI: curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh 如上命令默认将KooCLI下载至“/usr/local/hcloud/”目录,并移动到“/usr/local/bin/”目录下,方便在任意目录下使用hcloud命令(完成本步骤之前,请确保PATH系统变量值中存在“/usr/local/bin/”路径)。 您可在该命令执行过程中根据交互信息修改文件下载目录等。如执行过程中提示权限不足,您可切换至root用户重新执行该安装命令。 若您希望使用其默认配置且跳过交互模式,可在该命令末尾添加“-y”,如下: curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh -y hcloud_install.sh文件为一键式安装KooCLI的脚本文件,其对应的软件包校验文件为hcloud_install.sh.sha256 命令执行过程中,如遇报错“sha256sum:command not found”,请安装“sha256sum”后再次执行命令。
  • 开始使用 在开始使用之前,请确保您安装的是最新版本的SDK。使用过时的版本可能会导致兼容性问题或无法使用最新功能。您可以通过运行以下命令来检查并更新SDK至最新版本。 pip show huaweicloudsdkcorepip show huaweicloudsdkocrpip install --upgrade huaweicloudsdkcorepip install --upgrade huaweicloudsdkocr 导入依赖模块 from huaweicloudsdkcore.auth.credentials import BasicCredentialsfrom huaweicloudsdkcore.exceptions import exceptionsfrom huaweicloudsdkcore.http.http_config import HttpConfig# 导入指定云服务的库 huaweicloudsdk{service}from huaweicloudsdkocr.v1.region.ocr_region import OcrRegionfrom huaweicloudsdkocr.v1 import * 配置客户端连接参数 默认配置 # 使用默认配置,如出现'HttpConfig' is not defined报错,请检查是否已正确安装sdkconfig = HttpConfig.get_default_config() 网络代理(可选) # 根据需要配置网络代理config.proxy_protocol = 'http'config.proxy_host = 'proxy.huaweicloud.com'config.proxy_port = 80config.proxy_user = 'username'config.proxy_password = 'password' 超时配置(可选) # 默认连接超时时间为60秒,读取超时时间为120秒,支持统一指定超时时长timeout=timeout,或分别指定超时时长timeout=(connect timeout, read timeout)config.timeout = 120 SSL配置(可选) # 根据需要配置是否跳过SSL证书校验config.ignore_ssl_verification = True# 配置服务器端CA证书,用于SDK验证服务端证书合法性config.ssl_ca_cert = ssl_ca_cert 客户端连接参数配置完成后需在初始化客户端client中配置“with_http_config(config)”相应的代码,详情请参见4.初始化客户端(二选一)中的client后的代码。 配置认证信息 配置AK、SK、project_id信息。华为云通过AK识别用户的身份,通过SK对请求数据进行签名验证,用于确保请求的机密性、完整性和请求者身份的正确性。有两种认证方式,分别如下。 初始化认证信息: ak = os.environ.get("HUAWEICLOUD_SDK_AK")sk = os.environ.get("HUAWEICLOUD_SDK_SK") 认证用的 ak 和sk 硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 本示例以 ak 和 sk 保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 使用永久AK和SK credentials = BasicCredentials(ak, sk, project_id) 使用临时AK和SK credentials = BasicCredentials(ak, sk, project_id).with_security_token(security_token) 认证参数说明: ak、sk:访问密钥信息,获取方法请参见准备工作。 project_id:华为云项目ID,获取方法请参见准备工作。 security_token:临时认证场景下的安全票据,可以通过token获取或者通过委托授权获取。 初始化客户端(二选一) 指定region方式(推荐) # 增加region依赖from huaweicloudsdkocr.v1.region.ocr_region import OcrRegion# 初始化指定云服务的客户端 {Service}Client ,以初始化OCR服务的 OcrClient 为例client = OcrClient.new_builder() \ .with_http_config(config) \ .with_credentials(credentials) \ .with_region(OcrRegion.value_of("cn-north-4")) \ .build() 指定云服务endpoint方式 # 指定终端节点,以 OCR 服务北京四的 endpoint 为例endpoint = "https://ocr.cn-north-4.myhuaweicloud.com"# 初始化指定云服务的客户端 {Service}Client ,以初始化OCR服务的 OcrClient 为例client = OcrClient.new_builder() \ .with_http_config(config) \ .with_credentials(credentials) \ .with_endpoint(endpoint) \ .build() endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看 地区和终端节点 。 发送请求并查看响应 # 以调用通用 表格识别 接口 RecognizeGeneralTable 为例request = RecognizeGeneralTableRequest()request.body = GeneralTableRequestBody( url="图片的url" )response = client.recognize_general_table(request)print(response) 异常处理 表1 异常处理 一级分类 一级分类说明 二级分类 二级分类说明 ConnectionException 连接类异常 HostUnreachableException 网络不可达、被拒绝。 SslHandShakeException SSL认证异常。 RequestTimeoutException 响应超时异常 CallTimeoutException 单次请求,服务器处理超时未返回。 RetryOutageException 在重试策略消耗完成后,仍无有效的响应。 ServiceResponseException 服务器响应异常 ServerResponseException 服务端内部错误,Http响应码:[500,]。 ClientRequestException 请求参数不合法,Http响应码:[400, 500) # 异常处理try: request = RecognizeGeneralTableRequest() response = client.recognize_general_table(request) print(response)except exceptions.ClientResponseException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
  • 安装SDK 支持Python3及以上版本,执行python --version检查当前Python的版本信息。 使用SDK前,需要安装“huaweicloudsdkcore”和“huaweicloudsdkocr”,有两种安装方式,分别如下。 使用pip安装 #回显Successfully installed xxx表示安装成功# 安装核心库pip install huaweicloudsdkcore# 安装OCR服务库pip install huaweicloudsdkocr 使用源码安装 SDK版本可通过 SDK中心 查询。 # 安装核心库cd huaweicloudsdkcore-${version}python setup.py install# 安装OCR服务库cd huaweicloudsdkocr-${version}python setup.py install
共100000条
提示

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