こんにちは、サイオステクノロジーの萩原です。
API GatewayとFunctionsの連携は武井さんの記事でも取り上げられているので二番煎じではありますが、
自分の備忘録も兼ねて、Azure API ManagementとAzure Function (HTTP Trigger) との連携部分に焦点を当ててお話したいと思います。
今回は複雑な認証についてはおいといて、シンプルにAzure API ManagementのAPIで設定したURIを叩いてAzure Functionsを実行する方法を紹介します。
そもそもAPI Managementって何?と思っている方は武井さんの記事に分かりやすい説明があるのでそちらをご覧ください。
この記事を見てAPI Managementが怖いと感じる人が少しでも減ってくれれば幸いです。
手順
設定手順を紹介します。
1. API Managementの作成
AzureのWebコンソール画面にてAPI Managementを作成します。
2. Azure Functionsの作成
続いてAzure Functionsを作成します。
今回はAzureのWebコンソール上で関数の追加や編集を行いたかったので言語はNode.js、OSはWindowsを選択しました。
作成完了後、Azure Functionsのページに移動し、左メニューの「関数」より関数の追加を行います。
HTTPリスエストを受け取った時に関数を実行してほしいので、テンプレートはHTTP triggerを選択します。
HTTP trigger選択後に関数名と認可レベルを設定します。
名前 | 説明 |
---|---|
anonymous | APIキーは特に必要ありません。 |
function | 関数固有のAPIキーが必要になります。 何も指定されなかった場合はこれが既定値になります。 |
admin | マスターキーが必要になります。 |
認可レベルの詳細については公式ドキュメントをご確認ください。
今回はFunctionを選択します。
作成した関数は 関数 > コードとテスト > テストと実行でテスト実行が可能です。
外部から関数を実行する場合は上記画面「関数のURLの取得」を選択すると関数実行に必要なURIを確認できます。
3. API ManagementとAzure Functionsの連携
続いてAPI ManagementとAzure Functionsの連携の設定を行います。
先ほど作成したAPI ManagementのAPIページのAdd APIよりFunction Appを選択します。
先ほど作成したAzure Functionsの関数を選択してcteateボタンを押します。
たったこれだけでAPI ManagementとAzure Functionsの連携は完了です。
とても簡単ですね。
4. API ManagementのAPIを実行
API Mamagementの実行確認は、先ほど作成したAPIのTestページで行えます。
外部からAPIを実行する場合は、同ページのHTTP request項目のURIを叩きます。
初期設定では必ずheaderかクエリにAPIのサブスクリプションキーを指定しないと実行できません。
headerの場合は「Ocp-Apim-Subscription-Key」、queryの場合は「subscription-key」というkeyでサブスクリプションキーを指定しましょう。
サブスクリプションキーのvalueはAPI Managementのページの左メニュー「サブスクリプション」にて確認ができます。
サブスクリプションキーの入力を廃止したり、headerやqueryで指定するkeyの名前を変更したい場合はAPIのSettingsページで変更が可能です。
まとめ
API Managementはとっつきにくいイメージがありましたが、
Azure Functionsとの連携はとても簡単に設定することができました。
API Managementは怖くないことを知ってもらえれば幸いです。
ご覧いただきありがとうございました。