本文汇总了调用云服务器ECS API接口时的常见问题。

什么是ECS API?

ECS API是采用RPC风格的开放式API,为阿里云用户提供API服务。您可以基于ECS API管理和使用云服务器ECS。下图为您在使用API时,API请求的转发路径。有关如何调用ECS API,请参见快速入门什么是ECS API

创建ECS实例时提示错误信息:InvalidDataDiskCategory.NotSupported

问题现象:您在调用RunInstances创建ECS实例时,返回如下错误信息。

{
    "Code": "InvalidDataDiskCategory.NotSupported",
    "Message": "Specified disk category is not supported."
}

问题原因:该错误是由于所在可用区不支持相应的云盘类型导致的。

解决方案:建议您在创建ECS实例之前,调用DescribeAvailableResource查看具体可用区中的库存与产品规格供应情况,避免因资源供应原因引起报错。您也可以重新设置参数ZoneId的取值,在其他可用区中尝试创建ECS实例。

aliyun ecs RunInstances --ImageId win2008_64_ent_r2_cn_40G_alibase_20150429.vhd --InstanceType ecs.g5.large --SecurityGroupId <TheSecurityGroupId> --SystemDiskCategory cloud_efficiency --ZoneId cn-hangzhou-c

创建多台ECS实例时如何设置有序的实例名称或者主机名称?

在创建多台ECS实例时,建议使用RunInstances设置有序的实例名称或主机名称。该接口提供了InstanceNameHostName两个参数,您可以根据命名规则设置这些参数的值。更多信息,请参见批量设置有序的实例名称或主机名称

如何创建有公网IP地址的ECS实例?

方法一:调用RunInstances,并将参数InternetMaxBandwidthOut设置为大于0的取值,系统自动为ECS实例分配公网IP。

方法二:调用CreateInstance后,再调用AllocatePublicIpAddress接口为ECS实例分配公网IP地址。

通过API创建的ECS实例,为什么无法Ping通ECS实例?

问题现象:通过API新创建的ECS实例断网,内部无法访问外网,您也无法Ping通ECS实例的公网IP地址。

问题原因:您没有在ECS实例加入的安全组中添加相应的访问规则,导致出现无法访问的现象。

解决方案:调用AuthorizeSecurityGroup为相应安全组添加入方向访问规则即可。以ICMP协议为例,您可以添加以下安全组规则,允许来自10.0.0.0/8网段的流量访问。

重要

请您根据实际业务需求,按照最小范围开放原则配置安全组规则,尽量避免全开(慎用::/0或者0.0.0.0/0)以免引发安全问题。

https://ecs.aliyuncs.com/?Action=AuthorizeSecurityGroup
&SecurityGroupId=sg-bp15ed6xe1yxeycg7***
&SourceCidrIp=10.0.0.0/8
&IpProtocol=ICMP
&PortRange=-1/-1
&<公共请求参数>

ECS API绑定公网IP提示错误信息:The specified IP is already in use

问题现象:您在调用AllocatePublicIpAddress设定参数IpAddress为一台ECS实例分配一个公网IP地址时,提示如下错误。

{
    "Code": "IpInUse",
    "Message": "The specified IP is already in use."
}

问题原因:指定的IP地址已被占用。

解决方案:您可以先查询指定的IP地址是否被占用,再根据结果进行分配。另外,您也可以选择不填写参数IpAddress,让系统自动随机分配IP地址。

ECS API修改实例带宽可以指定时间范围吗?

您可以调用ModifyInstanceNetworkSpec修改ECS实例的公网带宽上下限,设置后直接生效。如果您需要在一段时间内变更公网带宽,可以设置StartTimeEndTime参数指定时间段。

说明

如果您使用的是弹性公网IP(EIP),可以调用ModifyEipAddressAttribute,但无法指定生效时间段。

通过API或SDK查询安全组规则,为什么无法显示所有的规则?

安全组规则区分网卡类型,支持公网网卡(internet)和私网网卡(intranet)。您在使用DescribeSecurityGroupAttribute查询安全组时,NicType不是必选参数,但其默认值为internet。因此,以下阿里云CLI请求方法只显示公网网卡相关的安全组规则,不会返回所有安全组规则。

aliyun ecs DescribeSecurityGroupAttribute --SecurityGroupId <TheSecurityGroupId> --RegionId <TheRegionId>

若您需要查看内网方面的安全组规则,如内网互相打通、金融云VPN防火墙的规则等内网网卡安全组规则时,需要您设置NicType参数为intranet

aliyun ecs DescribeSecurityGroupAttribute --SecurityGroupId <TheSecurityGroupId> --RegionId <TheRegionId> --NicType intranet

为什么API、SDK和阿里云CLI只返回十条信息?

部分查询接口支持分页查询,当不设置分页信息时,默认查询十条记录。您可以通过设置PageNumberPageSize自定义分页查询的信息。

名称

类型

是否必需

描述

PageNumber

Integer

查询接口返回资源信息列表的页码。ECS API均以Describe作为查询接口前缀,更多详情,请参阅API概览

起始值:1。

默认值:1。

PageSize

Integer

分页展示响应信息时设置的每页行数,单位:行。

最大值:100。

默认值:10。

说明

PageSize的最大值为100,若查询的结果大于100,您需要借助PageNumber 获取后几页响应信息,即多次提交请求。每次设置PageNumber为1、2 和 3 等,以获取所有的响应信息。如果您使用的是Java SDK,可以在请求中通过setPageNumber()方法指定需要返回的页数。