🛺

Azure Functionsを利用してシンプルなURLリダイレクトをノーコードで実現

2021/09/05に公開約2,000字

はじめに

WebサイトのURLを変更したりシステムを統合した際に、以前のURLにアクセスした人を新しく設定したURLに転送するリダイレクトという仕組みがあります。

https://developer.mozilla.org/ja/docs/Web/HTTP/Redirections

リダイレクトする仕組みは難しくないものの、そのためだけにサーバを用意するのは少し面倒でもあります。以下はAzure Functionsを利用してノーコードでURLリダイレクトする方法です。コードを書く必要なく設定できるので、より多くの人が設定できる方法だと思います。

Azure Functionsで関数アプリの作成

Azure ポータルで関数アプリの作成をします。今回の方法では実際に関数を作成する必要は無いので、ランタイム スタックバージョンはどれを選んでも影響は無いように思います。

プロキシの作成

作成した関数アプリのページのメニューからプロキシを開いて、プロキシを追加します。追加する際に入力する値は以下のようになります。

以下のスクリーンショットの<NAME><NEW_URL>はそれぞれの環境に応じて変更してください。

プロキシ

項目
名前 (プロキシの名前を設定)
ルートテンプレート /{*all}
許可されている HTTP メソッド すべてのメソッド

応答のオーバーライド

項目
状態コード 301
状態メッセージ Moved Permanently
ヘッダー Location
Locationの値 (リダイレクト先のURL)

カスタムドメインの設定

関数アプリのページのメニューからカスタムドメインを開いて、カスタムドメインの追加のリンクをクリックします。

転送元のドメイン名を入力して、提示された情報に応じて以下のようにDNSのレコードを設定します。

ホスト名 タイプ データ
asuid.www または asuid.<OLD_HOST> TXT <カスタムドメインの検証ID>
<OLD_HOST> CNAME <FUNCTION_NAME>.azurewebsites.net

これでDNSの変更が反映されるとURLのリダイレクトができるようになりますが、カスタムドメインに対してHTTPSでアクセスすると証明書のエラーが発生するので、次はカスタムドメインの証明書を作成します。

App Serviceマネージド証明書の作成

関数アプリのページのメニューからTLS/SSL の設定を開いて、秘密キー証明書 (.pfx)のタブにあるApp Service マネージド証明書の作成をクリックします。作成する証明書のURLを確認をして作成ボタンをクリックするとマネージド証明書が作成されます。

再度、関数アプリのカスタムドメインのページを開いて、SSL バインディングバインディングの追加をクリックします。TLS/SSL バインディングを追加するウィンドウが開くので、プライベート証明書の拇印に作成したマネージド証明書を指定します。TLS/SSL の種類にはSNI SSLを指定して、バインディングの追加ボタンをクリックします。

これでHTTPSでカスタムドメインにアクセスしても正常にリダイレクトできるようになりました。

まとめ

Azure Functionsを利用してノーコードでURLリダイレクトをすることができました。これまで私がリダイレクトの設定をする場合はAzure以外のクラウドを利用していましたが、今後はAzure Functionsも使っていこうと思います。

Discussion

ログインするとコメントできます