alicloud_ecs_instance Resource
Use the alicloud_ecs_instance
InSpec audit resource to test properties of a single Alicloud ECS instance.
Syntax
An alicloud_ecs_instance
resource block declares the tests for a single Alicloud 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 Alicloud 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, e.g. ‘2020-12-10T04:04Z’.
image_id
- The ID of the image that the instance is running.
instance_type
- The instance type of the instance, e.g. ’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, e.g. ‘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 }
Alicloud 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.