alicloud_ecs_instances resource
Use the alicloud_ecs_instances InSpec audit resource to test properties of a collection of Alibaba Cloud ECS instances.
Syntax
An alicloud_ecs_instances resource block declares the tests a collection of Alibaba Cloud ECS instances.
describe alicloud_ecs_instances
it { should exist }
end
Parameters
This resource does not require any parameters.
Properties
instance_ids- The unique instance IDs of the returned ECS instances.
instance_names- The names of the instances.
host_names- The host names of the instances.
descriptions- The descriptions of the instances.
memory- The memory sizes of the instances, in MiB.
cpus- The numbers of vCPUs the instances have.
cpu_options- The CPU options of the instances.
gpu_specs- The categories of GPU for the instance types.
image_ids- The IDs of the images that the instances are running.
instance_types- The instance types of the instances, for example ’ecs.g5.large'.
instance_type_families- The instance families of the instances.
io_optimized- Booleans that specify whether the instances are I/O optimized.
os_names- The names of the operating systems for the instances.
os_types- The types of operating systems for the instances: ‘windows’ or ’linux’.
instance_network_types- The network types of the instances: ‘Classic’ or ‘VPC’.
public_ip_addresses- The public IP addresses of the instances.
inner_ip_addresses- The internal IP addresses of the instances.
eip_addresses- The Elastic IP addresses associated with the instances.
network_interfaces- The ENIs bound to the instances.
vlan_ids- The virtual local area network (VLAN) of the instance.
vpc_attributes- The VPC attributes of the instance.
internet_max_bandwidth_out- The maximum outbound public bandwidth, in Mbit/s.
internet_max_bandwidth_in- The maximum outbound inbound bandwidth, in Mbit/s.
instance_charge_types- The billing method of the instance: ‘Prepaid’ or ‘Postpaid’.
internet_charge_types- The billing method of the EIP: ‘PayByBandwidth’ or ‘PayByTraffic’.
spot_price_limits- Maximum hourly prices for the instances, accurate to 3 decimal places.
spot_strategies- The bidding policies for the preemptible instances: ‘NoSpot’/‘SpotWithPriceLimit’/‘SpotAsPriceGo’.
sale_cycles- The billing cycles of the instances, for example ‘month’.
creation_times- The time when the instance was created, for example ‘2020-12-10T04:04Z’.
start_times- The times when the instances were started.
expired_times- The expiration times of the instances.
auto_release_times- The automatic release times of pay-as-you-go instances.
statuses- The current state of the instances, for example ‘running’.
stopped_modes- Indicates whether the instances continue to be billed after they are stopped: ‘KeepCharging’/‘StopCharging’/‘Not-applicable’.
metadata_options- The metadata options of the instances.
zone_ids- The zone ID of the instances.
cluster_ids- The ID of the cluster to which the instance belongs.
security_group_ids- The security group ids associated with the instance.
deployment_set_ids- The IDs of the deployment sets of the instances.
serial_numbers- The serial number of the instances.
dedicated_instance_attributes- The attributes of the instances on dedicated hosts.
devices_available- Boolean value indicating whether data disks can be attached to the instances.
deletion_protection- Boolean value which indicates whether instances can be deleted.
ram_roles- The RAM roles attached to the instances.
entries- Provides access to the raw results of the query, which can be treated as an array of hashes.
Examples
Ensure that you have less than 100 ECS instances:
describe alicloud_ecs_instances do
its('instance_ids.count') { should be < 100 }
end
Ensure that no instances have deletion protection turned off:
describe alicloud_ecs_instances.where(deletion_protection: false) do
it { should not exist }
end
Ensure that instances have exactly one RAM role attached:
describe(alicloud_ecs_instances.where { ram_role.count != 1 }) do
it { should not exist }
end
Matchers
For a full list of available matchers, see our Universal Matchers page.exist
The control will pass if the describe returns at least one result.
Use should_not to test the entity should not exist.
describe alicloud_ecs_instances do
it { should exist }
end
describe alicloud_ecs_instances do
it { should_not exist }
end
Alibaba Cloud Permissions
Your Principal will need the ecs:DescribeInstances and ecs:DescribeInstanceRamRole actions with Effect set to Allow.
See the Alibaba Cloud Resource Access Management documentation. See the documentation on authentication rules for ECS APIs.