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で「ネットワーク」を選択する。

f:id:nakamurakko:20200220090418p:plain

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

f:id:nakamurakko:20200220090444p:plain

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

f:id:nakamurakko:20200220090505p:plain

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

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

f:id:nakamurakko:20200220090544p:plain

Azure CDNをFunction Appと連携

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

f:id:nakamurakko:20200220090616p:plain

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

f:id:nakamurakko:20200220090636p:plain

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

f:id:nakamurakko:20200220090708p:plain

独自ドメインと連携

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

Azure CDNでドメイン設定

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

f:id:nakamurakko:20200220090729p:plain

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

f:id:nakamurakko:20200220090754p:plain