Sample code for 30+ languages & platforms
Java

EC2 Check Instance Status

See more Amazon EC2 Examples

Demonstrates how to send a request to check the status of Amazon EC2 instances.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.AuthAws;
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Rest;
import com.chilkatsoft.chilkat2.Xml;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Rest rest = new Rest();

        // Connect to the Amazon AWS server.
        // such as https://ec2.amazonaws.com/
        boolean bTls = true;
        int port = 443;
        boolean bAutoReconnect = true;
        rest.connect("ec2.us-west-2.amazonaws.com", port, bTls, bAutoReconnect);

        // Provide AWS credentials for the REST call.
        AuthAws authAws = new AuthAws();
        authAws.setAccessKey("AWS_ACCESS_KEY");
        authAws.setSecretKey("AWS_SECRET_KEY");
        // the region should match the region part of the domain passed to the REST connect method (above).
        authAws.setRegion("us-west-2");
        authAws.setServiceName("ec2");

        rest.setAuthAws(authAws);

        rest.addQueryParam("Action", "DescribeInstanceStatus");
        rest.addQueryParam("Version", "2016-11-15");

        rest.addQueryParam("InstanceId.1", "i-999719995399c9999");
        // If you have additional instances to check, then add them with .2, .3, etc.
        rest.addQueryParam("InstanceId.2", "i-999719995399c0000");
        rest.addQueryParam("InstanceId.3", "i-999719995399c0111");
        // ...

        // Instead of checking specific instances, you can check all instances by
        // sending the IncludeAllInstances param
        rest.addQueryParam("IncludeAllInstances", "true");

        String responseXml;
        try {
            responseXml = rest.fullRequestNoBody("GET", "/");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // A successful response will have a status code equal to 200.
        if (rest.getResponseStatusCode() != 200) {
            System.out.println("response status code = " + rest.getResponseStatusCode());
            System.out.println("response status text = " + rest.getResponseStatusText());
            System.out.println("response header: " + rest.getResponseHeader());
            System.out.println("response body: " + responseXml);
            return;
        }

        // Examine the successful XML response.
        Xml xml = new Xml();
        xml.loadXml(responseXml);
        System.out.println(xml.getXml());

        // 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>
    }
}