ホーム

Azure API Managementの従量課金プランを利用してみた

導入

本記事では、Azureが提供しているAPI Managementサービスの従量課金プランを使用してみたので、その感想をまとめたいと思います。

目次

  1. Azure API Managementサービスとは
  2. 料金体型
  3. インスタンスの作成
  4. APIのインポート
  5. APIをテストする
  6. 終わりに

Azure API Managementサービスとは

以下の記述が簡潔でわかりやすかったので引用します。

Azure API Management は、Azure が提供するマネージドな API ゲートウェイのサービスで、バックエンドにあるサービスを提供する API を一括で管理して様々な処理 (セキュリティ、レート制限、データ変換、監視、など) を仲介するものです。
引用元:Azure API Management の解説とハンズオンの復習

料金体型

詳細はこちらを参照してください。

プランは大きく分けて、使用量に応じた従量課金プランと、単位時間あたりの使用量に応じたプランの2種類に分類できます。
従量課金プランは機能は大きく制限されますが、100万リクエスト/月 まで無料で使えます。
個人の検証用には十分ですので、こちらを使っていきます。
※「使用量」という謎の翻訳になっていますが、「従量課金」プランを指しています。

ScreenShot 2020-09-19 14.34.00.png

インスタンスの作成

公式ドキュメントをベースに手順を説明いたします。
※developerプランの前提で書かれているので、従量課金プランに置き換えていきます

Azure portal メニューから [リソースの作成] -> API Management を検索 -> [API管理] を選択します。
ScreenShot 2020-09-19 11.44.49.png

[API Management サービス] 画面で設定を入力します。
ScreenShot 2020-09-19 11.59.36.png

  • 東日本リージョンでは従量課金プランを選択できないので、東アジアリージョンを選択
  • 価格レベルを見ると「消費」とありますが、「consumption」の略で、これが従量課金プランを指していると思われます。この辺りちゃんとして欲しいですね・・・

[作成] 押下後、ポータルの通知部分にデプロイ中の旨が表示されます。
ScreenShot 2020-09-19 12.00.33.png

数分待つとデプロイが完了しました。
※公式ドキュメントの手順はdeveloperプランで20~30分かかると記載がありましたが、従量課金プランは速いのでしょうか?笑 ScreenShot 2020-09-19 12.03.45.png

検索フォームからAPI Maagementサービスを検索すると、先ほどのリソースが作成されていることがわかります。
ScreenShot 2020-09-19 12.05.02.png

サービスの詳細を確認します。
ScreenShot 2020-09-19 12.05.24.png

APIのインポート

続いてAPIをAzure API Managementにインポートしていきます。
サンプルとなるAPIはAzureで用意されており、以下URLを叩くと仕様を確認できます。
こちらを利用していきます。
https://conferenceapi.azurewebsites.net?format=json ScreenShot 2020-09-19 12.21.05.png

左側のナビゲーションの [API Management] -> [API] -> [OpenAPI] タイルを選択し、ポップアップ画面の Full を選択します。
以下の通り入力して [Create] を押下します。
各項目の説明は公式ドキュメントを参照してください。
ScreenShot 2020-09-19 12.25.42.png ScreenShot 2020-09-19 12.33.08.png Productについては、従量課金プランだと設定は不要との記事もあったので設定方法が不明でしたが、ドキュメント通りUnlimitedとしました。

APIをテストする

続いて登録したAPIをテストしてみます。
左側のナビゲーションの [API Management] -> [API] -> [Demo Conference API] -> [テスト] -> [GetSpeakers] を選択すると、 GetSpeakers APIの仕様が表示されます。
ScreenShot 2020-09-19 12.33.33.png ScreenShot 2020-09-19 12.34.50.png

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

仕様ではdaynospeakernameというクエリパラメータが設定されていますが、とりあえず空のまま利用してみます。
「Send」を押下します。
正常終了すれば、以下のような200レスポンスが返却されるかと思います。
ScreenShot 2020-09-19 12.35.20.png

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万リクエスト/月まで無料ですので、いろいろ試してみようかと思います。

参考ドキュメント