Sample code for 30+ languages & platforms
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

Classic ASP
<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>