このトピックでは、API Gateway でバックエンドサービスとして VPC (Virtual Private Cloud) 内のリソースを使用して API を作成および公開する方法と、アプリケーションと AppCode を使用して API を呼び出す方法について説明します。API の認証方式を Alibaba Cloud App に設定すると、アプリケーションに対して AppCode が自動的に生成されます。
前提条件
VPC 環境が作成されていること。詳細については、「IPv4 CIDR ブロックを持つ VPC の作成」および「IPv6 CIDR ブロックを持つ VPC の作成」をご参照ください。
Elastic Compute Service (ECS) インスタンスが作成されていること。詳細については、「ステップ 1: ECS インスタンスの作成」をご参照ください。
Server Load Balancer (SLB) と ECS インスタンスが作成され、サービスが VPC で稼働している必要があります。
この例では、ECS インスタンスは VPC 内に作成されます。ECS インスタンス上では、nginx とポート 80 を使用して Web サービスがデプロイされます。
プロセス
以下は、API に基づいて VPC 内のバックエンドサービスへの API Gateway アクセスを構成するための全体的なプロセスです。
VPC アクセス権限の作成
API Gateway が VPC にアクセスできるようにするには、まず VPC アクセス権限を作成する必要があります。
API Gateway コンソールにログインします。上部のナビゲーションバーでリージョンを選択します。左側のナビゲーションウィンドウで、[API の管理] > [VPC] を選択します。
[VPC アクセス権限] ページで、右上の [権限の作成] をクリックします。
[VPC アクセスの作成] ダイアログボックスで、[VPC アクセス名]、[VPC ID]、[インスタンス ID または IP アドレス]、および [ポート番号] パラメーターを指定します。
説明[ホスト] フィールドにドメイン名を入力して、SLB インスタンスまたは ECS インスタンス上の vhost にアクセスできます。
[VPC ID] には、バックエンドサービスが存在する VPC の ID を入力します。[インスタンス ID または IP アドレス] には、バックエンドサービスが存在するインスタンスの ID またはプライベート IP アドレスを入力します。この情報は ECS インスタンスの詳細で取得できます。
Application Load Balancer (ALB) インスタンスの場合、ネットワークタイプは VPC である必要があり、権限付与を作成した後にネットワークタイプをインターネットに変更することはできません。変更した場合、リクエストが API Gateway に送信されなくなる可能性があり、その結果についてはお客様の責任となります。
API グループの作成
API は API グループで管理されます。API を作成する前に、API グループを作成する必要があります。
API Gateway コンソールにログインします。左側のナビゲーションウィンドウで、[API の管理] > [API グループ] を選択します。[API グループ] ページで、右上の [グループの作成] をクリックします。
[グループの作成] ダイアログボックスで、[インスタンス] を選択し、[グループ名] を
nginx-demoに、[BasePath] を/に設定し、[OK] をクリックします。
[API グループ] ページで、作成したグループを表示し、グループ名をクリックして [グループ詳細] ページに移動します。[ドメイン名のバインド]、[基本情報の変更]、[API グループデプロイメントのインスタンス変更] などの操作を実行できます。
API Gateway は、API グループにパブリック第 2 レベルドメイン名を自動的に割り当てます。このドメイン名はデバッグ専用であり、中国 (香港) リージョンおよびその他の中国本土以外のリージョンでは 1 日あたり 100 回、中国本土のリージョンでは 1 日あたり 1,000 回の呼び出し制限があります。API グループを作成した後は、独立ドメイン名をバインドすることをお勧めします。
API の作成
API Gateway コンソールにログインします。上部のナビゲーションバーでリージョンを選択します。左側のナビゲーションウィンドウで、[API の管理] > [API グループ] を選択します。
[グループリスト] ページの、作成した
nginx-demoグループの [アクション] 列で、[API 管理] をクリックします。[API] ページで、右上の [API の作成] をクリックします。
[API の作成] ウィザードの [基本情報] ステップで、次のパラメーターを構成し、[次へ] をクリックします。
パラメーター
例
グループ
nginx-demo
API 名
nginx-test
セキュリティ認証
Alibaba Cloud App
AppCode 認証
AppCode 認証を有効にする (ヘッダーとクエリ)
署名アルゴリズム
HMAC_SHA256

[API リクエストの定義] ステップで、次のパラメーターを構成し、[次へ] をクリックします。
パラメーター
例
プロトコル
HTTP および HTTPS
リクエストパス
/nginx
HTTP メソッド
GET
リクエストモード
パススルー
説明このステップでは、Web ブラウザー、モバイルアプリ、業務システムなどのクライアントが API をリクエストする方法を定義します。構成する必要があるパラメーターには、プロトコル、リクエストパス、HTTP メソッド、リクエストモード、およびリクエストパラメーターセクションのパラメーターが含まれます。この例では、リクエストモードは [パススルー] に設定されています。これは、API Gateway が API リクエストを処理せずに VPC 内のバックエンドサービスに直接渡すことを示します。
[バックエンドサービスの定義] ステップで、次のパラメーターを構成し、[次へ] をクリックします。
パラメーター
例
構成モード
バックエンドサービスのカスタマイズ
バックエンドサービスタイプ
VPC
VPC アクセス名
***-microservice
バックエンドリクエストパス
/
HTTP メソッド
GET
バックエンドサービスのタイムアウト期間
10000
説明このステップでは、API Gateway がクライアントから受信したリクエストを送信するバックエンドサービスのタイプと URL、およびリクエストパラメーターのマッピングと処理方法を構成します。この例では、バックエンドサービスタイプに [VPC] を指定し、VPC アクセス名に以前作成した VPC アクセス権限を指定し、バックエンドリクエストパスにパスを指定します。
[レスポンスの定義] ステップで、必要に応じてページのパラメーターを構成し、[作成] をクリックします。
説明このステップでは、API ドキュメントを生成するためのレスポンス情報を指定します。このドキュメントは、API 呼び出し元が API をよりよく理解するのに役立ちます。レスポンス ContentType、レスポンス例、エラーレスポンス例などのパラメーターを設定できます。この例では、このステップは含まれていません。[作成] をクリックします。
表示されるメッセージで、[公開] をクリックします。

表示される [API の公開] ダイアログボックスで、[環境] を [リリース] に設定し、[備考] セクションに備考を入力して、[公開] をクリックします。
説明API を変更した場合、その変更は対応する環境に API を公開した後にのみ有効になります。API Gateway は、API を公開できる 3 つの環境 (リリース、プレ、テスト) を提供します。
アプリケーションを作成し、API を呼び出す権限をアプリケーションに付与する
アプリケーションは、API を呼び出すために使用する ID です。API の作成 ステップでは、認証タイプが Alibaba Cloud App に設定されています。したがって、API を公開した後、API を呼び出すためのアプリケーションを作成し、権限を付与する必要があります。
アプリケーションの作成
API Gateway コンソールにログインします。上部のナビゲーションバーでリージョンを選択します。左側のナビゲーションウィンドウで、[API の呼び出し] > [アプリ] を選択します。
[アプリ] ページで、右上の [アプリの作成] をクリックします。
[アプリの作成] ダイアログボックスで、[アプリ名] パラメーターを構成し、[確認] をクリックします。

[アプリ] ページで、作成したアプリケーションの名前をクリックして [アプリ詳細] ページに移動します。セキュリティ認証方式 Alibaba Cloud App には、AppKey と AppSecret のペア、および AppCode の 2 つの認証モードが提供されます。この例では、AppCode を使用します。詳細については、「簡易認証モードで API を呼び出す」をご参照ください。

API を呼び出す権限をアプリケーションに付与する
API Gateway コンソールにログインします。上部のナビゲーションバーでリージョンを選択します。左側のナビゲーションウィンドウで、[API の管理] > [API] を選択します。
[API] ページで、
nginx-testAPI を見つけ、[アクション] 列で
> [承認] をクリックします。[承認] ページで、[環境] パラメーターを [リリース] に設定します。[承認するアプリを選択] セクションの検索バーに、作成したアプリケーションの名前を入力します。検索結果で、作成したアプリケーションを選択し、[アクション] 列の [追加] をクリックしてから、[確認] をクリックします。アプリケーションに API の呼び出しが承認されたことを通知するメッセージが表示されます。

セキュリティグループで API Gateway の出口 IP アドレスを許可する
ECS インスタンスのセキュリティグループが、指定されたポートを介したすべての CIDR ブロックを許可していない場合は、API Gateway の出口 IP アドレスをセキュリティグループに追加して、これらの IP アドレスを許可する必要があります。API Gateway の出口 IP アドレスとは、API グループが存在する API Gateway インスタンスの出口 IP アドレスを指します。
API Gateway コンソールにログインします。左側のナビゲーションウィンドウで、[API の管理] > [API グループ] を選択します。[API グループ] ページで、作成した API グループの名前をクリックします。
[グループ詳細] ページで、[インスタンスタイプ] パラメーターを表示します。
左側のナビゲーションウィンドウで、取得したインスタンスタイプに基づいて [インスタンスとクラスター] > [共有インスタンス] または [インスタンスとクラスター] > [専用インスタンス] を選択します。表示されたページで、インスタンス ID に基づいてインスタンスの [アウトバウンドアドレス] パラメーターまでスクロールし、インスタンスの出口 IP アドレスを表示します。

ECS コンソールにログインします。左側のナビゲーションウィンドウで、[インスタンスとイメージ] > [インスタンス] を選択します。作成した ECS インスタンスをクリックして詳細ページに移動します。[セキュリティグループ] タブをクリックし、管理するセキュリティグループをクリックします。[セキュリティグループの詳細] タブで、[インバウンド] タブをクリックし、[クイック追加] をクリックします。[クイック追加] ダイアログボックスで、API Gateway の出口 IP アドレスを構成します。

API のデバッグ
API Gateway はオンラインデバッグをサポートしています。クライアントでこの API を呼び出す前に、この機能を使用して API が正しく構成されているかどうかを確認することをお勧めします。
[デバッグ] ページは、最大 512 KB のリクエストメッセージをサポートします。リクエストメッセージがそれより大きい場合は、SDK を使用して API をデバッグすることをお勧めします。
構成済みのインスタンスのブラックリスト、ホワイトリスト、および IP アドレスベースのアクセスコントロールプラグインは、47.245.113.207 を許可する必要があります。
このページを使用して JWT プラグインをデバッグすることはできません。
デバッグではパブリックドメイン名のみがサポートされます。
API Gateway コンソールにログインします。左側のナビゲーションウィンドウで、[API の呼び出し] > [デバッグ] を選択します。
[デバッグ] ページで、作成した
nginx-testAPI を選択し、[認証方式] として [AppCode を使用] を選択し、[リクエストの送信] をクリックします。次の図に示すレスポンスは、構成が成功したことを示します。
デバッグが失敗した場合は、次のドキュメントをご参照ください。
API の呼び出し
詳細については、「クライアントベースの API 呼び出し」をご参照ください。
デバッグに環境が指定されていない場合、API はデフォルトで本番環境でデバッグされます。API 環境の詳細については、「環境の管理」をご参照ください。
このトピックの目的は、すぐに使い始めるのに役立つことです。バックエンドサービスの高可用性は考慮されていません。ご不明な点がある場合は、「VPC 内のリソースを API のバックエンドサービスとして使用する」をご参照ください。