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();
}
}
}