このトピックでは、アップグレード版 SDK のエンドポイント設定について説明します。
エンドポイントは、Alibaba Cloud サービス API のドメイン名です。たとえば、Elastic Compute Service (ECS) のエンドポイントは ecs.cn-hangzhou.aliyuncs.com です。各 Alibaba Cloud サービスには、一意のエンドポイントがあります。サービスのエンドポイントは、リージョンによって異なる場合があります。
エンドポイント設定
Darabonba SDK では、API リクエストの送信先となるエンドポイントを 2 つのモードで指定できます。以下に、優先度の高い順に各モードを説明します。
ユーザー定義エンドポイント: このモードでは、SDK クライアントを初期化する際に、エンドポイントを直接指定できます。
OpenAPI デベロッパーポータルで製品のホームページを検索できます。詳細については、このドキュメントの末尾をご参照ください。TypeScript の例:
import * as $OpenApi from '@alicloud/openapi-client'; export default class Client { static async main(): Promise<void> { const config = new $OpenApi.Config({ // 認証情報の設定を省略します。 // 指定するエンドポイント。 endpoint: 'Endpoint' }); } }JavaScript の例:
const { Config } = require('@alicloud/openapi-client'); async function main() { const config = new Config({ // 認証情報の設定を省略します。 // 指定するエンドポイント。 endpoint: 'Endpoint' }); }
2. 連結エンドポイント: このモードでは、リージョン ID を指定すると、Darabonba SDK がエンドポイントを生成します。このモードは、Alibaba Cloud サービスの SDK にエンドポイントデータファイルがある場合にのみ有効です。それ以外の場合、SDK クライアントの初期化時に例外がスローされ、「config.endpoint can not be empty」 というエラーメッセージが返されます。この場合、エンドポイントを直接指定する必要があります。エンドポイントデータファイルの例については、「ECS エンドポイントデータファイル」をご参照ください。アクセスしたいリージョンがデータファイルに含まれていない場合、そのリージョンのエンドポイントは ${Code of the Alibaba Cloud service}.${リージョン ID}.aliyuncs.com の形式で生成されます。以下のサンプルコードは、TypeScript で連結エンドポイントを指定する方法の例です。
import * as $OpenApi from '@alicloud/openapi-client';
export default class Client {
static async main(): Promise<void> {
const config = new $OpenApi.Config({
// 認証情報の設定を省略します。
// アクセスするリージョン。
regionId: 'RegionId'
});
}
}JavaScript の例:
const { default: Ecs20140526 } = require('@alicloud/ecs20140526');
const { Config } = require('@alicloud/openapi-client');
async function main() {
const config = new Config({
// 認証情報の設定を省略します。
// アクセスするリージョン。
regionId: 'RegionId'
});
}ファイルアップロード用のエンドポイント
アップグレード版 SDK は、ファイルアップロード用に 2 種類のエンドポイント設定をサポートしています。
認証に使用されるオープンプラットフォームのエンドポイント。仮想プライベートクラウド (VPC) エンドポイントを設定して、VPC 経由でファイルアップロードに使用する認証情報をリクエストできます。以下のサンプルコードは、TypeScript でオープンプラットフォームのエンドポイントを設定する方法の例です。
import Facebody20191230, * as $Facebody20191230 from '@alicloud/facebody20191230'; import * as $OpenApi from '@alicloud/openapi-client'; import * as $Util from '@alicloud/tea-util'; import { createReadStream } from 'fs'; export default class Client { static async main(): Promise<void> { const config = new $OpenApi.Config({ // 認証情報の設定を省略します。 // アクセスするリージョン。 regionId: 'RegionId', // オープンプラットフォームのエンドポイント。 openPlatformEndpoint: 'openplatform-vpc.cn-shanghai.aliyuncs.com' }); const client = new Facebody20191230(config); const request = new $Facebody20191230.DetectBodyCountAdvanceRequest({ imageURLObject: createReadStream("The directory of the file that you want to upload on your computer"), }); // RuntimeObjectインスタンスを作成し、ランタイムパラメーターを設定します。 const runtime = new $Util.RuntimeOptions({}); const resp = await client.DetectBodyCountAdvance(request, runtime); console.log(resp.headers); console.log(resp.body); } }JavaScript の例:
const { default: Facebody20191230, DetectBodyCountAdvanceRequest } = require('@alicloud/facebody20191230'); const { Config } = require('@alicloud/openapi-client'); const { RuntimeOptions } = require('@alicloud/tea-util'); const { createReadStream } = require('fs'); async function main() { const config = new Config({ // 認証情報の設定を省略します。 // アクセスするリージョン。 regionId: 'RegionId', // オープンプラットフォームのエンドポイント。 openPlatformEndpoint: 'openplatform-vpc.cn-shanghai.aliyuncs.com', }); const client = new Facebody20191230(config); const request = new DetectBodyCountAdvanceRequest({ imageURLObject: createReadStream("The directory of the file that you want to upload on your computer"), }); // RuntimeObjectインスタンスを作成し、ランタイムパラメーターを設定します。 const runtime = new RuntimeOptions({}); const resp = await client.DetectBodyCountAdvance(request, runtime); console.log(resp.headers); console.log(resp.body); }ファイルアップロード用のアドレス。VPC または内部ネットワークでは、内部ネットワークアドレスを使用してファイルをアップロードできます。TypeScript の例:
import Facebody20191230, * as $Facebody20191230 from '@alicloud/facebody20191230'; import * as $OpenApi from '@alicloud/openapi-client'; import * as $Util from '@alicloud/tea-util'; import { createReadStream } from 'fs'; export default class Client { static async main(): Promise<void> { const config = new $OpenApi.Config({ // 認証情報の設定を省略します。 // アクセスするリージョン。 regionId: 'RegionId', // オープンプラットフォームのエンドポイント。 openPlatformEndpoint: 'openplatform-vpc.cn-shanghai.aliyuncs.com', // ファイルのアップロードに使用する OSS エンドポイント。エンドポイントタイプを internal に設定すると、VPC またはクラシックネットワーク経由で内部エンドポイントを使用して OSS にファイルをアップロードできます。エンドポイントタイプを accelerate に設定すると、中国国外の高速化エンドポイントを使用して OSS にファイルをアップロードできます。 endpointType: 'internal' }); const client = new Facebody20191230(config); const request = new $Facebody20191230.DetectBodyCountAdvanceRequest({ imageURLObject: createReadStream("The directory of the file that you want to upload on your computer"), }); // RuntimeObjectインスタンスを作成し、ランタイムパラメーターを設定します。 const runtime = new $Util.RuntimeOptions({}); const resp = await client.DetectBodyCountAdvance(request, runtime); console.log(resp.headers); console.log(resp.body); } }JavaScript の例:
const { default: Facebody20191230, DetectBodyCountAdvanceRequest } = require('@alicloud/facebody20191230'); const { Config } = require('@alicloud/openapi-client'); const { RuntimeOptions } = require('@alicloud/tea-util'); const { createReadStream } = require('fs'); async function main() { const config = new Config({ // 認証情報の設定を省略します。 // アクセスするリージョン。 regionId: 'RegionId', // 認証URLを設定します。 openPlatformEndpoint: 'openplatform-vpc.cn-shanghai.aliyuncs.com', // OSS アップロード URL を設定します。「internal」 は VPC およびクラシックネットワーク用です。「accelerate」 は中国国外の高速化ドメイン名用です。 endpointType: 'internal' }); const client = new Facebody20191230(config); const request = new DetectBodyCountAdvanceRequest({ imageURLObject: createReadStream("The directory of the file that you want to upload on your computer"), }); // RuntimeObjectインスタンスを作成し、ランタイムパラメーターを設定します。 const runtime = new RuntimeOptions({}); const resp = await client.DetectBodyCountAdvance(request, runtime); console.log(resp.headers); console.log(resp.body); }
付録: エンドポイントの検索
製品のエンドポイントは、デベロッパーポータル で確認できます。
デベロッパーポータルのホームページで、ECS などのクラウド製品を選択し、製品のホームページを開きます。ホームページには、API 検索、オンラインデバッグ、診断、および呼び出し統計への入り口があります。
2. 製品のホームページで、サービスリージョンリストを探します。リストには、各リージョンのエンドポイントアドレスが表示されます。
3. 指定したいリージョンを見つけ、そのリージョンのエンドポイントをコピーします。
以下の方法でも検索できます
OpenAPI Explorer の [API デバッグ] タブで、呼び出す API オペレーションを見つけ、サービスアドレス (リージョン) を選択します。SDK サンプルコードセクションに切り替えます。自動生成されたサンプルコードで、エンドポイントが設定されている行を探します。これが、必要なエンドポイントです。