エンドポイントは、Alibaba Cloud サービスのドメイン名です。たとえば、中国 (杭州) リージョンの Elastic Compute Service (ECS) のエンドポイントは ecs.cn-hangzhou.aliyuncs.com です。各 Alibaba Cloud サービスには固有のエンドポイントがあります。サービスのエンドポイントは、リージョンによって異なる場合があります。このトピックでは、Alibaba Cloud SDK V2.0 でエンドポイントを設定する方法について説明します。
エンドポイントの種類
エンドポイントは、パブリックエンドポイントと Virtual Private Cloud (VPC) エンドポイントに分けられます。詳細については、「エンドポイント」をご参照ください。
エンドポイントの設定
Alibaba Cloud SDK V2.0 は、エンドポイントを設定するための 2 つの方法を提供しています。次のセクションでは、優先順位の高い順に方法について説明します。
カスタムエンドポイントを指定してエンドポイントを設定することをお勧めします。
カスタムエンドポイントを指定します。クライアントを初期化するときにエンドポイントを指定できます。OpenAPI Explorer でエンドポイントを照会できます。詳細については、このトピックの「付録: エンドポイントの照会」セクションを参照してください。
import com.aliyun.ecs20140526.Client; import com.aliyun.teaopenapi.models.Config; public class Sample { public static void main(String[] args) throws Exception { com.aliyun.teaopenapi.models.Config config = new Config(); config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")); config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // エンドポイントを設定します。 config.setEndpoint("<endpoint>"); Client client = new Client(config); } }カスタムリージョン ID を指定します。
Alibaba Cloud サービスの SDK にリージョン ID とエンドポイントの関係オブジェクトが含まれており、指定されたリージョン ID が関係オブジェクトに含まれている場合は、関係オブジェクトからエンドポイントを取得できます。
Alibaba Cloud サービスの SDK にリージョン ID とエンドポイントの関係オブジェクトが含まれていない場合、または指定されたリージョン ID が関係オブジェクトに含まれていない場合は、連結ルールに基づいてエンドポイントが自動的に連結されます。
import com.aliyun.ecs20140526.Client; import com.aliyun.teaopenapi.models.Config; public class Sample { public static void main(String[] args) throws Exception { Config config = new Config(); config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")); config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // リージョン ID に基づいてエンドポイントを指定します。 config.setRegionId("<regionId>"); Client client = new Client(config); } }
VPC エンドポイントが使用されるシナリオ
Alibaba Cloud SDK を使用して API オペレーションを呼び出し、ビジネスに次の要件がある場合は、VPC エンドポイントを設定することをお勧めします。
ビジネスシステムは、オンプレミスデータセンターとクラウドデータセンターの両方にデプロイされています。さまざまなビジネスモジュールは、VPC ネットワークに基づいて構築され、分離されたクラウド環境を構築します。データセンターはインターネットを介して相互に通信します。
クラウドデータセンターは、VPC ネットワークに基づいてデプロイされます。Express Connect 回線を介してオンプレミスデータセンターと通信し、ハイブリッドクラウド接続を実装します。これにより、コアユーザーデータのセキュリティが確保され、ワークロードの変動への対応と高速なデータ同期に役立ちます。
VPC ネットワークに基づいてデプロイされた複数のアプリケーションが外部サービスを提供する必要があり、アプリケーションのワークロードはさまざまな時点で変動します。この場合、複数の IP アドレスが帯域幅を共有する必要があり、トラフィックの変動を削減してコストを削減する必要があります。
クラウドサービスは VPC ネットワークに基づいて構築されます。さまざまなリージョンのユーザーのネットワークレイテンシを削減するために、ビジネスシステムはさまざまなノードにデプロイされます。ユーザーエクスペリエンスを最適化するには、これらのノード間の高帯域幅接続が必要です。
認証情報をリクエストするためのエンドポイントの取得
一部の API オペレーションは、オープンプラットフォームのエンドポイントを設定するために呼び出すことができます。エンドポイントを設定しない場合は、デフォルトのパブリックエンドポイントが使用されます。エンドポイントを使用してファイルアップロード認証サービスを呼び出し、認証情報とデフォルトの Object Storage Service (OSS) バケットに関する情報を取得できます。
次の例は、Visual Intelligence API (VIAPI) の人数検出オペレーションを呼び出すことによって VPC エンドポイントを設定する方法を示しています。
import com.aliyun.facebody20191230.models.DetectBodyCountAdvanceRequest;
import com.aliyun.facebody20191230.models.DetectBodyCountResponse;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
import com.google.gson.Gson;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
public class Sample {
public static void main(String[] args) throws Exception {
Config config = new com.aliyun.teaopenapi.models.Config();
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
config.setRegionId("<regionId>");
// ファイルのアップロードに使用する OSS エンドポイントを設定します。内部ネットワークを使用してファイルをアップロードするには、次の行のコメントを解除します。
// config.setEndpointType("internal");
com.aliyun.facebody20191230.Client client = new com.aliyun.facebody20191230.Client(config);
// openplatform-vpc.cn-hangzhou.aliyuncs.com などのリージョン ID に基づいて認証サービスの VPC エンドポイントを設定します。
client._openPlatformEndpoint="openplatform-vpc.<regionId>.aliyuncs.com";
RuntimeOptions runtimeOptions = new RuntimeOptions();
// ファイルを読み取り、ファイルストリームをインスタンス化します。
File f = new File("<your-file-path>");
InputStream in =new FileInputStream(f);
DetectBodyCountAdvanceRequest request = new DetectBodyCountAdvanceRequest();
request.setImageURLObject(in);
DetectBodyCountResponse resp = client.detectBodyCountAdvance(request, runtimeOptions);
// サーバーから返されたボディとヘッダーを含むレスポンス。
System.out.println(new Gson().toJson(resp.body));
System.out.println(new Gson().toJson(resp.headers));
}
}付録: エンドポイントの照会
OpenAPI Explorer でエンドポイントを照会できます。
OpenAPI Explorer のホームページで Alibaba Cloud サービスを選択します。この例では、ECS が選択されています。

2. ECS のホームページで、[リージョン] タブをクリックします。

3. 指定するリージョンを見つけ、そのリージョンの ECS のエンドポイントをコピーします。
デバッグページで ECS のエンドポイントを照会することもできます。このページで、左側のナビゲーションペインの [リージョン] にポインターを移動すると、ECS のエンドポイントが表示されます。
