🙆

(小ネタ)Cloudflare Workers で Routesをセットする方法

2023/02/22に公開

この記事では小ネタですが、Cloudflare WorkersでRoutesをセットする方法を紹介します。デフォルトではWorkersは例えば<xxxx.<account-name>workres.dev>などのドメインで起動しますが、Routesをセットすると皆さんがお持ちのドメインでWorkersにアクセスすることができます。

例えば作成直後のWorkersは以下の通りとの名前となります。

Routesの情報は最初1になっているはずです。これにRoutesを追加するためViewを押します。

"Add route"を押します。

Zoneで皆さんがすでに保有しているドメインをドロップダウンから選び、サブドメインを追加します。

この例だと"harunobukameda.labrat.online"ドメインに対する全てのサブドメインアクセス(*.harunobukameda.labrat.online)がWorkersにルーティングされます。

次に左ペインのDNS → RecordをクリックしCNAMEを追加します。

"Add record"を選んで以下の通りCNAMEを設定します。

この例ですとtest.harunobukameda.labrat.onlineへのアクセスがproud-firefly-399d.harunobukameda.workers.devへCNAMEにより解決されます。

設定を保存して1分程度待てば、test.harunobukameda.labrat.onlineでアクセスができます。proud-firefly-399d.harunobukameda.workers.devへアクセスしたときと全く同じ内容が表示されるはずです。

Custome Domainとの違い
WorkersにはCustome Domainという機能があります。

上記の手順では、DNS側でCNAME設定が必要でしたらCustome Domainを使えばCNAMEの設定が不要になります。
"wrangler.toml"に

routes = [
	{ pattern = "test.harunobukameda.labrat.online", custom_domain = true }
]

と記載すればOKです。
先ほどの手順より便利ですが1個注意点があります。
カスタムドメインを使うと、そのドメインがリクエストの呼び出し元となるため"fetch()"時の動作に影響を与えます。
くわしくはこちらをご覧ください。

設定を行うとRoutesではなく以下のように表示されます。

DNS設定画面ではこのようにTYPEがWorkersとしてセットされています。これはマネージメントコンソールからは設定できないタイプになります。

またこのようにデフォルトで存在していたFQDNが削除され(Routesが0となって)います

上記の手順(Routes)だとCNAMEなのでそのままオリジナルFQDNでのアクセスができてしまいますが、Custome Domainではアクセスが行えなくなります。
以上、小ネタでした。

Discussion