nakamurakko’s blog

仕事で覚えたこと、勉強したことを自分のメモ代わりに書いていこうかなと。

Azure FunctionsのHttpTrigger + Azure CDNでルートディレクトリにアクセスさせる

Azure Functionsの登録したFunction Appの設定を変更して、

  • http://<Azureで定義したApp名>.azurewebsites.net

のように、ルートディレクトリに直接アクセスしたかったけど、

  • http://<Function App名>.azurewebsites.net/api/<funcname>
  • http://<Function App名>.azurewebsites.net/<funcname>

のどちらかでアクセスするしかなさそうだった。 それだと取得したドメインのトップサイトに出来ないので、

  1. Function AppをAzure CDN経由でアクセスできるように連携
  2. Azure CDNを独自ドメインと連携

のようにAzure CDNをワンステップはさんで設定してみた。

前提

下記投稿で作成したFunction Appを使用。

Azure FunctionsでHTMLを返す

Function AppをAzure CDNに連携

Azure CDNを作成

Azureポータルを開き、Function Appで「ネットワーク」を選択する。

「アプリに Azure CDN を構成する」を選択する

各項目を設定して「作成」を選択する。(配信元のホスト名はFunction AppのURLが入った状態。)

作成したAzure CDNの概要で下記状態を確認する。

ホスト名 URL
エンドポイントのホスト名 https://Azure CDNのURL
配信元のホスト名 https://Function AppのURL

Azure CDNをFunction Appと連携

作成したCDNの「配信元」を開き、「配信元のパス」に「/Function Appのファンクション名」を設定する。

これで、「Function App名.azurewebsites.net/Function Appのファンクション名」を、

「Azure CDN名.azureedge.net」に連携できた。

独自ドメインと連携

あとは、Azure CDNのエンドポイントのホスト名と独自ドメインを連携させる。 今回は既に外部ドメインサービスで取得していたため、下記の手順で行う。

Azure CDNでドメイン設定

Azure CDNの「カスタム ドメイン」で取得しているドメインを設定する。

ドメインサービス側では、CNAMEにAzure CDNのエンドポイントのホスト名を設定すればいい。