Classic ASP
Classic ASP
EC2 Check Instance Status
See more Amazon EC2 Examples
Demonstrates how to send a request to check the status of Amazon EC2 instances.Chilkat Classic ASP Downloads
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
success = 0
' This example requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
set rest = Server.CreateObject("Chilkat.Rest")
' Connect to the Amazon AWS server.
' such as https://ec2.amazonaws.com/
bTls = 1
port = 443
bAutoReconnect = 1
success = rest.Connect("ec2.us-west-2.amazonaws.com",port,bTls,bAutoReconnect)
' Provide AWS credentials for the REST call.
set authAws = Server.CreateObject("Chilkat.AuthAws")
authAws.AccessKey = "AWS_ACCESS_KEY"
authAws.SecretKey = "AWS_SECRET_KEY"
' the region should match the region part of the domain passed to the REST connect method (above).
authAws.Region = "us-west-2"
authAws.ServiceName = "ec2"
success = rest.SetAuthAws(authAws)
success = rest.AddQueryParam("Action","DescribeInstanceStatus")
success = rest.AddQueryParam("Version","2016-11-15")
success = rest.AddQueryParam("InstanceId.1","i-999719995399c9999")
' If you have additional instances to check, then add them with .2, .3, etc.
success = rest.AddQueryParam("InstanceId.2","i-999719995399c0000")
success = rest.AddQueryParam("InstanceId.3","i-999719995399c0111")
' ...
' Instead of checking specific instances, you can check all instances by
' sending the IncludeAllInstances param
success = rest.AddQueryParam("IncludeAllInstances","true")
responseXml = rest.FullRequestNoBody("GET","/")
If (rest.LastMethodSuccess <> 1) Then
Response.Write "<pre>" & Server.HTMLEncode( rest.LastErrorText) & "</pre>"
Response.End
End If
' A successful response will have a status code equal to 200.
If (rest.ResponseStatusCode <> 200) Then
Response.Write "<pre>" & Server.HTMLEncode( "response status code = " & rest.ResponseStatusCode) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "response status text = " & rest.ResponseStatusText) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "response header: " & rest.ResponseHeader) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "response body: " & responseXml) & "</pre>"
Response.End
End If
' Examine the successful XML response.
set xml = Server.CreateObject("Chilkat.Xml")
success = xml.LoadXml(responseXml)
Response.Write "<pre>" & Server.HTMLEncode( xml.GetXml()) & "</pre>"
' Here is a sample response:
' Use this online tool to generate parsing code from sample XML:
' Generate Parsing Code from XML
' <DescribeInstanceStatusResponse xmlns="http://ec2.amazonaws.com/doc/2016-11-15/">
' <requestId>3be1508e-c444-4fef-89cc-0b1223c4f02fEXAMPLE</requestId>
' <instanceStatusSet>
' <item>
' <instanceId>i-1234567890abcdef0</instanceId>
' <availabilityZone>us-east-1d</availabilityZone>
' <instanceState>
' <code>16</code>
' <name>running</name>
' </instanceState>
' <systemStatus>
' <status>impaired</status>
' <details>
' <item>
' <name>reachability</name>
' <status>failed</status>
' <impairedSince>YYYY-MM-DDTHH:MM:SS.000Z</impairedSince>
' </item>
' </details>
' </systemStatus>
' <instanceStatus>
' <status>impaired</status>
' <details>
' <item>
' <name>reachability</name>
' <status>failed</status>
' <impairedSince>YYYY-MM-DDTHH:MM:SS.000Z</impairedSince>
' </item>
' </details>
' </instanceStatus>
' <eventsSet>
' <item>
' <code>instance-retirement</code>
' <description>The instance is running on degraded hardware</description>
' <notBefore>YYYY-MM-DDTHH:MM:SS+0000</notBefore>
' <notAfter>YYYY-MM-DDTHH:MM:SS+0000</notAfter>
' </item>
' </eventsSet>
' </item>
' <item>
' <instanceId>i-0598c7d356eba48d7</instanceId>
' <availabilityZone>us-east-1d</availabilityZone>
' <instanceState>
' <code>16</code>
' <name>running</name>
' </instanceState>
' <systemStatus>
' <status>ok</status>
' <details>
' <item>
' <name>reachability</name>
' <status>passed</status>
' </item>
' </details>
' </systemStatus>
' <instanceStatus>
' <status>ok</status>
' <details>
' <item>
' <name>reachability</name>
' <status>passed</status>
' </item>
' </details>
' </instanceStatus>
' <eventsSet>
' <item>
' <code>instance-reboot</code>
' <description>The instance is scheduled for a reboot</description>
' <notBefore>YYYY-MM-DDTHH:MM:SS+0000</notBefore>
' <notAfter>YYYY-MM-DDTHH:MM:SS+0000</notAfter>
' </item>
' </eventsSet>
' </item>
' <item>
' <instanceId>i-0987654321abcdef0</instanceId>
' <availabilityZone>us-east-1d</availabilityZone>
' <instanceState>
' <code>16</code>
' <name>running</name>
' </instanceState>
' <systemStatus>
' <status>ok</status>
' <details>
' <item>
' <name>reachability</name>
' <status>passed</status>
' </item>
' </details>
' </systemStatus>
' <instanceStatus>
' <status>ok</status>
' <details>
' <item>
' <name>reachability</name>
' <status>passed</status>
' </item>
' </details>
' </instanceStatus>
' </item>
' <item>
' <instanceId>i-0598c7d356eba48d8</instanceId>
' <availabilityZone>us-east-1d</availabilityZone>
' <instanceState>
' <code>16</code>
' <name>running</name>
' </instanceState>
' <systemStatus>
' <status>ok</status>
' <details>
' <item>
' <name>reachability</name>
' <status>passed</status>
' </item>
' </details>
' </systemStatus>
' <instanceStatus>
' <status>insufficient-data</status>
' <details>
' <item>
' <name>reachability</name>
' <status>insufficient-data</status>
' </item>
' </details>
' </instanceStatus>
' </item>
' </instanceStatusSet>
' </DescribeInstanceStatusResponse>
%>
</body>
</html>