エンドポイントとは、サービス API にアクセスする際に使用するドメイン名です。たとえば、中国 (杭州) リージョンの Elastic Compute Service (ECS) の場合、ecs.cn-hangzhou.aliyuncs.com が該当します。エンドポイントはサービスおよびリージョンによって異なります。V2.0 SDK では、エンドポイントを設定する方法が 2 つサポートされています。
エンドポイントの種類
パブリックエンドポイントと VPC エンドポイントの 2 種類があります。エンドポイント。
エンドポイントの設定方法
V2.0 SDK では、以下の優先度でエンドポイントを設定する 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 を指定する:
-
SDK に該当サービスのリージョンからエンドポイントへのマップが含まれており、指定されたリージョン ID がそのマップに存在する場合、SDK は対応するエンドポイントを取得します。
-
マップが存在しない、または指定されたリージョン ID がマップに含まれていない場合、SDK は命名規則に基づいてエンドポイントを自動的に構築します。
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 エンドポイントの利用シーン
以下のシナリオでは、VPC エンドポイントを使用してください。
-
オンプレミスデータセンターとクラウドの両方でビジネスを実行しており、VPC で分離されたモジュールがパブリックインターネット経由で接続されている場合。
-
VPC ベースのクラウドデータセンターを Express Connect を通じてオンプレミス環境に接続し、データセキュリティ、バーストキャパシティ、高速データ同期などのハイブリッドクラウドシナリオを実現している場合。
-
VPC 内でピーク時間が異なる複数のアプリケーションが IP アドレス間で帯域幅を共有し、トラフィックを平準化してコストを削減している場合。
-
複数ノードにわたって完全に VPC 内でサービスを実行しており、地理的に分散したユーザー向けにノード間で高速接続が必要な場合。
ファイルアップロード権限付与エンドポイント
一部の API オペレーションでは、カスタムのオープンプラットフォームエンドポイントを受け付けます。省略された場合、SDK はデフォルトのパブリックエンドポイントを使用します。内部的には、SDK がファイルアップロード認証サービスを呼び出して、アップロード認証情報およびデフォルトの OSS インスタンス情報を取得します。
以下の例では、VIAPI 体検出カウント API に対して 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);
// リージョン ID に基づいて認証サービス用の VPC エンドポイントを設定します。例:openplatform-vpc.cn-hangzhou.aliyuncs.com。
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 でサービスのエンドポイントを確認できます。
-
上部メニューから [Products] を選択し、ECS などのサービスを選択します。
2. [プロダクトのホームページ] で、[リージョンのリスト] を見つけます。
3. ご利用のリージョン ID に対応するエンドポイントを選択し、コピー&ペーストします。
または、API デバッグページで左側のナビゲーションウィンドウにある [Regions] をクリックして、利用可能なエンドポイントを表示することもできます。