云服务器内容精选

  • 请求示例 创建环境,环境名称为“test”,组织名“cae-test”,绑定虚拟私有云VPC。 POST https://{endpoint}/v1/{project_id}/cae/environments { "api_version" : "v1", "kind" : "Environment", "metadata" : { "annotations" : { "vpc_id" : "9b320498-6c39-4fe7-a758-79636dd68a82", "group_name" : "cae-test", "type" : "exclusive", "subnet_id" : "1c75734a-132c-459f-86e2-a3db86a66b86", "security_group_id" : "e6c5a41d-8f47-48bd-a21b-0a4b10766aef" }, "name" : "test" } }
  • 请求示例 更新监控系统配置。 PUT https://{endpoint}/v1/{project_id}/cae/monitor-system/{monitor_system_id} { "api_version" : "v1", "kind" : "MonitorSystem", "spec" : { "type" : "opentelemetry", "access_token" : "******", "apm_application" : "default", "image_pull_policy" : "Always", "version" : "1.32.0.14", "instrumentation" : "automatic" } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 X-Environment-ID 是 String 环境ID。 获取环境ID,通过《云应用引擎API参考》的“获取环境列表”章节获取环境信息。 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息,其中id字段即是环境ID。 表3 请求Body参数 参数 是否必选 参数类型 描述 api_version 否 String API版本,固定值“v1”,该值不可修改。 枚举值: v1 kind 否 String API类型,固定值“MonitorSystem”,该值不可修改。 枚举值: MonitorSystem spec 否 MonitorSystemRequestBodySpec object 创建或更新监控系统配置。 表4 MonitorSystemRequestBodySpec 参数 是否必选 参数类型 描述 type 是 String 采集方式。 枚举值: opentelemetry apm2 instrumentation 是 String 探针注入方式。 枚举值: manual automatic access_key 否 String apm2访问密钥Key。 access_value 否 String apm2访问密钥value。 access_token 否 String apm2 opentelemetry接入token。 apm_application 是 String apm2应用。 version 是 String 增强型探针/opentelemetry探针版本。 image_pull_policy 是 String 探针镜像更新策略。 枚举值: Always IfNotPresent
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 api_version String API版本,固定值“v1”,该值不可修改。 kind String 资源种类。 spec SecretDetail object 表6 SecretDetail 参数 参数类型 描述 id String 凭据ID name String 凭证名字。 if_update_available Boolean 当前凭据是否有更新版本。 secret_status String 凭据在DEW的状态。 status String 凭据在CAE使用状态。 version_id String 当前使用的凭证版本号。 modified_time Integer 当前版本凭证在dew的创建时间。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 X-Environment-ID 是 String 环境ID。 获取环境ID,通过《云应用引擎API参考》的“获取环境列表”章节获取环境信息。 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息,其中id字段即是环境ID。 表3 请求Body参数 参数 是否必选 参数类型 描述 api_version 是 String API版本,固定值“v1”,该值不可修改。 kind 是 String 资源种类。 spec 是 CreateOrUpdateSecretDetail object 表4 CreateOrUpdateSecretDetail 参数 是否必选 参数类型 描述 name 是 String 凭证名字。 version_id 是 String 当前使用的凭证版本号。 modified_time 是 Integer 当前版本凭证在dew的创建时间。
  • 请求示例 创建云数据库RDS组件配置,数据库名称为“cae”,地址为100.xx.xx.xxx,端口号为3306。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "rds", "data" : { "spec" : { "rds_id" : "a5fdee4cf88c4277a68688a014f444bdin01", "rds_db_name" : "cae", "rds_address" : "100.xx.xx.xxx", "rds_username" : "cae", "rds_password" : "xxx", "rds_port" : "3306" } } } ] } 创建微服务引擎CSE组件配置,配置中心地址:“https://192.168.1.xxx:30103,https://192.168.1.xxx:30103”,服务注册发现地址:“https://192.168.1.xxx:30100,https://192.168.1.xxx:30100”。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "cse", "data" : { "spec" : { "config_center_addr" : "https://192.168.1.xxx:30103,https://192.168.1.xxx:30103", "service_center_addr" : "https://192.168.1.xxx:30100,https://192.168.1.xxx:30100", "cse_id" : "25779525-1aac-44be-abda-f9164f1b41b8" } } } ] } 创建环境变量组件配置,配置时区为Asia/Shanghai,且注入一个名称为password的凭据做为环境变量。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "env", "data" : { "spec" : { "envs" : { "TZ" : "Asia/Shanghai" }, "env_references" : { "env_name" : "db_password", "value_from" : { "name" : "password", "reference_type" : "dewSecret" } } } } } ] } 创建内网访问方式和负载均衡类型的外网访问方式组件配置。 内网访问方式类型为ClusterIP,监听端口为80,访问端口为8080,协议为TCP。 外网访问方式类型为LoadBalancer,监听端口为80,访问端口为9090,协议为TCP,配置白名单访问控制,仅允许170.126.0.0/16网段的用户访问。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "access", "data" : { "spec" : { "items" : [ { "type" : "ClusterIP", "ports" : [ { "target_port" : 80, "port" : 8080, "protocol" : "TCP" } ] }, { "type" : "LoadBalancer", "access_control" : { "type" : "white", "ip_list" : [ "170.126.0.0/16" ] }, "elb_id" : "xxx", "ports" : [ { "target_port" : 80, "port" : 9090, "protocol" : "TCP" } ] } ] } } } ] } 创建转发策略类型的外网访问方式组件配置,如下请求示例配置了两条转发策略,两条策略的对外协议为HTTPS、负载均衡策略为默认策略,使用加权轮询算法、访问端口为8443,配置黑名单访问策略,不允许10.120.1.1和10.120.1.2这两个IP访问,安全策略为tls-1-2-strict,服务器默认证书是test。 第一条转发策略域名设置为test.example.com,URL匹配规则为前缀匹配,匹配路径为/test1,监听端口设置为80,第一条访问策略未配置域名证书对,使用默认证书test。 第二条转发策略域名设置为test.example.cn,URL匹配规则为前缀匹配,匹配路径为/test2,监听端口设置为80,第二条访问策略配置了域名证书对,使用域名证书对中的证书test1。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "access", "data" : { "spec" : { "items" : [ { "type" : "Ingress", "access_control" : { "type" : "black", "ip_list" : [ "10.120.1.1", "10.120.1.2" ] }, "ports" : [ { "port" : 8443, "protocol" : "HTTPS", "default_certificate" : "test", "policy" : "tls-1-2-strict", "target_port" : 80, "paths" : [ { "path" : "/test1", "url_match_mode" : "STARTS_WITH", "hostname" : "test.example.com" } ] }, { "port" : 8443, "protocol" : "HTTPS", "default_certificate" : "test", "certificate" : "test1", "policy" : "tls-1-2-strict", "target_port" : 80, "paths" : [ { "path" : "/test2", "url_match_mode" : "STARTS_WITH", "hostname" : "test.example.cn" } ] } ] } ] }, "metadata" : { "annotations" : { "kubernetes.io/elb.health-check-flag" : "off", "kubernetes.io/elb.lb-algorithm" : "ROUND_ROBIN" } } } } ] } 创建伸缩策略组件配置,配置最大实例数3个,最小实例数1个,cpu使用率30%,内存使用率30%,缩容冷却时间窗5分钟,每次最大缩容99个实例,最大扩容4个实例,禁止缩容功能关闭。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "scaling", "data" : { "spec" : { "scale_strategy" : "metric", "max_replica_count" : 3, "min_replica_count" : 1, "advanced" : { "scaledown_stabilization_seconds" : 300, "scaledown_rate" : 99, "scaleup_stabilization_seconds" : 0, "scaleup_rate" : 4, "disable_scaledown" : false }, "triggers" : [ { "metadata" : { "type" : "Utilization", "value" : "30" }, "type" : "cpu" }, { "metadata" : { "type" : "Utilization", "value" : "30" }, "type" : "memory" } ] } } } ] } 创建云存储配置组件配置(OBS桶配置、OBS并行文件系统、SFS3.0容量型配置),配置存储桶,挂载路径为/tmp,权限设置为读写;配置并行文件系统,挂载路径为/temp,权限设置为读写。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "volume", "data" : { "spec" : { "volumes" : [ { "volume_id" : "bef119d0-c7d1-4b58-9794-8b74faf80a59", "resource_name" : "test-nacos", "resource_type" : "obs", "resource_sub_type" : "object_bucket", "umask" : "0027", "mount_info" : [ { "path" : "/tmp", "access_mode" : "ReadWriteMany" } ] }, { "mount_info" : [ { "path" : "/temp", "access_mode" : "ReadWriteMany" } ], "volume_id" : "a061934d-52e3-4b36-aea7-6c51879f84c9", "resource_name" : "test", "resource_type" : "obs", "resource_sub_type" : "parallel_file_system", "umask" : "0027" } ] } } } ] } 创建健康检查组件配置(配置存活探针、就绪探针、启动探针)。 配置存活探针,类型为livenessProbe,检测周期10s,延迟时间1s,超时时间1s,成功阈值1,最大失败次数3,端口为80,协议HTTP,路径、请求头未设置。 配置就绪探针,类型为readinessProbe,检测周期10s,延迟时间0s(0可不传),超时时间1s,成功阈值1,最大失败次数3,端口为80,协议HTTP,路径、请求头未设置。 配置启动探针,类型为startupProbe,检测周期10s,延迟时间0s(0可不传),超时时间1s,成功阈值1,最大失败次数3,端口为80,协议HTTP,路径未设置,请求头设置x-auth-token。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "healthCheck", "data" : { "spec" : { "livenessProbe" : { "periodSeconds" : 10, "initialDelaySeconds" : 1, "timeoutSeconds" : 1, "successThreshold" : 1, "failureThreshold" : 3, "httpGet" : { "path" : "", "port" : 80, "httpHeaders" : [ ], "scheme" : "HTTP" } }, "startupProbe" : { "periodSeconds" : 10, "timeoutSeconds" : 1, "successThreshold" : 1, "failureThreshold" : 3, "httpGet" : { "path" : "", "port" : 80, "httpHeaders" : [ { "name" : "x-auth-token", "value" : "xxx" } ], "scheme" : "HTTP" } }, "readinessProbe" : { "periodSeconds" : 10, "timeoutSeconds" : 1, "successThreshold" : 1, "failureThreshold" : 3, "httpGet" : { "path" : "", "port" : 80, "httpHeaders" : [ ], "scheme" : "HTTP" } } } } } ] } 创建生命周期管理组件配置(配置启动后处理、停止前处理)。配置启动后命令脚本“/bin/sh -c "echo service start"”,配置停止前命令脚本“/bin/sh -c "echo service end"”。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "lifecycle", "data" : { "spec" : { "postStart" : { "exec" : { "command" : [ "/bin/sh", "-c", "echo service start" ] } }, "preStop" : { "exec" : { "command" : [ "/bin/sh", "-c", "echo service end" ] } } } } } ] } 创建自定义日志配置,创建自定义路径“/var/log/error.log”。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "log", "data" : { "spec" : { "log_paths" : [ "/var/log/error.log" ] } } } ] } 创建性能管理配置,探针注入方式为自动注入。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "apm2", "data" : { "spec" : { "instrumentation" : "automatic" } } } ] } 创建自定义监控指标配置,采集路径为/metrics,采集端口为2112,指定一个自定义监控指标,名称为myapp_processed_ops_total。 POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations { "api_version" : "v1", "kind" : "ComponentConfiguration", "items" : [ { "type" : "customMetric", "data" : { "spec" : { "path" : "/metrics", "port" : 2112, "metrics" : [ "myapp_processed_ops_total" ] } } } ] }
  • URI POST /v1/{project_id}/cae/applications/{application_id}/components/{component_id}/configurations 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取项目ID请参见获取项目ID。 application_id 是 String 应用ID。 component_id 是 String 组件ID。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 X-Environment-ID 是 String 环境ID。 获取环境ID,通过《云应用引擎API参考》的“获取环境列表”章节获取环境信息。 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息,其中id字段即是环境ID。 表3 请求Body参数 参数 是否必选 参数类型 描述 api_version 否 String API版本,固定值“v1”,该值不可修改。 枚举值: v1 kind 否 String API类型,固定值“MonitorSystem”,该值不可修改。 枚举值: MonitorSystem spec 否 MonitorSystemRequestBodySpec object 创建或更新监控系统配置。 表4 MonitorSystemRequestBodySpec 参数 是否必选 参数类型 描述 type 是 String 采集方式。 枚举值: opentelemetry apm2 instrumentation 是 String 探针注入方式。 枚举值: manual automatic access_key 否 String apm2访问密钥Key。 access_value 否 String apm2访问密钥value。 access_token 否 String apm2 opentelemetry接入token。 apm_application 是 String apm2应用。 version 是 String 增强型探针/opentelemetry探针版本。 image_pull_policy 是 String 探针镜像更新策略。 枚举值: Always IfNotPresent
  • 请求示例 创建监控系统配置。 POST https://{endpoint}/v1/{project_id}/cae/monitor-system { "api_version" : "v1", "kind" : "MonitorSystem", "spec" : { "type" : "opentelemetry", "access_token" : "******", "apm_application" : "default", "image_pull_policy" : "Always", "version" : "1.32.0.14", "instrumentation" : "automatic" } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 X-Environment-ID 是 String 环境ID。 获取环境ID,通过《云应用引擎API参考》的“获取环境列表”章节获取环境信息。 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息,其中id字段即是环境ID。
  • 基本概念 账号 用户注册华为云时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 华为云的区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 查看项目ID,请参考获取项目ID 图1 项目隔离模型 同样在我的凭证下,您可以查看项目ID。 企业项目 企业项目是项目的升级版,针对企业不同项目间资源的分组和管理,是逻辑隔离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 父主题: 使用前必读
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 X-Environment-ID 是 String 环境ID。 获取环境ID,通过《云应用引擎API参考》的“获取环境列表”章节获取环境信息。 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息,其中id字段即是环境ID。
  • 响应示例 状态码: 200 请求成功。 { "api_version" : "v1", "kind" : "Volume", "items" : [ { "id" : "a061934d-52e3-4b36-aea7-6c51879f84c9", "resource_name" : "test", "resource_sub_type" : "parallel_file_system", "resource_info" : { "capacity" : "0.00MB", "obsType" : "STANDARD", "region" : "region" }, "access" : "xxx", "time" : "2023-02-08T09:31:39.858115Z" }, { "id" : "bef119d0-c7d1-4b58-9794-8b74faf80a59", "resource_name" : "test-nacos", "resource_sub_type" : "object_bucket", "resource_info" : { "capacity" : "0.00MB", "obsType" : "STANDARD", "region" : "region" }, "access" : "xxx", "time" : "2023-02-08T09:31:49.232412Z" }, { "id" : "ece8ebcd-3f1e-4175-98ea-369036acbfce", "resource_name" : "test-nginx", "resource_sub_type" : "parallel_file_system", "resource_info" : { "capacity" : "0.00MB", "obsType" : "STANDARD", "region" : "region" }, "access" : "xxx", "time" : "2023-02-15T03:24:08.146911Z" } ] }
  • 调用API获取项目ID 项目ID通过调用查询指定条件下的项目列表API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见3.2 认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "cn-north-4", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens