導入
本記事では、Azureが提供しているAPI Managementサービスの従量課金プランを使用してみたので、その感想をまとめたいと思います。
目次
- Azure API Managementサービスとは
- 料金体型
- インスタンスの作成
- APIのインポート
- APIをテストする
- 終わりに
Azure API Managementサービスとは
以下の記述が簡潔でわかりやすかったので引用します。
Azure API Management は、Azure が提供するマネージドな API ゲートウェイのサービスで、バックエンドにあるサービスを提供する API を一括で管理して様々な処理 (セキュリティ、レート制限、データ変換、監視、など) を仲介するものです。
引用元:Azure API Management の解説とハンズオンの復習
料金体型
詳細はこちらを参照してください。
プランは大きく分けて、使用量に応じた従量課金プランと、単位時間あたりの使用量に応じたプランの2種類に分類できます。
従量課金プランは機能は大きく制限されますが、100万リクエスト/月 まで無料で使えます。
個人の検証用には十分ですので、こちらを使っていきます。
※「使用量」という謎の翻訳になっていますが、「従量課金」プランを指しています。
インスタンスの作成
公式ドキュメントをベースに手順を説明いたします。
※developerプランの前提で書かれているので、従量課金プランに置き換えていきます
Azure portal メニューから [リソースの作成] -> API Management を検索 -> [API管理] を選択します。
[API Management サービス] 画面で設定を入力します。
- 東日本リージョンでは従量課金プランを選択できないので、東アジアリージョンを選択
- 価格レベルを見ると「消費」とありますが、「consumption」の略で、これが従量課金プランを指していると思われます。この辺りちゃんとして欲しいですね・・・
[作成] 押下後、ポータルの通知部分にデプロイ中の旨が表示されます。
数分待つとデプロイが完了しました。
※公式ドキュメントの手順はdeveloperプランで20~30分かかると記載がありましたが、従量課金プランは速いのでしょうか?笑
検索フォームからAPI Maagementサービスを検索すると、先ほどのリソースが作成されていることがわかります。
APIのインポート
続いてAPIをAzure API Managementにインポートしていきます。
サンプルとなるAPIはAzureで用意されており、以下URLを叩くと仕様を確認できます。
こちらを利用していきます。
https://conferenceapi.azurewebsites.net?format=json
左側のナビゲーションの [API Management] -> [API] -> [OpenAPI] タイルを選択し、ポップアップ画面の Full を選択します。
以下の通り入力して [Create] を押下します。
各項目の説明は公式ドキュメントを参照してください。
Unlimited
としました。
APIをテストする
続いて登録したAPIをテストしてみます。
左側のナビゲーションの [API Management] -> [API] -> [Demo Conference API] -> [テスト] -> [GetSpeakers] を選択すると、
GetSpeakers APIの仕様が表示されます。
HTTP リクエスト部分を抜粋すると
GET https://{API Managementサービス名}.azure-api.net/conference/speakers HTTP/1.1
Host: {API Managementサービス名}.azure-api.net
Ocp-Apim-Subscription-Key: *****************************
Ocp-Apim-Trace: true
仕様ではdayno
とspeakername
というクエリパラメータが設定されていますが、とりあえず空のまま利用してみます。
「Send」を押下します。
正常終了すれば、以下のような200レスポンスが返却されるかと思います。
HTTP レスポンスを抜粋すると
HTTP/1.1 200 OK
cache-control: no-cache
content-length: 40606
content-type: application/vnd.collection+json
date: Sat, 19 Sep 2020 03:35:06 GMT
expires: -1
ocp-apim-trace-location: https://apimstrvh1epexidsgscyqls.blob.core.windows.net/apimstbowbjbbkitkmaerfbd-inspector/-ju2SS1tie9vHgGnnGc9LA2-1?sv=2018-03-28&sr=c&sig=0yHVqER3qaUFRDHaWycBph1PD%2Fx9pI0UrHDhnDXpmGY%3D&se=2021-09-19T03%3A00%3A49Z&sp=racwdl&traceId=6dfbbf94f14247289c444292b22531e0
pragma: no-cache
request-context: appId=cid-v1:1d21644b-7e61-4c5d-9e16-e5c56dba9811
vary: Origin
x-aspnet-version: 4.0.30319
x-powered-by: ASP.NET
{
"collection": {
"version": "1.0",
"href": "https://conferenceapi.azurewebsites.net:443/speakers",
"links": [],
"items": [{
"href": "https://conferenceapi.azurewebsites.net/speaker/1",
"data": [{
"name": "Name",
"value": "Scott Guthrie"
}],
"links": [{
"rel": "http://tavis.net/rels/sessions",
"href": "https://conferenceapi.azurewebsites.net/speaker/1/sessions"
}]
},
・
・
・
],
"queries": [],
"template": {
"data": []
}
}
}
終わりに
本日はAzureのAPI Managementサービスについて、サンプルAPIの登録、テスト実行まで行いました。
従量課金プランでは、100万リクエスト/月まで無料ですので、いろいろ試してみようかと思います。