Skip to main content

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.

Thank you for your feedback!

×