alicloud_ecs_instance resource
Use the alicloud_ecs_instance InSpec audit resource to test properties of a single Alibaba Cloud ECS instance.
Syntax
An alicloud_ecs_instance resource block declares the tests for a single Alibaba Cloud ECS instance by instance id.
describe alicloud_ecs_instance('i-01a2349e94458a507') do
it { should exist }
end
Parameters
instance_id(required)The ID of the ECS instance. This can be passed either as a string or as an
instance_id: 'value'key-value entry in a hash.
describe alicloud_ecs_instance(instance_id: 'i-01a2349e94458a507') do
it { should exist }
end
See also the documentation on Alibaba Cloud ECS instances.
Properties
instance_id- The unique instance ID of the ECS instance.
instance_name- The name of the instance.
host_name- The host name of the instance.
description- The description of the instance.
memory- The memory size of the instance, in MiB.
cpu- The number of vCPUs.
instance_network_type- The network type of the instance: ‘Classic’ or ‘VPC’.
public_ip_address- The public IP address of the instance.
eip_address- The Elastic IP address associated with the instance.
inner_ip_address- The internal IP address of the classic network-type instance.
expired_time- The expiration time of the instance, for example ‘2020-12-10T04:04Z’.
image_id- The ID of the image that the instance is running.
instance_type- The instance type of the instance, for example ’ecs.g5.large’.
vlan_id- The virtual local area network (VLAN) of the instance.
vpc_attributes- The VPC attributes of the instance.
status- The current state of the ECS Instance, for example ‘running’.
io_optimized- Boolean that specifies whether the instance is I/O optimized.
zone_id- The zone ID of the instance.
cluster_id- The ID of the cluster to which the instance belongs.
stopped_mode- Indicates whether the instance continues to be billed after it is stopped: ‘KeepCharging’/‘StopCharging’/‘Not-applicable’.
dedicated_host_attribute- Details about dedicated hosts: an array consiting of the DedicatedHostClusterId, DedicatedHostId, and DedicatedHostName parameters.
security_group_ids- The security group ids associated with the instance.
operation_locks- The reasons why the instance was locked.
instance_charge_type- The billing method of the instance: ‘Prepaid’ or ‘Postpaid’.
internet_charge_type- The billing method of the EIP: ‘PayByBandwidth’ or ‘PayByTraffic’.
internet_max_bandwidth_\out- The maximum outbound public bandwidth, in Mbit/s.
internet_max_bandwidth_in- The maximum outbound inbound bandwidth, in Mbit/s.
serial_number- The serial number of the instance.
creation_time- The time when the instance was created, for example ‘2020-12-10T04:04Z’.
region_id- The region ID of the instance.
credit_specification- The performance mode of the burstable instance: ‘Standard’ or ‘Unlimited’.
deletion_protection- Boolean value which indicates whether you can delete the instance.
ram_roles- The RAM roles attached to the instance.
Examples
Test that an ECS instance is running, it is using the correct image ID, and its deletion protection is turned on:
describe alicloud_ecs_instance('i-090c29e4f4c165b74') do
it { should be_running }
its('image_id') { should eq 'ubuntu_18_04_64_20G_alibase_20190624.vhd' }
its('deletion_protection') { should be true }
end
Test that an ECS instance has exactly one RAM role attached:
describe alicloud_ecs_instance('i-090c29e4f4c165b74') do
its('ram_roles.count') { should eq 1 }
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.
it { should exist }
it { should_not exist }
Alibaba Cloud Permissions
Your Principal will need the ecs:DescribeInstances, ecs:DescribeInstanceAttribute 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.