カスタムドメインをバインドすることで、ユーザーはカスタムドメインを通じて、Function Compute にデプロイされている関数にアクセスし、HTTP トリガーで関数を実行できるようになります。この手法は、Function Compute を通じて Web サービスを構築するのに役立ちます。
Function Compute でカスタムドメインをバインドし、さまざまなサービスにある関数にパスをマッピングし、それから、該当するカスタムドメインを使用してその関数にアクセスできます。
使用事例
例として、ドメイン名が api.app.com
の Web サイトを考えます。低コストで高いスケーラビリティを実現するため、外部ユーザーへのサービスに影響を及ぼさずに、Web サービスを Function Compute へ移行したいとします。具体的には、外部サービスに関連付けられたリンクの変更を回避したいとします。この場合、サービスをカスタムドメインをバインドできます。
比較
プロセス | カスタムドメインバインディングなし | カスタムドメインバインディングあり |
デプロイメントフェーズ |
|
|
アクセスフェーズ |
|
|
前提条件
事前に HTTP トリガーの使用を前提に Web サーバーを構築していること。Web サーバー構築の詳細については、「HTTP トリガーのチュートリアル」をご参照ください。
カスタムドメインのバインド
中国向けにドメイン名を展開する場合、Alibaba Cloud を経由して ICP 登録に登録するか、登録済みドメインを移転します。詳細については、「ICP」をご参照ください。
ドメイン名をサービスエンドポイントに関連付けます。具体的には、CNAME レコードをエンドポイントの IP アドレスを指すドメイン名に設定します。Function Compute でバインドする前に CNAME レコードを設定します。
たとえば、ドメイン名が
app.com
、アカウント ID が 12345、Function Compute サービスが中国 (上海) リージョンにデプロイされている場合は、app.com
の CNAME を12345.cn-shanghai.fc.aliyuncs.com
に設定する必要があります。Function Compute でカスタムドメイン名をバインドし、パスを関数にマッピングします。
注意:同じドメイン名にバインドされた関数は、同じリージョンにデプロイする必要がありますが、異なるサービスに属させることができます。
たとえば、リクエストパス
/a
によりservice1
のfunction1
の実行をトリガーし、リクエストパス/b
によりservice2
のfunction2
の実行をトリガーできます。HTTP トリガーが設定されている関数のみが、カスタムドメイン名を使用して実行をトリガーできます。
ルーティングルール
カスタムドメイン名のパスを関数にマッピングする必要があります。リクエストパスを変えることによって、違う関数の実行をトリガーできます。Function Compute は完全一致とあいまい一致をサポートしています。具体的なルールは次の通りです。
完全一致
完全一致では、実際のリクエストパスは、設定されているリクエストパスと完全に同一である必要があります。例えば、パス /a
が、サービス s1 の関数 f1 (“s1/f1” と表記します) の実行トリガーとして設定されている場合、パス /a/
は関数 f1 の実行をトリガーできません。
あいまい一致
パスの最後にだけ指定できるワイルドカード記号 *
をサポートしています。たとえば、/login/*
は /login/
で始まるすべてのリクエストパスを表します。/login/*
を s2/f2 にマッピングした場合、/login/a
および /login/b/c/d
の両方が f2 の実行をトリガーします。
- マッチングの優先度:まず完全一致、その後あいまい一致
- マッチングアルゴリズム:前方最長一致法
例
ドメイン名が api.app.com
で、ルーティングルールが次のようになっていると仮定します。
Path | ServiceName | FunctionName |
---|---|---|
/ |
s1 | f1 |
/* |
s2 | f2 |
/login |
s3 | f3 |
/login/a |
s4 | f4 |
/login/* |
s5 | f5 |
マッチングの結果は次のとおりです。
RequestURI | MatchedServiceName | MatchedFunctionName | MatchedPath |
---|---|---|---|
api.app.com | s1 | f1 | / |
api.app.com/user | s2 | f2 | /* |
api.app.com/login | s3 | f3 | /login |
api.app.com/login/a | s4 | f4 | /login/a |
api.app.com/login/a/b | s5 | f5 | /login/* |
api.app.com/login/b | s5 | f5 | /login/* |
HTTPS 証明書のアップロード
HTTPS プロトコルを使用してカスタムドメインにアクセスする場合、証明書と秘密鍵をアップロードする必要があります。証明書と秘密鍵は PEM 形式で、4 KB を超えてはいけません。
コンソールの操作
Function Compute コンソールにログインします。
[カスタムドメイン名] をクリックして、カスタムドメイン名をバインドし、ルーティングルールを設定します。詳細については、「ルーティングルール」をご参照ください。
証明書をアップロードします。
チュートリアル
詳細については、独自ドメイン名の概要をご参照ください。
ご質問については、チケットを起票し、サポートセンターへお問い合わせください。