このトピックでは、Data Online Migration SDK for Java を使用してエージェントを管理する方法について説明します。
エージェントの作成
説明
Data Online Migration SDK はエージェントを自動的にデプロイしません。エージェントを使用する前に、エージェントをデプロイする必要があります。詳細については、「エージェントの管理」をご参照ください。エージェントは、Express Connect 回線または VPN Gateway 経由でデータを移行する場合にのみ必要です。
次のサンプルコードは、エージェントを作成する方法を示しています。
package sample;
import com.aliyun.hcs_mgw20240626.Client;
import com.aliyun.hcs_mgw20240626.models.CreateAgentInfo;
import com.aliyun.hcs_mgw20240626.models.CreateAgentRequest;
public class Demo {
/**
AccessKey ID や AccessKey Secret をプロジェクトコードにハードコーディングしないでください。AccessKey ペアが漏洩すると、アカウント内のすべてのリソースのセキュリティが損なわれる可能性があります。
*/
static String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
static String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
/** ご利用の Alibaba Cloud アカウントの ID を入力します。*/
static String userId = "11470***876***55";
public static void main(String[] args) {
// チャネル ID を入力します。
String tunnelId = "ab31d1f9-****-4f62-****-914e4b2f78c7";
// エージェント名を入力します。
String agentName = "exampleagent";
// 使用するネットワーク。パブリックネットワークの場合は public、専用回線または VPN の場合は vpc を入力します。
String agentEndpoint = "public";
// デプロイ方法。default のみがサポートされています。
String deployMethod = "default";
try {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
// この例では、中国 (北京) リージョンを使用します。
config.setEndpoint("cn-beijing.mgw.aliyuncs.com");
config.setAccessKeyId(accessKeyId);
config.setAccessKeySecret(accessKeySecret);
// HTTPS と HTTP がサポートされています。このパラメーターを指定しない場合、デフォルトで HTTPS が使用されます。
config.setProtocol("http");
Client client = new Client(config);
CreateAgentRequest request = new CreateAgentRequest();
CreateAgentInfo info = new CreateAgentInfo();
info.setName(agentName);
info.setTunnelId(tunnelId);
info.setAgentEndpoint(agentEndpoint);
info.setDeployMethod(deployMethod);
request.setImportAgent(info);
client.createAgent(userId, request);
} catch (Exception e) {
e.printStackTrace();
}
}
}エージェントのステータスのクエリ
次のサンプルコードは、エージェントのステータスをクエリする方法を示しています。
package sample;
import com.aliyun.hcs_mgw20240626.Client;
import com.aliyun.hcs_mgw20240626.models.GetAgentStatusResponse;
import com.google.gson.Gson;
public class Demo {
/** AccessKey ID や AccessKey Secret をプロジェクトコードにハードコーディングしないでください。AccessKey ペアが漏洩すると、アカウント内のすべてのリソースのセキュリティが損なわれる可能性があります。*/
static String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
static String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
/** ご利用の Alibaba Cloud アカウントの ID を入力します。*/
static String userId = "11470***876***55";
public static void main(String[] args) {
// エージェント名を入力します。
String agentName = "exampleagent";
try {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
// この例では、中国 (北京) リージョンを使用します。
config.setEndpoint("cn-beijing.mgw.aliyuncs.com");
config.setAccessKeyId(accessKeyId);
config.setAccessKeySecret(accessKeySecret);
// HTTPS と HTTP がサポートされています。このパラメーターを指定しない場合、デフォルトで HTTPS が使用されます。
config.setProtocol("http");
Client client = new Client(config);
GetAgentStatusResponse resp = client.getAgentStatus(userId, agentName);
// status フィールドが OK の場合、エージェントは正常です。それ以外の値は、エージェントが異常であることを示します。
System.out.println(new Gson().toJson(resp.getBody().getImportAgentStatus()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
正常な応答の例
{
"ImportAgentStatus": {
"Status": "OK",
"AgentIP": "192.168.0.2",
"AgentVersion": "1.6.0"
}
}エージェントの詳細のクエリ
次のサンプルコードは、エージェントの詳細をクエリする方法を示しています。
package sample;
import com.aliyun.hcs_mgw20240626.Client;
import com.aliyun.hcs_mgw20240626.models.GetAgentResponse;
import com.google.gson.Gson;
public class Demo {
/** AccessKey ID や AccessKey Secret をプロジェクトコードにハードコーディングしないでください。AccessKey ペアが漏洩すると、アカウント内のすべてのリソースのセキュリティが損なわれる可能性があります。*/
static String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
static String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
/** ご利用の Alibaba Cloud アカウントの ID を入力します。*/
static String userId = "11470***876***55";
public static void main(String[] args) {
// エージェント名を入力します。
String agentName = "exampleagent";
try {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
// この例では、中国 (北京) リージョンを使用します。
config.setEndpoint("cn-beijing.mgw.aliyuncs.com");
config.setAccessKeyId(accessKeyId);
config.setAccessKeySecret(accessKeySecret);
// HTTPS と HTTP がサポートされています。このパラメーターを指定しない場合、デフォルトで HTTPS が使用されます。
config.setProtocol("http");
Client client = new Client(config);
GetAgentResponse resp = client.getAgent(userId, agentName);
System.out.println(new Gson().toJson(resp.getBody().getImportAgent()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
正常な応答の例
{
"ImportAgent": {
"Owner": "test_owner",
"Name": "test_name",
"CreateTime": "2024-05-01T12:00:00.000Z",
"ModifyTime": "2024-05-01T12:00:00.000Z",
"DeployMethod": "default",
"AgentEndpoint": "vpc",
"ActivationKey": "6af62558-970d-4f44-8663-4e297170fd6a",
"Tags": "K1:V1,K2:V2",
"Version": "test_agent_id",
"TunnelId": "test_tunnel_id"
}
}エージェントリストのクエリ
次のサンプルコードは、Alibaba Cloud アカウント内のすべてのエージェントをリストする方法を示しています。
package sample;
import com.aliyun.hcs_mgw20240626.Client;
import com.aliyun.hcs_mgw20240626.models.ListAgentRequest;
import com.aliyun.hcs_mgw20240626.models.ListAgentResponse;
import com.google.gson.Gson;
public class Demo {
/** AccessKey ID や AccessKey Secret をプロジェクトコードにハードコーディングしないでください。AccessKey ペアが漏洩すると、アカウント内のすべてのリソースのセキュリティが損なわれる可能性があります。*/
static String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
static String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
/** ご利用の Alibaba Cloud アカウントの ID を入力します。*/
static String userId = "11470***876***55";
public static void main(String[] args) {
try {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
// この例では、中国 (北京) リージョンを使用します。
config.setEndpoint("cn-beijing.mgw.aliyuncs.com");
config.setAccessKeyId(accessKeyId);
config.setAccessKeySecret(accessKeySecret);
// HTTPS と HTTP がサポートされています。このパラメーターを指定しない場合、デフォルトで HTTPS が使用されます。
config.setProtocol("http");
Client client = new Client(config);
ListAgentRequest request = new ListAgentRequest();
// 必要に応じて marker と count を設定します。
String marker = "";
int count = 1;
request.setMarker(marker);
request.setCount(count);
ListAgentResponse resp = client.listAgent(userId, request);
System.out.println(new Gson().toJson(resp.getBody().getImportAgentList()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
正常な応答の例
{
"ImportAgentList": {
"Truncated": true,
"NextMarker": "test_next_marker",
"ImportAgent": [
{
"Owner": "test_owner",
"Name": "test_name",
"CreateTime": "2024-05-01T12:00:00.000Z",
"ModifyTime": "2024-05-01T12:00:00.000Z",
"DeployMethod": "default",
"AgentEndpoint": "vpc",
"ActivationKey": "6af62558-970d-4f44-8663-4e297170fd6a",
"Tags": "K1:V1,K2:V2",
"Version": "test_agent_id",
"TunnelId": "test_tunnel_id"
}
]
}
}エージェントの削除
次のサンプルコードは、エージェントを削除する方法を示しています。
package sample;
import com.aliyun.hcs_mgw20240626.Client;
import com.aliyun.hcs_mgw20240626.models.DeleteAgentResponse;
public class Demo {
/** AccessKey ID や AccessKey Secret をプロジェクトコードにハードコーディングしないでください。AccessKey ペアが漏洩すると、アカウント内のすべてのリソースのセキュリティが損なわれる可能性があります。*/
static String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
static String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
/** ご利用の Alibaba Cloud アカウントの ID を入力します。*/
static String userId = "11470***876***55";
public static void main(String[] args) {
// エージェント名を入力します。
String agentName = "exampleagent";
try {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
// この例では、中国 (北京) リージョンを使用します。
config.setEndpoint("cn-beijing.mgw.aliyuncs.com");
config.setAccessKeyId(accessKeyId);
config.setAccessKeySecret(accessKeySecret);
// HTTPS と HTTP がサポートされています。このパラメーターを指定しない場合、デフォルトで HTTPS が使用されます。
config.setProtocol("http");
Client client = new Client(config);
DeleteAgentResponse resp = client.deleteAgent(userId, agentName);
System.out.println(resp.statusCode);
} catch (Exception e) {
e.printStackTrace();
}
}
}
次のステップ
エージェントを作成した後、データアドレスを作成できます。詳細については、「データアドレス」をご参照ください。