このトピックでは、Data Online Migration SDK for Java を使用してトンネルを管理する方法について説明します。
トンネルの作成
説明
トンネルを作成する必要があるのは、Express Connect 回線または VPN を使用するシナリオのみです。インターネットアクセスシナリオでは、トンネルを作成する必要はありません。
トンネルを作成する方法のサンプルコードを次に示します。
package sample;
import com.aliyun.hcs_mgw20240626.Client;
import com.aliyun.hcs_mgw20240626.models.CreateTunnelInfo;
import com.aliyun.hcs_mgw20240626.models.CreateTunnelRequest;
import com.aliyun.hcs_mgw20240626.models.TunnelQos;
public class Demo {
/** AccessKey ペアをコードに保存しないでください。漏洩すると、ご利用の Alibaba Cloud アカウントのすべてのリソースがセキュリティリスクにさらされる可能性があります。 */
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);
CreateTunnelRequest request = new CreateTunnelRequest();
CreateTunnelInfo info = new CreateTunnelInfo();
TunnelQos qos = new TunnelQos();
// MaxBandwidth と MaxQps のデフォルト値は 0 で、制限がないことを意味します。MaxBandwidth の単位はビットです。必要に応じてこれらのパラメーターを設定します。
qos.setMaxBandwidth(1073741824L);
qos.setMaxQps(1000);
info.setTunnelQos(qos);
request.setImportTunnel(info);
CreateTunnelResponse resp = client.createTunnel(userId, request);
System.out.println("Tunnel ID: " + resp.headers.get("x-oss-import-tunnel-id"));
} catch (Exception e) {
e.printStackTrace();
}
}
}トンネルの詳細のクエリ
トンネルの詳細をクエリする方法のサンプルコードを次に示します。
public class Demo {
/** AccessKey ペアをコードに保存しないでください。漏洩すると、ご利用の Alibaba Cloud アカウントのすべてのリソースがセキュリティリスクにさらされる可能性があります。 */
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";
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);
GetTunnelResponse resp = client.getTunnel(userId, tunnelId);
System.out.println(new Gson().toJson(resp.getBody().getImportTunnel()));
} catch (Exception e) {
e.printStackTrace();
}
}
}成功応答の例
{
"ImportTunnel": {
"Owner": "test_owner",
"TunnelId": "test_tunnel_id",
"CreateTime": "2024-05-01T12:00:00.000Z",
"ModifyTime": "2024-05-01T12:00:00.000Z",
"Tags": "K1:V1,K2:V2",
"TunnelQos": {
"MaxQps": 100,
"MaxBandwidth": 1073741824
}
}
}チャネルのリスト
Alibaba Cloud アカウント内のすべてのトンネルに関する情報をクエリする方法のサンプルコードを次に示します。
package sample;
import com.aliyun.hcs_mgw20240626.Client;
import com.aliyun.hcs_mgw20240626.models.GetTunnelResponse;
import com.aliyun.hcs_mgw20240626.models.ListTunnelRequest;
import com.aliyun.hcs_mgw20240626.models.ListTunnelResponse;
import com.google.gson.Gson;
public class Demo {
/** AccessKey ペアをコードに保存しないでください。漏洩すると、ご利用の Alibaba Cloud アカウントのすべてのリソースがセキュリティリスクにさらされる可能性があります。 */
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);
ListTunnelRequest request = new ListTunnelRequest();
// 必要に応じて marker パラメーターと count パラメーターを設定します。
String marker = "";
int count = 1;
request.setMarker(marker);
request.setCount(count);
ListTunnelResponse resp = client.listTunnel(userId, request);
System.out.println(new Gson().toJson(resp.getBody().getImportTunnelList()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
成功応答の例
{
"ImportTunnelList": {
"Truncated": true,
"NextMarker": "test_marker",
"ImportTunnel": [
{
"Owner": "test_owner",
"TunnelId": "test_tunnel_id",
"CreateTime": "2024-05-01T12:00:00.000Z",
"ModifyTime": "2024-05-01T12:00:00.000Z",
"Tags": "K1:V1,K2:V2",
"TunnelQos": {
"MaxQps": 100,
"MaxBandwidth": 1073741824
}
}
]
}
}トンネルの更新
トンネルを更新する方法 (トンネルのサービス品質 (QoS) の更新など) のサンプルコードを次に示します。
package sample;
import com.aliyun.hcs_mgw20240626.Client;
import com.aliyun.hcs_mgw20240626.models.*;
public class Demo {
/** AccessKey ペアをコードに保存しないでください。漏洩すると、ご利用の Alibaba Cloud アカウントのすべてのリソースがセキュリティリスクにさらされる可能性があります。 */
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";
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);
UpdateTunnelInfo info = new UpdateTunnelInfo();
TunnelQos qos = new TunnelQos();
// MaxBandwidth と MaxQps のデフォルト値は 0 で、制限がないことを意味します。MaxBandwidth の単位はビットです。必要に応じてこれらのパラメーターを設定します。
qos.setMaxBandwidth(1273741824L);
qos.setMaxQps(1000);
info.setTunnelQos(qos);
UpdateTunnelRequest request = new UpdateTunnelRequest();
request.setImportTunnel(info);
client.updateTunnel(userId, tunnelId, request);
} catch (Exception e) {
e.printStackTrace();
}
}
}トンネルの削除
トンネルを削除する方法のサンプルコードを次に示します。
package sample;
import com.aliyun.hcs_mgw20240626.Client;
public class Demo {
/** AccessKey ペアをコードに保存しないでください。漏洩すると、ご利用の Alibaba Cloud アカウントのすべてのリソースがセキュリティリスクにさらされる可能性があります。 */
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";
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);
client.deleteTunnel(userId, tunnelId);
} catch (Exception e) {
e.printStackTrace();
}
}
}次のステップ
トンネルを作成した後、引き続きエージェントを作成できます。詳細については、「エージェントの管理」をご参照ください。