V2.0 SDK を使用して OpenAPI を呼び出す場合、対象の Alibaba Cloud サービスのエンドポイントを設定する必要があります。リソースを作成する際は、ビジネス拠点から物理的に最も近いリージョンのエンドポイントを選択して、ネットワーク遅延を削減し、応答速度を向上させます。リソースを照会、更新、または削除する際は、リソースが配置されているリージョンのエンドポイントを選択します。これは、リソースのストレージはリージョン固有であり、クロスリージョン操作は失敗する、またはデータ整合性リスクをもたらす可能性があるためです。このトピックでは、V2.0 SDK でエンドポイントを設定する方法について説明します。
エンドポイントのタイプ
エンドポイントは、パブリックエンドポイントと VPC エンドポイントの 2 つのカテゴリに分類されます。ビジネスが Elastic Compute Service (ECS) や Container Service for Kubernetes (ACK) など、VPC にデプロイされている場合、VPC エンドポイントを介して VPC 内のクラウドリソースにアクセスできます。VPC エンドポイントは、セキュリティを向上させ、ネットワーク遅延を削減します。詳細については、「エンドポイント」をご参照ください。
エンドポイントの設定
V2.0 SDK には、エンドポイントを設定するための 2 つの方法があります:エンドポイントを直接指定する方法と、リージョン ID を指定して自動的に取得する方法です。
方法 1:エンドポイントの指定 (推奨)
クラウドサービスのクライアントオブジェクトを初期化する際に、エンドポイントを指定できます。パブリックエンドポイントと VPC エンドポイントの両方に対応しています。
次のサンプルコードでは、エンドポイント関連の設定のみを示します。
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
// エンドポイントを設定します。
config.setEndpoint("<ENDPOINT>");
方法 2:リージョン ID の指定
エンドポイントを指定しない場合、クラウドサービスのクライアントオブジェクトを初期化する際にリージョン ID を指定できます。SDK は、対応するエンドポイントを自動的に解決します。
アドレッシングロジックは次のとおりです:
ほとんどのクラウドサービス SDK は、リージョン ID をエンドポイントにマッピングする endpointMap を定義します。たとえば、ECS SDK の endpointMap は次のとおりです。
{
"ap-northeast-2-pop": "ecs.aliyuncs.com",
"cn-beijing-finance-pop": "ecs.aliyuncs.com",
"cn-beijing-gov-1": "ecs.aliyuncs.com",
"cn-beijing-nu16-b01": "ecs-cn-hangzhou.aliyuncs.com",
"cn-edge-1": "ecs.cn-qingdao-nebula.aliyuncs.com",
"cn-fujian": "ecs-cn-hangzhou.aliyuncs.com",
"cn-haidian-cm12-c01": "ecs-cn-hangzhou.aliyuncs.com",
"cn-hangzhou": "ecs-cn-hangzhou.aliyuncs.com",
"cn-hangzhou-bj-b01": "ecs-cn-hangzhou.aliyuncs.com",
"cn-hangzhou-finance": "ecs.aliyuncs.com",
"cn-hangzhou-internal-prod-1": "ecs-cn-hangzhou.aliyuncs.com",
"cn-hangzhou-internal-test-1": "ecs-cn-hangzhou.aliyuncs.com",
"cn-hangzhou-internal-test-2": "ecs-cn-hangzhou.aliyuncs.com",
"cn-hangzhou-internal-test-3": "ecs-cn-hangzhou.aliyuncs.com",
"cn-hangzhou-test-306": "ecs-cn-hangzhou.aliyuncs.com",
"cn-hongkong-finance-pop": "ecs.aliyuncs.com",
"cn-huhehaote-nebula-1": "ecs.cn-qingdao-nebula.aliyuncs.com",
"cn-north-2-gov-1": "ecs.aliyuncs.com",
"cn-shanghai-et15-b01": "ecs-cn-hangzhou.aliyuncs.com",
"cn-shanghai-et2-b01": "ecs-cn-hangzhou.aliyuncs.com",
"cn-shanghai-finance-1": "ecs-cn-hangzhou.aliyuncs.com",
"cn-shanghai-inner": "ecs.aliyuncs.com",
"cn-shanghai-internal-test-1": "ecs-cn-hangzhou.aliyuncs.com",
"cn-shenzhen-finance-1": "ecs-cn-hangzhou.aliyuncs.com",
"cn-shenzhen-inner": "ecs.aliyuncs.com",
"cn-shenzhen-st4-d01": "ecs-cn-hangzhou.aliyuncs.com",
"cn-shenzhen-su18-b01": "ecs-cn-hangzhou.aliyuncs.com",
"cn-wuhan": "ecs.aliyuncs.com",
"cn-yushanfang": "ecs.aliyuncs.com",
"cn-zhangbei": "ecs.aliyuncs.com",
"cn-zhangbei-na61-b01": "ecs-cn-hangzhou.aliyuncs.com",
"cn-zhangjiakou-na62-a01": "ecs.cn-zhangjiakou.aliyuncs.com",
"cn-zhengzhou-nebula-1": "ecs.cn-qingdao-nebula.aliyuncs.com",
"eu-west-1-oxs": "ecs.cn-shenzhen-cloudstone.aliyuncs.com",
"rus-west-1-pop": "ecs.aliyuncs.com"
}
-
endpointMapが存在しない場合、SDK は構築ルールに基づいてエンドポイントを構築します。 -
endpointMapが存在し、指定されたリージョン ID が含まれている場合、エンドポイントはそのリージョン ID にマッピングされた値になります。 -
endpointMapに指定されたリージョン ID が含まれていない場合、SDK は構築ルールに基づいてエンドポイントを構築します。
構築ルールは次のとおりです:
-
リージョンサービス:
<PRODUCT_CODE><SUFFIX><NET_WORK>.<REGION_ID>.aliyuncs.com -
集中型サービス:
<PRODUCT_CODE><SUFFIX><NET_WORK>.aliyuncs.com
デプロイタイプと <PRODUCT_CODE> は、使用するクラウドサービス SDK によって決まります。シナリオに応じて、他の 3 つのパラメーターを指定します。
-
<SUFFIX>:VPC エンドポイントのサフィックス。クラウドサービスの VPC エンドポイントのサフィックスに基づいてこのパラメーターを指定します。ハイフン (-) は追加しないでください。 -
<NET_WORK>:エンドポイントのタイプ。デフォルトではパブリックエンドポイントが使用されます。有効な値:-
vpc:サービスの VPC エンドポイントを取得します。 -
intranet:Simple Log Service の VPC エンドポイントを取得します。この値は Simple Log Service SDK (sls20201230) に固有のものです。 -
accelerate:Simple Log Service SDK (sls20201230) を使用する場合、Simple Log Service の転送アクセラレーションエンドポイントを取得します。
-
-
<REGION_ID>:リソースが配置されているリージョン。
VPC エンドポイントの形式は多岐にわたります。VPC エンドポイントを設定するには、リージョン ID から構築するのではなく、方法 1 でエンドポイントを指定してください。
次のサンプルコードでは、エンドポイント関連の設定のみを示します。
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
// リージョン ID を指定します。
config.setRegionId("<REGION_ID>");
config.setNetwork("<NET_WORK>"); // このパラメーターはパブリックエンドポイントには設定不要です。VPC エンドポイントの場合は、vpc に設定します。
config.setSuffix("<SUFFIX>"); // このパラメーターはパブリックエンドポイントには設定不要です。VPC エンドポイントの場合は、クラウドサービスの VPC エンドポイントのサフィックスに基づいて指定し、ハイフン (-) は追加しないでください。
付録:エンドポイントの検索
クラウドサービスのエンドポイントは、OpenAPI ポータルで確認できます。
-
ポータルのトップメニューから [Products] を選択し、ECS などのプロダクトを選択します。
-
[製品ホームページ] で、[サービスリージョン一覧] を見つけます。
-
リージョン ID に対応するエンドポイントを選択し、コピーして貼り付けます。
または、「API デバッグ」ページで、左側のナビゲーションペインにある [リージョン] をクリックすると、そのクラウドサービスでサポートされているエンドポイントが表示されます。