client

package
v1.62.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2023 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type VmClient

type VmClient struct {
	core.JDCloudClient
}

func NewVmClient

func NewVmClient(credential *core.Credential) *VmClient

func (*VmClient) AssociateElasticIp

func (c *VmClient) AssociateElasticIp(request *vm.AssociateElasticIpRequest) (*vm.AssociateElasticIpResponse, error)

为云主机绑定弹性公网IP。

详细操作说明请参考帮助文档:[绑定弹性公网IP](https://docs.jdcloud.com/cn/virtual-machines/associate-elastic-ip)

## 接口说明 - 该接口只支持在实例的主网卡的主内网IP上绑定弹性公网IP。 - 一台云主机的主网卡的主内网IP只能绑定一个弹性公网IP,若已绑定弹性公网IP,操作绑定会返回错误。 - 弹性公网IP所在的可用区需要与云主机的可用区保持一致,或者弹性公网IP是全可用区类型的,才允许绑定操作。

func (*VmClient) AttachDisk

func (c *VmClient) AttachDisk(request *vm.AttachDiskRequest) (*vm.AttachDiskResponse, error)

为一台云主机挂载云硬盘。

详细操作说明请参考帮助文档:[挂载云硬盘](https://docs.jdcloud.com/cn/virtual-machines/attach-cloud-disk)

## 接口说明 - 云主机和云硬盘都没有正在进行中的的任务时才可以操作。 - 云主机状态必须是 `running` 或 `stopped` 状态。操作系统盘时必须先停止实例。 - 实例挂载云硬盘的数量,不能超过实例规格的限制。可查询 [DescribeInstanceTypes](https://docs.jdcloud.com/virtual-machines/api/describeinstancetypes) 接口获得指定规格可挂载云硬盘的数量上限。 - 实例可挂载的云硬盘类型,受实例规格限制。可查询 [DescribeInstanceTypes](https://docs.jdcloud.com/virtual-machines/api/describeinstancetypes) 接口获得指定规格支持挂载的云硬盘类型。 - 云硬盘作为系统盘时,容量不能小于40GB,并且不能超过500GB。 - 待挂载的云硬盘与云主机实例必须在同一个可用区下。 - 共享型云硬盘最多可挂载16个云主机实例,并且只能用作数据盘,不能用于系统盘。非共享型云盘最多只能挂载一个云主机实例。

func (*VmClient) AttachKeypair added in v1.51.0

func (c *VmClient) AttachKeypair(request *vm.AttachKeypairRequest) (*vm.AttachKeypairResponse, error)

为云主机实例绑定密钥。

详细操作说明请参考帮助文档:[绑定密钥](https://docs.jdcloud.com/cn/virtual-machines/bind-keypair)

## 接口说明 - 只支持为 linux 云主机实例绑定密钥。 - 每台云主机实例只支持绑定一个密钥。如果云主机绑定的密钥被删除了,那么该云主机还可以再次绑定密钥。

func (*VmClient) AttachNetworkInterface added in v1.0.5

func (c *VmClient) AttachNetworkInterface(request *vm.AttachNetworkInterfaceRequest) (*vm.AttachNetworkInterfaceResponse, error)

为云主机绑定弹性网卡。

详细操作说明请参考帮助文档:[绑定弹性网卡](https://docs.jdcloud.com/cn/virtual-machines/attach-eni)

## 接口说明 - 实例状态必须为 `running` 或 `stopped` 状态,同时实例没有正在进行中的任务时才可以操作。 - 实例中的主网卡是不可以解绑和绑定的,绑定弹性网卡只支持绑定辅助网卡。 - 目标弹性网卡上如果绑定了弹性公网IP,那么其所在的可用区需要与云主机的可用区保持一致,或者弹性公网IP是全可用区类型的,才允许绑定该弹性网卡。 - 弹性网卡与云主机必须在相同vpc下。 - 对于受管网卡,授权中不能含有 `instance-attach` 用户才可以挂载。 - 对于授信网卡,授权中必须含有 `instance-attach` 用户才可以挂载。 - 实例挂载弹性网卡的数量,不能超过实例规格的限制。可查询 [DescribeInstanceTypes](https://docs.jdcloud.com/virtual-machines/api/describeinstancetypes) 接口获得指定规格可挂载弹性网卡的数量上限。

func (*VmClient) CopyImages added in v1.0.5

func (c *VmClient) CopyImages(request *vm.CopyImagesRequest) (*vm.CopyImagesResponse, error)

镜像跨地域复制。

详细操作说明请参考帮助文档:[镜像复制](https://docs.jdcloud.com/cn/virtual-machines/copy-image)

## 接口说明 - 调用该接口将私有镜像复制到其它地域下。 - 只支持云盘系统盘的镜像。 - 不支持带有加密快照的镜像。

func (*VmClient) CreateImage

func (c *VmClient) CreateImage(request *vm.CreateImageRequest) (*vm.CreateImageResponse, error)

为云主机制作私有镜像。

详细操作说明请参考帮助文档:[基于实例创建私有镜像](https://docs.jdcloud.com/cn/virtual-machines/create-private-image)

## 接口说明 - 云主机实例没有正在进行中的任务时才可制作镜像。 - 本地系统盘的实例,仅支持关机(已停止)状态下制作私有镜像。 - 云盘系统盘的实例,支持开机(运行中)/关机(已停止)状态下制作私有镜像。 - 调用接口后,需要等待镜像状态变为 `ready` 后,才能正常使用镜像。 - 若当前实例系统盘为本地盘,则创建完成后的私有镜像为本地盘系统盘镜像;若当前实例系统盘为云硬盘,则创建完成后的私有镜像为云硬盘系统盘镜像。您可通过镜像类型转换 [convertImage](https://docs.jdcloud.com/Image/api/convertimage) 将本地盘系统盘镜像转换为云硬盘系统盘镜像后使用。 - 默认情况下,制作的镜像中包括数据盘中的云硬盘(制作快照),但是不包含本地数据盘。 - 如果需要变更打包镜像中的一些数据盘、或排除一些数据盘不需要制作快照,可通过 `dataDisks` 中的参数进行控制。

func (*VmClient) CreateImageFromSnapshots added in v1.60.0

func (c *VmClient) CreateImageFromSnapshots(request *vm.CreateImageFromSnapshotsRequest) (*vm.CreateImageFromSnapshotsResponse, error)

基于快照制作私有镜像,支持指定单个快照创建系统盘镜像;指定多个快照组合创建整机镜像

## 接口说明 - 快照须为可用状态,且需有指定快照的权限,快照数量为1-8块。 - 单块快照创建镜像,设备名必须为vda;多块快照创建镜像,设备名必须包含vda。 - 设置云盘的容量需大于快照容量。 - 调用接口后,需要等待镜像状态变为 ready 后,才能正常使用镜像。

func (*VmClient) CreateInstanceTemplate added in v1.10.0

func (c *VmClient) CreateInstanceTemplate(request *vm.CreateInstanceTemplateRequest) (*vm.CreateInstanceTemplateResponse, error)

创建实例模板。

实例模板是创建云主机实例的配置信息模板,包括镜像、实例规格、系统盘及数据盘类型和容量、私有网络及子网配置、安全组及登录信息等。实例模板可用于创建实例及用于配置高可用组(创建高可用组时必须指定实例模板)。使用实例模板创建实例时,无需重新指定实例模板已包括的参数,缩短您的部署时间。

请注意:实例模板一经创建后其属性将不能编辑,如需调整参数请重新创建实例模板替换使用。

详细操作说明请参考帮助文档:[创建实例模板](https://docs.jdcloud.com/cn/virtual-machines/create-instance-template)

## 接口说明 - 创建实例模板的限制基本与创建云主机一致,可参考 [创建云主机](https://docs.jdcloud.com/cn/virtual-machines/create-instance)。 - 实例模板中包含创建云主机的大部分配置参数,可以避免每次创建云主机时的重复性配置参数的工作。 - 使用实例模板创建云主机时,如果再次指定了某些参数,并且与实例模板中的参数相冲突,那么新指定的参数会替换模板中的参数,以新指定的参数为准。 - 使用实例模板创建云主机时,如果再次指定了镜像ID,并且与模板中的镜像ID不一致,那么模板中的 `systemDisk` 和 `dataDisks` 配置会失效,以新指定的镜像为准。 - 如果使用高可用组(Ag)创建云主机,那么Ag所关联的模板中的参数都不可以被调整,只能以模板为准。

func (*VmClient) CreateInstances

func (c *VmClient) CreateInstances(request *vm.CreateInstancesRequest) (*vm.CreateInstancesResponse, error)

创建一台或多台指定配置的云主机实例。

实例有三种创建方式,不同方式下传参详见下方的请求[参数说明](createInstance#requestparameters),也可参考请求[示例](createInstance#examples)。

1、自定义创建:按配置要求逐一指定参数创建; 2、使用实例模板创建:[实例模板](https://docs.jdcloud.com/virtual-machines/instance-template-overview)是实例配置信息的预配置,通过实例模板可快速创建实例,省去逐一配置参数的步骤。指定实例模板创建时,如不额外指定模板包含的参数将以模板为准创建实例,模板中未包含的参数,如可用区、内网IPv4地址、名称等仍需指定; 3、基于高可用组创建:[高可用组](https://docs.jdcloud.com/availability-group/product-overview)是一种高可用部署解决方案,提供了组内实例在数据中心内横跨多个故障域均衡部署的机制。高可用组须搭配实例模板使用,基于高可用组创建的实例将在其指定的可用区内以实例模板配置按一定分散机制创建实例。此创建方式下,实例创建参数除内网IPv4地址、名称等外均以实例模板为准且不支持再次指定。

详细操作说明请参考帮助文档:[创建实例](https://docs.jdcloud.com/cn/virtual-machines/create-instance)

## 接口说明 - 创建实例前,请参考 [创建前准备](https://docs.jdcloud.com/virtual-machines/account-preparation-linux) 完成实名认证、支付方式确认、计费类型选择等准备工作。 - 创建实例的配置说明和选择指导,请参考 [配置项说明](https://docs.jdcloud.com/cn/virtual-machines/select-configuration-linux)。 - 各地域下实例及关联资源(云硬盘、弹性公网IP)的可创建数量受配额限制,创建前请通过 [DescribeQuotas](https://docs.jdcloud.com/cn/virtual-machines/api/describequotas?content=API) 确认配额,如须提升请[提交工单](https://ticket.jdcloud.com/applyorder/submit)或联系京东云客服。 - 不同地域及可用区下售卖的实例规格有差异,可通过 [DescribeInstanceTypes](https://docs.jdcloud.com/virtual-machines/api/describeinstancetypes?content=API) 查询在售规格及规格详细信息。 - 通过本接口创建包年包月实例时将自动从账户扣款(代金券优先),如需使用第三方支付方式请通过控制台创建。 - 单次请求最多支持创建 `100` 台实例。 - 本接口为异步接口,请求下发成功后会返回RequestId和实例ID,此时实例处于 `Pending`(创建中)状态。如创建成功则实例自动变为 `Running`(运行中)状态;如创建失败则短暂处于 `Error`(错误)状态,随后将自动删除(创建失败的实例不会收费且会自动释放占用的配额)。实例状态可以通过 [describeInstanceStatus](https://docs.jdcloud.com/virtual-machines/api/describeinstancestatus?content=API) 接口查询。 - 批量创建多台实例时系统将尽可能完成目标创建数量,但受底层资源、配额等因素影响,可能存在部分成功部分失败的情况,还请关注最终完成数量,如有失败情况请尝试重新申请或联系客服。

func (*VmClient) CreateKeypair added in v1.1.0

func (c *VmClient) CreateKeypair(request *vm.CreateKeypairRequest) (*vm.CreateKeypairResponse, error)

创建密钥。

公钥和私钥都由京东云生成,公钥保存在京东云,私钥返回给用户,由用户保存。

详细操作说明请参考帮助文档:[创建密钥](https://docs.jdcloud.com/cn/virtual-machines/create-keypair)

## 接口说明 - 调用该接口创建密钥后,公钥部分存储在京东云,并返回未加密的 `PEM` 编码的 `PKCS#8` 格式私钥,您只有一次机会保存您的私钥。请妥善保管。

func (*VmClient) DeleteImage

func (c *VmClient) DeleteImage(request *vm.DeleteImageRequest) (*vm.DeleteImageResponse, error)

删除一个私有镜像。

详细操作说明请参考帮助文档:[删除私有镜像](https://docs.jdcloud.com/cn/virtual-machines/delete-private-image)

## 接口说明 - 已共享的私有镜像在取消共享关系前不可以删除,如私有镜像已共享给其他用户,请取消共享后再进行删除。 - 本地系统盘镜像在有基于其创建的云主机时,将无法删除。 - 只能操作私有镜像。 - 私有镜像没有正在处理中的任务时才可以删除。

func (*VmClient) DeleteInstance

func (c *VmClient) DeleteInstance(request *vm.DeleteInstanceRequest) (*vm.DeleteInstanceResponse, error)

删除一台云主机实例。

详细操作说明请参考帮助文档:[删除实例](https://docs.jdcloud.com/cn/virtual-machines/delete-instance)

## 接口说明

  • 不可以删除包年包月未到期的云主机。如果云主机为包年包月已到期的,并且用户处于白名单中,也不允许删除。
  • 不可以删除没有计费信息的云主机,该情况只限于创建过程中出现了异常。
  • 云主机状态必须为运行 `running`、停止 `stopped`、错误 `error`、状态,同时云主机没有正在进行中的任务才可以删除。
  • 如果云主机中挂载的数据盘为按配置计费的云硬盘且 `AutoDelete` 属性为 `true`,那么数据盘会随云主机一起删除。
  • 云主机中绑定的弹性公网IP可以选择是否随云主机一起删除。
  • 如出现不能删除的情况请 [提交工单](https://ticket.jdcloud.com/applyorder/submit) 或联系京东云客服。 [MFA enabled]

func (*VmClient) DeleteInstanceTemplate added in v1.10.0

func (c *VmClient) DeleteInstanceTemplate(request *vm.DeleteInstanceTemplateRequest) (*vm.DeleteInstanceTemplateResponse, error)

删除单个实例模板。

详细操作说明请参考帮助文档:[删除实例模板](https://docs.jdcloud.com/cn/virtual-machines/delete-instance-template)

## 接口说明 - 关联了高可用组的实例模板不可以删除。

func (*VmClient) DeleteKeypair added in v1.1.0

func (c *VmClient) DeleteKeypair(request *vm.DeleteKeypairRequest) (*vm.DeleteKeypairResponse, error)

删除密钥。

详细操作说明请参考帮助文档:[删除密钥](https://docs.jdcloud.com/cn/virtual-machines/delete-keypair)

## 接口说明 - 密钥删除后,使用该密钥的实例仍可正常使用与之匹配的本地私钥登录,且密钥仍会显示在实例详情中。 - 密钥删除后,与之关联的实例模板将变为不可用,并且与该实例模板关联的高可用组也会变为不可用。

func (*VmClient) DescribeBriefInstances added in v1.25.0

func (c *VmClient) DescribeBriefInstances(request *vm.DescribeBriefInstancesRequest) (*vm.DescribeBriefInstancesResponse, error)

查询一台或多台云主机实例的详细信息。该接口为轻量级接口,不返回云盘、网络、计费、标签等关联信息。如果不需要关联资源属性,尽量选择使用该接口。

详细操作说明请参考帮助文档:[查找实例](https://docs.jdcloud.com/cn/virtual-machines/search-instance)

## 接口说明 - 使用 `filters` 过滤器进行条件筛选,每个 `filter` 之间的关系为逻辑与(AND)的关系。 - 如果使用子帐号查询,只会查询到该子帐号有权限的云主机实例。关于资源权限请参考 [IAM概述](https://docs.jdcloud.com/cn/iam/product-overview)。 - 单次查询最大可查询100条云主机实例数据。 - 尽量一次调用接口查询多条数据,不建议使用该批量查询接口一次查询一条数据,如果使用不当导致查询过于密集,可能导致网关触发限流。 - 由于该接口为 `GET` 方式请求,最终参数会转换为 `URL` 上的参数,但是 `HTTP` 协议下的 `GET` 请求参数长度是有大小限制的,使用者需要注意参数超长的问题。

func (*VmClient) DescribeImage

func (c *VmClient) DescribeImage(request *vm.DescribeImageRequest) (*vm.DescribeImageResponse, error)

查询镜像详情。

详细操作说明请参考帮助文档:[镜像概述](https://docs.jdcloud.com/cn/virtual-machines/image-overview)

## 接口说明 - 该接口与查询镜像信息列表返回的信息一致。 - 只需要查询单个镜像信息的时候可以调用该接口。

func (*VmClient) DescribeImageConstraints

func (c *VmClient) DescribeImageConstraints(request *vm.DescribeImageConstraintsRequest) (*vm.DescribeImageConstraintsResponse, error)

查询单个镜像的实例规格限制。

详细操作说明请参考帮助文档:[镜像概述](https://docs.jdcloud.com/cn/virtual-machines/image-overview)

## 接口说明 - 该接口与批量查询镜像的实例规格限制返回的信息一致。 - 通过此接口可以查询镜像的实例规格限制信息。 - 只有官方镜像、第三方镜像有实例规格的限制,用户的私有镜像没有此限制。

func (*VmClient) DescribeImageConstraintsBatch added in v1.0.4

func (c *VmClient) DescribeImageConstraintsBatch(request *vm.DescribeImageConstraintsBatchRequest) (*vm.DescribeImageConstraintsBatchResponse, error)

批量查询镜像的实例规格限制。

详细操作说明请参考帮助文档:[镜像概述](https://docs.jdcloud.com/cn/virtual-machines/image-overview)

## 接口说明 - 通过此接口可以查询镜像的实例规格限制信息。 - 只有官方镜像、第三方镜像有实例规格的限制,用户的私有镜像没有此限制。

func (*VmClient) DescribeImageMembers

func (c *VmClient) DescribeImageMembers(request *vm.DescribeImageMembersRequest) (*vm.DescribeImageMembersResponse, error)

查询私有镜像共享给哪些京东云帐户。

详细操作说明请参考帮助文档:[共享私有镜像](https://docs.jdcloud.com/cn/virtual-machines/share-image)

## 接口说明 - 只允许查询用户的私有镜像。

func (*VmClient) DescribeImages

func (c *VmClient) DescribeImages(request *vm.DescribeImagesRequest) (*vm.DescribeImagesResponse, error)

查询镜像信息列表。

详细操作说明请参考帮助文档:[镜像概述](https://docs.jdcloud.com/cn/virtual-machines/image-overview)

## 接口说明 - 通过此接口可以查询到京东云官方镜像、第三方镜像、镜像市场、私有镜像、或其他用户共享给您的镜像。 - 请求参数即过滤条件,每个条件之间的关系为逻辑与(AND)的关系。 - 如果使用子帐号查询,只会查询到该子帐号有权限的镜像。关于资源权限请参考 [IAM概述](https://docs.jdcloud.com/cn/iam/product-overview)。 - 单次查询最大可查询100条镜像信息。 - 尽量一次调用接口查询多条数据,不建议使用该批量查询接口一次查询一条数据,如果使用不当导致查询过于密集,可能导致网关触发限流。 - 由于该接口为 `GET` 方式请求,最终参数会转换为 `URL` 上的参数,但是 `HTTP` 协议下的 `GET` 请求参数长度是有大小限制的,使用者需要注意参数超长的问题。

func (*VmClient) DescribeInstance

func (c *VmClient) DescribeInstance(request *vm.DescribeInstanceRequest) (*vm.DescribeInstanceResponse, error)

查询一台云主机实例的详细信息。

详细操作说明请参考帮助文档:[查找实例](https://docs.jdcloud.com/cn/virtual-machines/search-instance)

## 接口说明 - 该接口与查询云主机列表返回的信息一致。 - 只需要查询单个云主机实例详细信息的时候可以调用该接口。

func (*VmClient) DescribeInstancePrivateIpAddress added in v1.0.11

func (c *VmClient) DescribeInstancePrivateIpAddress(request *vm.DescribeInstancePrivateIpAddressRequest) (*vm.DescribeInstancePrivateIpAddressResponse, error)

查询一台或多台云主机实例的主网卡内网主IP地址。

弹性网卡说明请参考帮助文档:[弹性网卡](https://docs.jdcloud.com/cn/virtual-machines/attach-eni)

## 接口说明 - 使用 `filters` 过滤器进行条件筛选,每个 `filter` 之间的关系为逻辑与(AND)的关系。 - 单次查询最大可查询100条云主机实例数据。 - 尽量一次调用接口查询多条数据,不建议使用该批量查询接口一次查询一条数据,如果使用不当导致查询过于密集,可能导致网关触发限流。 - 由于该接口为 `GET` 方式请求,最终参数会转换为 `URL` 上的参数,但是 `HTTP` 协议下的 `GET` 请求参数长度是有大小限制的,使用者需要注意参数超长的问题。

func (*VmClient) DescribeInstanceStatus added in v1.0.4

func (c *VmClient) DescribeInstanceStatus(request *vm.DescribeInstanceStatusRequest) (*vm.DescribeInstanceStatusResponse, error)

查询一台或多台云主机实例的状态。

云主机实例的状态说明请参考帮助文档:[云主机状态](https://docs.jdcloud.com/cn/virtual-machines/api/vm_status)

## 接口说明 - 使用 `filters` 过滤器进行条件筛选,每个 `filter` 之间的关系为逻辑与(AND)的关系。 - 单次查询最大可查询100条云主机状态。 - 尽量一次调用接口查询多条数据,不建议使用该批量查询接口一次查询一条数据,如果使用不当导致查询过于密集,可能导致网关触发限流。 - 由于该接口为 `GET` 方式请求,最终参数会转换为 `URL` 上的参数,但是 `HTTP` 协议下的 `GET` 请求参数长度是有大小限制的,使用者需要注意参数超长的问题。

func (*VmClient) DescribeInstanceTemplate added in v1.10.0

func (c *VmClient) DescribeInstanceTemplate(request *vm.DescribeInstanceTemplateRequest) (*vm.DescribeInstanceTemplateResponse, error)

查询实例模板详情。

详细操作说明请参考帮助文档:[实例模板](https://docs.jdcloud.com/cn/virtual-machines/instance-template-overview)

## 接口说明 - 该接口与查询实例模板列表返回的信息一致。 - 只需要查询单个实例模板详细信息的时候可以调用该接口。

func (*VmClient) DescribeInstanceTemplates added in v1.10.0

func (c *VmClient) DescribeInstanceTemplates(request *vm.DescribeInstanceTemplatesRequest) (*vm.DescribeInstanceTemplatesResponse, error)

查询实例模板列表。

详细操作说明请参考帮助文档:[实例模板](https://docs.jdcloud.com/cn/virtual-machines/instance-template-overview)

## 接口说明 - 使用 `filters` 过滤器进行条件筛选,每个 `filter` 之间的关系为逻辑与(AND)的关系。 - 单次查询最大可查询100条实例模板数据。

func (*VmClient) DescribeInstanceTemplatesCustomdata added in v1.51.0

查询实例模板上的自定义元数据。

详细操作说明请参考帮助文档:[实例模板](https://docs.jdcloud.com/cn/virtual-machines/instance-template-overview)

## 接口说明 - 一般情况下由于自定义元数据比较大,所以限制每次最多查询10个实例模板。

func (*VmClient) DescribeInstanceTypes

func (c *VmClient) DescribeInstanceTypes(request *vm.DescribeInstanceTypesRequest) (*vm.DescribeInstanceTypesResponse, error)

查询实例规格列表。

详细操作说明请参考帮助文档:[实例规格类型](https://docs.jdcloud.com/cn/virtual-machines/instance-type-family)

## 接口说明 - 调用该接口可查询全量实例规格信息。 - 可查询实例规格的CPU、内存大小、可绑定的弹性网卡数量、可挂载的云硬盘数量,是否售卖等信息。 - GPU 或 本地存储型的规格可查询 GPU型号、GPU卡数量、本地盘数量。 - 尽量使用过滤器查询关心的实例规格,并适当缓存这些信息。否则全量查询可能响应较慢。

func (*VmClient) DescribeInstanceVncUrl

func (c *VmClient) DescribeInstanceVncUrl(request *vm.DescribeInstanceVncUrlRequest) (*vm.DescribeInstanceVncUrlResponse, error)

获取云主机vnc地址。

详细操作说明请参考帮助文档:[连接实例](https://docs.jdcloud.com/cn/virtual-machines/connect-to-instance)

## 接口说明 - 实例仅 `running` 状态时才可获取到 `vnc` 地址。 - 调用该接口可获取云主机 `vnc` 地址,用于远程连接管理云主机。 - `vnc` 地址的有效期为1个小时,调用接口获取vnc地址后如果1个小时内没有使用,`vnc` 地址将自动失效,再次使用需要重新获取。 - 裸金属实例目前不支持通过 `vnc` 登录。

func (*VmClient) DescribeInstances

func (c *VmClient) DescribeInstances(request *vm.DescribeInstancesRequest) (*vm.DescribeInstancesResponse, error)

查询一台或多台云主机实例的详细信息。

详细操作说明请参考帮助文档:[查找实例](https://docs.jdcloud.com/cn/virtual-machines/search-instance)

## 接口说明 - 使用 `filters` 过滤器进行条件筛选,每个 `filter` 之间的关系为逻辑与(AND)的关系。 - 如果使用子帐号查询,只会查询到该子帐号有权限的云主机实例。关于资源权限请参考 [IAM概述](https://docs.jdcloud.com/cn/iam/product-overview)。 - 单次查询最大可查询100条云主机实例数据。 - 尽量一次调用接口查询多条数据,不建议使用该批量查询接口一次查询一条数据,如果使用不当导致查询过于密集,可能导致网关触发限流。 - 由于该接口为 `GET` 方式请求,最终参数会转换为 `URL` 上的参数,但是 `HTTP` 协议下的 `GET` 请求参数长度是有大小限制的,使用者需要注意参数超长的问题。

func (*VmClient) DescribeInstancesCustomData added in v1.51.0

func (c *VmClient) DescribeInstancesCustomData(request *vm.DescribeInstancesCustomDataRequest) (*vm.DescribeInstancesCustomDataResponse, error)

批量查询云主机用户自定义元数据。

详细操作说明请参考帮助文档:[自定义元数据](https://docs.jdcloud.com/cn/virtual-machines/userdata)

## 接口说明 - 使用 `filters` 过滤器进行条件筛选,每个 `filter` 之间的关系为逻辑与(AND)的关系。 - 单次查询最大可查询10台云主机实例自定义元数据。

func (*VmClient) DescribeKeypairs added in v1.1.0

func (c *VmClient) DescribeKeypairs(request *vm.DescribeKeypairsRequest) (*vm.DescribeKeypairsResponse, error)

批量查询密钥对。

详细操作说明请参考帮助文档:[密钥概述](https://docs.jdcloud.com/cn/virtual-machines/keypair-overview)

## 接口说明 - 使用 `filters` 过滤器进行条件筛选,每个 `filter` 之间的关系为逻辑与(AND)的关系。 - 单次查询最大可查询100条密钥数据。

func (*VmClient) DescribeQuotas

func (c *VmClient) DescribeQuotas(request *vm.DescribeQuotasRequest) (*vm.DescribeQuotasResponse, error)

查询资源配额。

## 接口说明 - 调用该接口可查询 `云主机`、`云主机的CPU`、`云主机的内存`、`云主机的本地盘`、`镜像`、`密钥`、`实例模板`、`镜像共享` 的配额。

func (*VmClient) DetachDisk

func (c *VmClient) DetachDisk(request *vm.DetachDiskRequest) (*vm.DetachDiskResponse, error)

为一台云主机缷载云硬盘

详细操作说明请参考帮助文档:[缷载云硬盘](https://docs.jdcloud.com/cn/virtual-machines/detach-cloud-disk)

## 接口说明 - 云主机和云硬盘都没有正在进行中的的任务时才可以操作。 - 云主机状态必须是 `running` 或 `stopped` 状态。操作系统盘时必须先停止实例。

func (*VmClient) DetachKeypair added in v1.51.0

func (c *VmClient) DetachKeypair(request *vm.DetachKeypairRequest) (*vm.DetachKeypairResponse, error)

为云主机实例解绑密钥。

详细操作说明请参考帮助文档:[绑定密钥](https://docs.jdcloud.com/cn/virtual-machines/bind-keypair)

## 接口说明 - 调用该接口解绑云主机实例中的密钥。

func (*VmClient) DetachNetworkInterface added in v1.0.5

func (c *VmClient) DetachNetworkInterface(request *vm.DetachNetworkInterfaceRequest) (*vm.DetachNetworkInterfaceResponse, error)

为云主机解绑弹性网卡。

详细操作说明请参考帮助文档:[解绑弹性网卡](https://docs.jdcloud.com/cn/virtual-machines/detach-eni)

## 接口说明 - 实例状态必须为 `running` 或 `stopped` 状态,同时实例没有正在进行中的任务时才可以操作。 - 实例中的主网卡是不可以解绑和绑定的,解绑弹性网卡只支持解绑辅助网卡。

func (*VmClient) DisableLogger added in v1.13.0

func (c *VmClient) DisableLogger()

func (*VmClient) DisassociateElasticIp

func (c *VmClient) DisassociateElasticIp(request *vm.DisassociateElasticIpRequest) (*vm.DisassociateElasticIpResponse, error)

为云主机解绑弹性公网IP。

详细操作说明请参考帮助文档:[解绑弹性公网IP](https://docs.jdcloud.com/cn/virtual-machines/disassociate-elastic-ip)

## 接口说明 - 该接口只支持解绑实例的主网卡的主内网IP上的弹性公网IP。

func (*VmClient) ExportImage added in v1.25.0

func (c *VmClient) ExportImage(request *vm.ExportImageRequest) (*vm.ExportImageResponse, error)

导出私有镜像。

将京东云私有镜像导出至京东云以外环境。

详细操作说明请参考帮助文档:[导出私有镜像](https://docs.jdcloud.com/cn/virtual-machines/export-private-image)

## 接口说明 - 调用此接口将私有镜像导出到京东云对象存储空间中。 - 仅支持系统盘镜像导出,即使镜像有关联的数据盘快照,也仅会导出系统盘镜像文件。 - 导出的镜像文件格式为QCOW2。 - `Windows Server` 操作系统的镜像不支持导出(若镜像来源为导入镜像,则无此限制)。 - 镜像必须为 `云硬盘系统盘` 镜像,如您的镜像是 `本地盘系统盘` 镜像,可以通过镜像类型转换功能转换为云盘系统盘镜像后再导出。

func (*VmClient) ImageTasks added in v1.10.0

func (c *VmClient) ImageTasks(request *vm.ImageTasksRequest) (*vm.ImageTasksResponse, error)

查询镜像任务详情。

将京东云私有镜像导出至京东云以外环境。

详细操作说明请参考帮助文档: [导入私有镜像](https://docs.jdcloud.com/cn/virtual-machines/import-private-image) [导出私有镜像](https://docs.jdcloud.com/cn/virtual-machines/export-private-image)

## 接口说明 - 调用该接口可查询镜像导入或导出的任务详情。

func (*VmClient) ImportImage added in v1.10.0

func (c *VmClient) ImportImage(request *vm.ImportImageRequest) (*vm.ImportImageResponse, error)

导入私有镜像。

详细操作说明请参考帮助文档:[导入私有镜像](https://docs.jdcloud.com/cn/virtual-machines/import-private-image)

## 接口说明 - 当前仅支持导入系统盘镜像。 - 导入后的镜像将以 `云硬盘系统盘镜像` 格式作为私有镜像使用,同时会自动生成一个与导入镜像关联的快照。

func (*VmClient) ImportKeypair added in v1.1.0

func (c *VmClient) ImportKeypair(request *vm.ImportKeypairRequest) (*vm.ImportKeypairResponse, error)

导入密钥。

与创建密钥不同的是,导入的密钥是由用户生成的。生成之后将公钥部分导入到京东云。

详细操作说明请参考帮助文档:[创建密钥](https://docs.jdcloud.com/cn/virtual-machines/create-keypair)

## 接口说明 - 调用该接口导入由其他工具生成的密钥对的公钥部分。

func (*VmClient) ModifyImageAttribute added in v1.0.4

func (c *VmClient) ModifyImageAttribute(request *vm.ModifyImageAttributeRequest) (*vm.ModifyImageAttributeResponse, error)

修改镜像属性。

详细操作说明请参考帮助文档:[镜像概述](https://docs.jdcloud.com/cn/virtual-machines/image-overview)

## 接口说明 - 只支持修改镜像名称或描述。

func (*VmClient) ModifyInstanceAttribute

func (c *VmClient) ModifyInstanceAttribute(request *vm.ModifyInstanceAttributeRequest) (*vm.ModifyInstanceAttributeResponse, error)

修改一台云主机的属性。

详细操作说明请参考帮助文档: [修改实例名称](https://docs.jdcloud.com/cn/virtual-machines/modify-instance-name) [自定义数据](https://docs.jdcloud.com/cn/virtual-machines/userdata) [实例元数据](https://docs.jdcloud.com/cn/virtual-machines/instance-metadata)

## 接口说明 - 支持修改实例的名称、描述、hostname、自定义数据、实例元数据。

func (*VmClient) ModifyInstanceDiskAttribute added in v1.0.5

func (c *VmClient) ModifyInstanceDiskAttribute(request *vm.ModifyInstanceDiskAttributeRequest) (*vm.ModifyInstanceDiskAttributeResponse, error)

修改一台云主机中的云硬盘属性。

详细操作说明请参考帮助文档:[配置云硬盘删除属性](https://docs.jdcloud.com/cn/virtual-machines/configurate-delete-attributes)

## 接口说明 - 该接口当前只能修改实例中的云硬盘随实例删除属性。 - 仅按配置计费、并且非共享型的云硬盘支持修改。 - 包年包月计费的云硬盘该属性不生效,实例删除时云硬盘将保留。

func (*VmClient) ModifyInstanceNetworkAttribute added in v1.0.5

func (c *VmClient) ModifyInstanceNetworkAttribute(request *vm.ModifyInstanceNetworkAttributeRequest) (*vm.ModifyInstanceNetworkAttributeResponse, error)

修改云主机弹性网卡属性。

详细操作说明请参考帮助文档:[配置弹性网卡删除属性](https://docs.jdcloud.com/cn/virtual-machines/configurate-eni-delete-attributes)

## 接口说明 - 当前只支持修改随云主机实例删除的属性。 - 不支持修改主网卡。

func (*VmClient) ModifyInstancePassword

func (c *VmClient) ModifyInstancePassword(request *vm.ModifyInstancePasswordRequest) (*vm.ModifyInstancePasswordResponse, error)

修改云主机密码。

详细操作说明请参考帮助文档:[重置密码](https://docs.jdcloud.com/cn/virtual-machines/reset-password)

## 接口说明 - 实例没有正在进行中的任务时才可操作。 - 重置密码后,需要重启云主机后生效。

func (*VmClient) ModifyInstancePlacement added in v1.56.0

func (c *VmClient) ModifyInstancePlacement(request *vm.ModifyInstancePlacementRequest) (*vm.ModifyInstancePlacementResponse, error)

存量主机加入高可用组。

存量主机加入高可用组,或者主机从一个高可用组移动到另一个高可用组

## 接口说明 - 不支持专属宿主机上的实例调整高可用组。 - 除GPU、vGPU(以P开头)外的一代机暂不支持调整高可用组。 - 与该高可用组关联实例模板的VPC不同的不支持调整高可用组。 - 与该高可用组可用区不匹配的实例不支持调整高可用组。 - 本地系统盘机型不支持强制均衡。 - 仅支持实例状态为已停止的实例强制均衡调整高可用组。 - 若不强制均衡,仅支持实例状态为运行中或已停止的实例调整高可用组。 - 若强制均衡,带本地数据盘的实例需确认清除本地盘数据。

func (*VmClient) ModifyInstanceVpcAttribute added in v1.56.0

func (c *VmClient) ModifyInstanceVpcAttribute(request *vm.ModifyInstanceVpcAttributeRequest) (*vm.ModifyInstanceVpcAttributeResponse, error)

修改一台云主机的子网或内网IP地址。

详细操作说明请参考帮助文档:[修改网络配置](https://docs.jdcloud.com/cn/virtual-machines/modify-vpc-attribute)

## 接口说明 - 调该接口之前实例必须处于停止 `stopped` 状态。 - 修改VPC及子网

  • 内网IPv4:可指定或由系统分配。
  • IPv6:如新子网支持IPv6,可选是否分配,如分配仅支持系统分配。
  • 安全组:须指定新VPC下的安全组。

- 不修改VPC,仅修改子网

  • 内网IPv4:可指定或由系统分配。
  • IPv6:如新子网支持IPv6,可选是否分配,如分配仅支持系统分配。
  • 安全组:不支持绑定新安全组。

- 不修改VPC及子网,仅更换内网IP

  • 内网IPv4:须指定IP地址。
  • IPv6:不支持修改。
  • 安全组:不支持绑定新安全组。

- 一些限制及注意事项:

  • 已加入负载均衡-后端服务器组中的实例不允许修改。
  • 绑定弹性网卡的实例不支持修改VPC,仅支持在同VPC下修改子网和内网IP。
  • 主网卡分配了辅助内网IP的实例不支持修改VPC和子网,仅支持在同子网下修改内网IP。
  • 如实例在高可用组内,则不允许修改VPC,仅可在同VPC内修改子网或内网IPv4地址。
  • 仅在更换VPC时传入安全组ID才有效,且安全组须隶属于目标VPC。
  • 如指定内网IPv4,须确保IP地址在子网网段内且未被占用;如不指定则随机分配,须确保子网可用IP充足。

func (*VmClient) RebootInstance

func (c *VmClient) RebootInstance(request *vm.RebootInstanceRequest) (*vm.RebootInstanceResponse, error)

重启云主机实例。

详细操作说明请参考帮助文档:[重启实例](https://docs.jdcloud.com/cn/virtual-machines/reboot-instance)

## 接口说明 - 实例状态必须为运行 `running` 状态,同时实例没有正在进行中的任务时才可以重启。 - 如果云主机实例已欠费或已到期,则无法重启。

func (*VmClient) RebuildInstance added in v1.0.2

func (c *VmClient) RebuildInstance(request *vm.RebuildInstanceRequest) (*vm.RebuildInstanceResponse, error)

重置云主机系统。

需要注意的是,重装系统会导致系统盘的内容全部丢失,数据盘的数据不受影响(但需要重新识别)。因此,在需要保留系统运行数据的情况下,强烈建议您在重置系统前制作私有镜像,之后重置时选择该私有镜像即可实现保留系统运行数据。

详细操作说明请参考帮助文档:[重置系统](https://docs.jdcloud.com/cn/virtual-machines/rebuild-instance)

## 接口说明 - 云主机的状态必须为 `stopped` 状态。 - 若实例基于私有镜像创建,而私有镜像已被删除,则无法使用原镜像重置系统,即无法恢复至刚创建时的系统状态,建议保留被实例引用的私有镜像。 - 重置系统需要重新指定密码,对于 `Linux` 系统您还可以重新指定 `SSH密钥`。 - 对于云盘作系统盘的实例,当前系统盘大小不能超过目标镜像对应系统盘快照的容量。 - 云主机系统盘类型必须与待更换镜像支持的系统盘类型保持一致,若当前云主机系统盘为 `local` 类型,则更换镜像的系统盘类型必须为 `loaclDisk` 类型;同理,若当前云主机系统盘为 `cloud` 类型,则更换镜像的系统盘类型必须为 `cloudDisk` 类型。可查询 [DescribeImages](https://docs.jdcloud.com/virtual-machines/api/describeimages) 接口获得指定地域的镜像信息。 - 指定的镜像必须能够支持当前主机的实例规格 `instanceType`,否则会返回错误。可查询 [DescribeImageConstraints](docs.jdcloud.com/virtual-machines/api/describeimageconstraints) 接口获得指定镜像支持的系统盘类型信息。

func (*VmClient) RedeployInstance added in v1.60.0

func (c *VmClient) RedeployInstance(request *vm.RedeployInstanceRequest) (*vm.RedeployInstanceResponse, error)

重新部署主机实例。

详细操作说明请参考帮助文档:[重新部署实例](https://docs.jdcloud.com/cn/virtual-machines/redeploy-instance)

## 接口说明 - 必须是已隔离的实例,推荐关机状态。

func (*VmClient) ReleaseImage added in v1.13.0

func (c *VmClient) ReleaseImage(request *vm.ReleaseImageRequest) (*vm.ReleaseImageResponse, error)

发布社区镜像。

详细操作说明请参考帮助文档:[镜像概述](https://docs.jdcloud.com/cn/virtual-machines/image-overview)

## 接口说明 - 只允许发布用户的私有镜像。 - 仅支持云盘系统盘的私有镜像。 - 带有加密快照的打包镜像无法发布为社区镜像。 - 发布为社区镜像后会撤销共享关系。

func (*VmClient) ResizeInstance added in v1.0.2

func (c *VmClient) ResizeInstance(request *vm.ResizeInstanceRequest) (*vm.ResizeInstanceResponse, error)

变更云主机实例配置。

详细操作说明请参考帮助文档:[调整配置](https://docs.jdcloud.com/cn/virtual-machines/resize-instance)

## 接口说明

  • 云主机的状态必须为 `stopped` 状态。
  • 16年创建的云硬盘做系统盘的云主机,实例规格不允许跨代调配。
  • 若当前实例系统盘为本地盘,则不允许跨代调配,例如第一代云主机不允许与第二代云主机互相调配,且不允许调整至第一代存储优化大数据型 `s.d1` 及第二代存储优化大数据型 `s.d2`。
  • 若当前实例在高可用组内,则不允许调配至除GPU类型外的第一代云主机,受限于高可用组支持的规格情况。
  • 若当前实例已挂载加密云盘,则不允许调配至第一代云主机,受限于支持加密盘的规格情况。
  • 裸金属实例规格主机暂不支持调配,即不支持从其他规格调整为裸金属规格或从裸金属规格调整为其他规格。
  • 对于按配置计费实例,调整配置后将按照新规格计费,调整前规格会立即出账结算(即对上次整点结算时间至当前时间产生的费用进行结算)。
  • 若当前实例带有本地数据盘,需清除本地盘内数据才可调整配置,还请谨慎操作。
  • 对于包年包月计费云主机:
  • 若调配后规格价格低于调配前规格价格,则将延长云主机到期时间;
  • 若调配后规格价格高于调配前规格价格,需要支付到期前的差价。
  • 如果当前主机中的弹性网卡数量,超过了目标实例规格允许的弹性网卡数量,会返回错误。可查询 [DescribeInstanceTypes](https://docs.jdcloud.com/virtual-machines/api/describeinstancetypes) 接口获得实例规格允许的弹性网卡数量。
  • 如果当前主机中的云硬盘数据,超过了目标实例规格允许的云硬盘数量,会返回错误。可查询 [DescribeInstanceTypes](https://docs.jdcloud.com/virtual-machines/api/describeinstancetypes) 接口获得实例规格允许的云硬盘数量。
  • 当前主机所使用的镜像,需要支持目标实例规格,否则返回错误。可查询 [DescribeImageConstraints](docs.jdcloud.com/virtual-machines/api/describeimageconstraints) 接口获得指定镜像的实例规格限制信息。
  • 云主机欠费或到期时,无法更改实例规格。

func (*VmClient) SetConfig

func (c *VmClient) SetConfig(config *core.Config)

func (*VmClient) SetLogger

func (c *VmClient) SetLogger(logger core.Logger)

func (*VmClient) ShareImage

func (c *VmClient) ShareImage(request *vm.ShareImageRequest) (*vm.ShareImageResponse, error)

共享私有镜像。

详细操作说明请参考帮助文档:[共享私有镜像](https://docs.jdcloud.com/cn/virtual-machines/share-image)

## 接口说明 - 只允许共享用户的私有镜像。 - 单个镜像最多可以共享给20个京东云帐户、不可以共享给自己。 - 带有加密快照的打包镜像无法共享。

func (*VmClient) StartInstance

func (c *VmClient) StartInstance(request *vm.StartInstanceRequest) (*vm.StartInstanceResponse, error)

启动云主机实例。

详细操作说明请参考帮助文档:[启动实例](https://docs.jdcloud.com/cn/virtual-machines/start-instance)

## 接口说明 - 实例状态必须为停止 `stopped` 状态,同时实例没有正在进行中的任务时才可以启动。 - 如果实例为停机不计费模式,启动时有可能因为库存资源不足而导致无法启动。 - 如果云主机实例已欠费或已到期,则无法启动。 - 如果实例系统盘是云硬盘,启动之前请确保系统盘处于正常挂载状态。

func (*VmClient) StopInstance

func (c *VmClient) StopInstance(request *vm.StopInstanceRequest) (*vm.StopInstanceResponse, error)

停止云主机实例。

详细操作说明请参考帮助文档:[停止实例](https://docs.jdcloud.com/cn/virtual-machines/stop-instance)

## 接口说明 - 实例状态必须为运行 `running` 状态,同时实例没有正在进行中的任务时才可停止。 - 如果云主机实例属性 `chargeOnStopped` 的值为 `stopCharging`,实例关机之后,实例部分将停止计费,且释放实例自身包含的资源(CPU/内存/GPU/本地数据盘)。需要使用者注意的是,实例一旦释放自身资源,再次启动时有可能因为库存资源不足而导致无法启动。 - `chargeOnStopped` 该参数仅对按配置计费且系统盘为云硬盘的实例生效,并且不是专有宿主机中的实例。

func (*VmClient) UnReleaseImage added in v1.13.0

func (c *VmClient) UnReleaseImage(request *vm.UnReleaseImageRequest) (*vm.UnReleaseImageResponse, error)

撤销社区镜像。

详细操作说明请参考帮助文档:[镜像概述](https://docs.jdcloud.com/cn/virtual-machines/image-overview)

## 接口说明 - 只允许撤销用户的私有镜像。

func (*VmClient) UnShareImage

func (c *VmClient) UnShareImage(request *vm.UnShareImageRequest) (*vm.UnShareImageResponse, error)

取消共享私有镜像。

详细操作说明请参考帮助文档:[取消共享私有镜像](https://docs.jdcloud.com/cn/virtual-machines/cancel-share-image)

## 接口说明 - 只允许操作用户的私有镜像。 - 原被共享用户将无法再使用该镜像创建云主机实例,同时使用该镜像创建的云主机实例也无法重置为原始系统状态。

func (*VmClient) UpdateInstanceTemplate added in v1.10.0

func (c *VmClient) UpdateInstanceTemplate(request *vm.UpdateInstanceTemplateRequest) (*vm.UpdateInstanceTemplateResponse, error)

修改实例模板属性。

详细操作说明请参考帮助文档:[实例模板](https://docs.jdcloud.com/cn/virtual-machines/instance-template-overview)

## 接口说明 - 名称、描述、实例模板配置信息至少要传一项。 - 参数为 null 时,对应的参数不做更改。

func (*VmClient) VerifyInstanceTemplate added in v1.10.0

func (c *VmClient) VerifyInstanceTemplate(request *vm.VerifyInstanceTemplateRequest) (*vm.VerifyInstanceTemplateResponse, error)

校验实例模板的有效性。

详细操作说明请参考帮助文档:[实例模板](https://docs.jdcloud.com/cn/virtual-machines/instance-template-overview)

## 接口说明 - 调用该接口可以校验实例模板是否有效,例如某些关联资源可能已经被删除了,此刻实例模板可能已经失效了。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL