このトピックでは、API GatewayでAPIを作成し、APIを呼び出してfunction Computeでweb関数を呼び出す方法に関するクイックガイドを提供します。 呼び出しでは、Alibaba Cloud Appの認証方法に従って、アプリケーションのAppCodeが使用されます。
処理中
次の手順を順番に実行する必要があります。
web関数の作成
function Computeでweb関数を作成します。 詳細については、「web関数の作成」をご参照ください。
重要web関数を作成するときは、関数がAPI Gatewayインスタンスと同じリージョンに存在し、ランタイムがJava 8に設定され、コードアップロードメソッドがサンプルコードを使用するように設定されている必要があることに注意してください。
Function Computeコンソールの [関数] ページで、作成した関数をクリックして詳細ページに移動します。 [設定] タブをクリックします。 左側のナビゲーションツリーで、[トリガー] をクリックします。 使用するトリガーを見つけ、その内部エンドポイント
https:// ***-helloworld-**.cn-hangzhou.fcapp.ru n
を [設定] 列にコピーします。
バックエンドサービスの作成
API Gatewayでは、バックエンドサービスをリージョンのリソースとして設定し、管理を簡素化できます。 API Gatewayコンソールでバックエンドサービスを作成し、異なる環境でバックエンドサービスに異なるURLを設定するだけで済みます。 その後、設定されたバックエンドサービスを直接選択してAPIを作成できます。
API Gatewayコンソールにログインします。 左側のナビゲーションウィンドウで、[APIの管理] > [バックエンドサービス] を選択します。 表示されるページで、右上隅の [バックエンドサービスの作成] をクリックします。
[バックエンドサービスの作成] ダイアログボックスで、[名前] を
[FC-Backend]
に、[タイプ] を[Function Compute]
に、[バージョン] を[Function Compute V3.0]
に、[関数タイプ] を[HTTP Function]
に設定します。 次に、[確認] をクリックします。[バックエンドサービス] ページで、作成した
[FC-Backend]
サービスをクリックします。 表示されるページで、[制作] タブを選択し、右上隅の [作成] をクリックします。表示されるページの [基本情報] セクションで、[トリガーパス] を
https:// ***-helloworld-**.cn-hangzhou.fcapp.ru n
に設定します。これは [web関数の作成] の前の手順でコピーされています。 次に、[公開] をクリックします。
APIグループの作成
APIはAPIグループで管理されます。 APIを作成する前に、APIグループを作成する必要があります。
API Gatewayコンソールにログインします。 左側のナビゲーションウィンドウで、[APIの管理] < [APIグループ] を選択します。 [APIグループ] ページで、右上隅の [グループの作成] をクリックします。
[グループの作成] ダイアログボックスで、[インスタンス] ドロップダウンリストからインスタンスを選択し、[グループ名] を
[FC-グループ]
に、[BasePath] を[/
] に設定し、[確認] をクリックします。説明APIグループは、Function Compute関数と同じリージョンにある必要があります。
APIの作成
API Gatewayコンソールにログインします。 左側のナビゲーションウィンドウで、[APIの管理] > [APIグループ] を選択します。
[APIグループ] ページで、作成した
[FC-test]
グループを見つけ、[操作] 列の [APIの管理] をクリックします。[API] ページで、右上隅の [APIの作成] をクリックします。
[APIの作成] ウィザードの [基本情報] ステップで、次のパラメーターを設定し、[次へ] をクリックします。
パラメーター
例
グループ
FC-グループ
API名
FCテスト
セキュリティ認証
Alibaba Cloudアプリ
AppCode認証
AppCode認証の有効化 (ヘッダーとクエリ)
署名アルゴリズム
HMAC_SHA256
[APIリクエストの定義] ステップで、次のパラメーターを設定し、[次へ] をクリックします。
[バックエンドサービスの定義] ステップで、次のパラメーターを設定し、[次へ] をクリックします。
パラメーター
例
設定モード
既存のバックエンドサービスの使用
バックエンドサービスタイプ
Function Compute
バージョン
Function Compute V3.0
関数タイプ
HTTP関数
バックエンドサービス
FC-バックエンド
バックエンドリクエストパス
/
HTTPメソッド
GET
バックエンドサービスのタイムアウト期間
10000
説明このステップでは、API Gatewayがクライアントから受信したリクエストを送信するバックエンドサービスのタイプとURL、およびパラメーターのマッピングと処理方法を設定します。 この例では、Backend Service TypeパラメーターはFunction Computeに設定されています。
[応答の定義] ステップで、ビジネス要件に基づいてページのパラメーターを設定し、[作成] をクリックします。
表示されるメッセージで、[公開] をクリックします。
表示される [APIの発行] ダイアログボックスで、環境を [リリース] に設定し、[備考] セクションに備考を入力し、[発行] をクリックします。
アプリケーションを作成し、APIの呼び出しを許可する
アプリケーションは、APIを呼び出すために使用するIDです。 この例の [APIの作成] ステップでは、認証方法がAlibaba Cloud Appに設定されています。 したがって、APIが公開された後、アプリケーションを作成し、アプリケーションにAPIを呼び出す権限を付与する必要があります。
アプリケーションの作成
API Gatewayコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、[APIの呼び出し] > [アプリ] を選択します。
[アプリ] ページで、右上隅の [アプリの作成] をクリックします。
[アプリの作成] ダイアログボックスで、[アプリ名] を
[fcAPP]
に設定し、[確認] をクリックします。[アプリ] ページで、作成した
[fcApp]
アプリケーションをクリックします。 [アプリの詳細] ページで、[AppKey]
と[AppCode]
の2つの認証方法が利用できることがわかります。AppKey
メソッドには、ユーザー名とパスワードのペアと同様に機能するAppKey
とAppSecret
のペアが含まれます。 APIを呼び出すときは、AppKey
をパラメーターとして渡す必要があります。AppSecret
は、署名の計算に使用されます。 API Gatewayは、AppKeyとAppSecretのペアを検証してIDを認証します。
アプリケーションにAPIを呼び出す権限を付与する
API Gatewayコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、[APIの管理] > [API] を選択します。
APIページで、作成された
FC-test
APIを見つけ、[操作] 列で /> [承認] を選択します。[権限付与] ページで、[ステージ] パラメーターを [リリース] に設定します。 [承認用アプリの選択] セクションの検索バーに、作成したアプリケーションの名前を入力します。 検索結果で、作成したアプリケーションを選択し、[操作] 列の [追加] をクリックし、[確認] をクリックします。 アプリケーションがAPIの呼び出しを許可されていることを通知するメッセージが表示されます。
APIのデバッグDebug the API
API Gatewayはオンラインデバッグをサポートしています。 クライアントでこのAPIを呼び出す前に、この機能を使用してAPIが正しく構成されているかどうかを確認することを推奨します。
API Gatewayコンソールにログインします。 左側のナビゲーションウィンドウで、[APIの呼び出し] > [デバッグ] を選択します。
[デバッグ] ページで、作成した
[FC-test]
APIを選択し、検証方法を [アプリコードの使用] に設定し、[リクエストの送信] をクリックします。 次の情報は、設定が成功したことを示します。
APIの呼び出し
上記の手順を実行することで、APIを作成して公開し、APIを呼び出すためのアプリケーションを作成して承認し、APIをデバッグしました。 このステップでは、API Gatewayが提供するAppCodeを使用して、ビジネスシステムから公開されたAPIを呼び出すことができます。 APIを呼び出す方法の詳細については、「簡易認証モードでAPIを呼び出す」をご参照ください。 この例では、cURLを使用してAPIを呼び出します。
curl -i -X GET "http://fd6f8e2b7bf44ab181a56****-cn-hangzhou.alicloudapi.com" -H "Authorization:APPCODE 7d2b7e4945ce44028ab00***"
API呼び出しの結果を次の図に示します。