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>