1. 概要
スケジューリング API は、HTTPDNS の高可用性 (HA) アーキテクチャの中核をなすコンポーネントです。クライアントの所在地やネットワーク状態に基づいて、最適な名前解決サービスノードをインテリジェントに割り当てます。スケジューリング API を使用して、近隣の正常なサービス IP アドレスのリストを取得し、パフォーマンス専有型の名前解決を実現します。
このトピックでは、スケジューリング API の使用方法について、そのフォーマット、パラメーター、セキュリティメカニズム、応答のハンドリングなどを説明します。主なセクションは以下の通りです。
API フォーマット:スケジューリング API の基本フォーマットと URL の構築方法について説明します。
パラメーターの説明:必須パラメーターとオプションパラメーターを含む、スケジューリング API のパラメーターについて詳述します。
リクエスト署名:スケジューリングリクエストのセキュリティを向上させるためのリクエスト署名メカニズムについて説明します。
API 応答の説明:API の応答フォーマットとエラーハンドリングのメカニズムについて説明します。
サービス IP の更新メカニズム:サービス IP の更新戦略とベストプラクティスを提供します。
2. API フォーマット
スケジューリング API は、HTTP または HTTPS 経由でのアクセスをサポートしています。API フォーマットは以下の通りです。
サービス URL:
http(s)://{startup_endpoint}/{account_id}/ss?+{request_parameters}リクエストメソッド:GET
HTTPS プロトコルを使用する場合、証明書検証のために `Host` を手動で `resolvers.httpdns.aliyuncs.com` に設定する必要があります。
{startup_endpoint}:起動エンドポイントです。詳細および適切なアクセスポイントの選択については、「起動アクセスポイント」ドキュメントをご参照ください。{account_id}はご利用のアカウント ID です。「開発者向け設定」から取得できます。{request_parameters}は、追加のスケジューリングコントロールを提供します。詳細については、「パラメーターの説明」セクションをご参照ください。
3. パラメーターの説明
リクエストパラメーターを使用して、スケジューリングポリシーとセキュリティメカニズムをコントロールします。これらのパラメーターを設定することで、基本的なスケジューリングや署名認証などの機能を有効にできます。
3.1. パラメーターリスト
パラメーター | 説明 | 必須 | 署名対象 | 値の例 |
| アカウント ID。URL パスで指定されます。 | はい | いいえ |
|
| スケジューリングリージョン。サービスクラスターの地理的な場所を指定します。 • cn:中国本土クラスター (デフォルト) • hk:中国 (香港) クラスター • sg:シンガポールクラスター • us:米国クラスター • de:ドイツクラスター • global:グローバル近接性ベースのスケジューリング | いいえ | いいえ |
|
| 署名用の乱数。長さが 8~16 文字の 16 進数文字列です。 | いいえ | はい |
|
| 署名の有効性を示すタイムスタンプ。現在の時刻に有効期間 (秒) を加えたものです。有効期間は 30~300 秒を推奨します。 | いいえ | はい |
|
| HMAC-MD5 署名。32 桁の 16 進数文字列です。 | いいえ | いいえ |
|
3.2. リクエストパラメーターの例
特定リージョンへのリクエスト
GET https://{startup_endpoint}/{account_id}/ss?region=cn&n=abcdef2345&t=1632912372&s=de7be63a9f19cf11e9d455d7d4f23cb4 HTTP/1.1近接性ベースのリクエスト
GET https://{startup_endpoint}/{account_id}/ss?region=global&n=abcdef2345&t=1632912372&s=de7be63a9f19cf11e9d455d7d4f23cb4 HTTP/1.14. リクエスト署名 (オプション)
リクエスト署名を有効にすることで、スケジューリングリクエストのセキュリティを向上させます。このメカニズムはリクエストの改ざんを防ぎます。
4.1. 署名アルゴリズム
アルゴリズム:HMAC-MD5
キー:署名キー。「開発者向け設定」からキーを取得できます。
入力:{n}-{secret}-{t} フォーマットで構築された文字列。
出力:32 桁の小文字の 16 進数文字列。
4.2. 署名の手順
乱数 n の生成:長さが 8~16 桁の 16 進数文字列。
有効なタイムスタンプ t の取得:現在の時刻に有効期間 (秒) を加えたもの。有効期間は 30~300 秒を推奨します。
署名文字列の構築:コンポーネントを
{n}-{secret}-{t}フォーマットで連結します。署名の計算:HMAC-MD5 アルゴリズムを使用して署名値を計算します。
4.3. 署名の例
以下を想定します。
乱数 n =
abcdef2345SecretKey =
123456タイムスタンプ t =
1632912372リージョン region =
cn
署名計算プロセス:
署名対象文字列 = "abcdef2345-123456-1632912372"
s = HMAC-MD5("123456", "abcdef2345-123456-1632912372")
= "de7be63a9f19cf11e9d455d7d4f23cb4"最終的なリクエスト:
GET https://{startup_endpoint}/{account_id}/ss?region=cn&n=abcdef2345&t=1632912372&s=de7be63a9f19cf11e9d455d7d4f23cb4 HTTP/1.15. API 応答の説明
スケジューリング API の応答には、サービス IP アドレスのリストと関連メタデータが含まれます。このセクションでは、成功した応答のデータ構造、フィールドの定義、およびエラーのハンドリング方法について説明します。
5.1. 応答フォーマット
リクエストが成功した場合、HTTP 応答ステータスコードは 200 です。応答は JSON フォーマットです。
{
"service_ip": [
"203.107.1.xx",
"106.xxx.1.xx"
],
"service_ipv6": [
"64:ff9b::xxx:121",
"64:ff9b::xxx:122"
]
}5.2. 応答フィールドの説明
フィールド | 説明 |
service_ip | 名前解決サービス用の IPv4 エンドポイントのリスト。 |
service_ipv6 | 名前解決サービス用の IPv6 エンドポイントのリスト。 |
5.3. エラー応答
リクエストが失敗した場合、HTTP 応答ステータスコードは 4xx または 5xx です。応答は JSON フォーマットです。
{
"code": "MissingArgument"
}一般的なエラーコード:
エラーコード | HTTP ステータスコード | 説明 |
MissingArgument | 400 | 必須パラメーターがありません。 |
TimeOutOfSync | 400 | 時間のずれが大きすぎます。`Date` 応答ヘッダーに基づいて時刻を調整してください。 |
InvalidNonce | 400 | 乱数のフォーマットが無効です。 |
InvalidTimestamp | 403 | タイムスタンプのフォーマットが無効です。 |
AccountNotExists | 403 | アカウントが存在しないか、無効になっています。 |
InternalError | 500 | 内部サーバーエラーが発生しました。 |
6. まとめ
このトピックでは、HTTPDNS スケジューリングサービス API の使用方法と技術的な詳細について、API フォーマット、パラメーター設定、セキュリティメカニズム、応答ハンドリングなどの主要な側面を含めて説明しました。スケジューリング API を使用して、最適な名前解決サービス IP のリストを取得できます。IP のリストを取得した後、名前解決を実行できます。詳細については、「名前解決インターフェース」をご参照ください。