All Products
Search
Document Center

CloudOps Orchestration Service:Quick Start

Last Updated:Oct 24, 2023

This topic describes how to use the Operation Orchestration Service (OOS) SDK for Java to perform common operations, such as creating a template, executing a template, and checking the execution result.

Create a template

Run the following code to create a template:

import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.oos.model.v20190601.*;


public class Demo {
    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile(
            "<your-region-id>",          // The ID of your region.
            "<your-access-key-id>",      // The AccessKey ID of your RAM account.
            "<your-access-key-secret>"); // The AccessKey secret of your RAM account.
        IAcsClient client = new DefaultAcsClient(profile);

        // Create a template.
        CreateTemplateRequest request = new CreateTemplateRequest();
        request.setTemplateName("MyTemplate");
        request.setContent("{\n"
            + "  \"FormatVersion\": \"OOS-2019-06-01\",\n"
            + "  \"Description\": \"Descirbe instances of given status\",\n"
            + "  \"Parameters\": {\n"
            + "    \"Status\": {\n"
            + "      \"Type\": \"String\",\n"
            + "      \"Description\": \"(Required) The status of the Ecs instance.\"\n"
            + "    }\n"
            + "  },\n"
            + "  \"Tasks\": [\n"
            + "    {\n"
            + "      \"Properties\": {\n"
            + "        \"Parameters\": { \"Status\": \"{{ Status }}\" },\n"
            + "        \"API\": \"DescribeInstances\",\n"
            + "        \"Service\": \"ECS\"\n"
            + "      },\n"
            + "      \"Name\": \"describeInstances\",\n"
            + "      \"Action\": \"ACS::ExecuteAPI\"\n"
            + "    }\n"
            + "  ]\n"
            + "}");

        // Initiate a request and handle the response or exception.
        CreateTemplateResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getTemplate().getTemplateName());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

Execute a template

Run the following code to execute a template:

import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.oos.model.v20190601.*;


public class Demo {
    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile(
            "<your-region-id>",          // The ID of your region.
            "<your-access-key-id>",      // The AccessKey ID of your RAM account.
            "<your-access-key-secret>"); // The AccessKey secret of your RAM account.
        IAcsClient client = new DefaultAcsClient(profile);

        // Execute a template.
        StartExecutionRequest request = new StartExecutionRequest();
        request.setTemplateName("MyTemplate");
        request.setParameters("{\"Status\": \"Running\"}");

        // Initiate a request and handle the response or exception.
        StartExecutionResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getExecution().getExecutionId());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

Check the execution result

Run the following code to check the execution result:

import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.oos.model.v20190601.*;


public class Demo {
    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile(
            "<your-region-id>",          // The ID of your region.
            "<your-access-key-id>",      // The AccessKey ID of your RAM account.
            "<your-access-key-secret>"); // The AccessKey secret of your RAM account.
        IAcsClient client = new DefaultAcsClient(profile);

        // Create an API request and set relevant parameters.
        ListExecutionsRequest request = new ListExecutionsRequest();
        request.setExecutionId("<ExecutionId>");

        // Initiate a request and handle the response or exception.
        ListExecutionsResponse response;
        try {
            response = client.getAcsResponse(request);
            for(ListExecutionsResponse.Execution execution: response.getExecutions()){
                System.out.println(execution.getExecutionId());
                System.out.println(execution.getStatus());
            }
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}