Global Accelerator API リクエストを送信するには、HTTP GET リクエストを Global Accelerator エンドポイントに送信する必要があります。 呼び出す API に対応するリクエストパラメーターを追加する必要があります。 API の呼び出し後、システムが応答を返します。 リクエストとレスポンスは UTF-8 でエンコードされます。

リクエスト構文

Global Accelerator API は RPC プロトコルを使用します。 HTTP GET リクエストを送信することにより、Global Accelerator API を呼び出すことができます。

リクエスト構文は以下のとおりです。
http://Endpoint/?Action=xx&Parameters
説明:
  • Endpoint:Alibaba Cloud CDN API のエンドポイントは cdn.aliyuncs.com です。
  • Action:実行中の操作の名前を設定します。 たとえば、既存の Global Accelerator インスタンスに関する情報を照会するには、Action パラメーターを DescribeAccelerator のように設定する必要があります。
  • Version :Global Accelerator API のバージョンを設定します。 この値は 2019-11-20 に設定します。
  • Parameters:API のリクエストパラメーターを設定します。 複数のパラメーターを指定する場合は、アンパサンド (&) で区切ります。

    リクエストパラメーターは、共通パラメーターと API 固有のパラメーターで構成されます。 共通パラメーターは、すべての Global Accelerator API の呼び出しで使用されます。 詳細については、「共通パラメーター」をご参照ください。

以下に、Global Accelerator で DescribeAcceleratorグを呼び出す例を示します。
以下のコードは読みやすさを考慮して編集されています。
https://ga.aliyuncs.com/?Action=DescribeAccelerator
&Format=xml
&Version=2019-11-20
&Signature=xxxx%xxxx%3D
&SignatureMethod=HMAC-SHA1
&SignatureNonce=15215528852396
&SignatureVersion=1.0
&AccessKeyId=key-test
&TimeStamp=2012-06-01T12:00:00Z
...

リクエストの署名

セキュリティを確保するには、すべての API リクエストに署名する必要があります。 Alibaba Cloud はリクエストの署名を使用して、API の呼び出し元を確認します。

https://Endpoint/?SignatureVersion=1.0&SignatureMethod=HMAC-SHA1&Signature=xxxx%xxxx%3D&SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf

Global Accelerator は、アクセスキーのペアを使用した対称暗号化を実装して、リクエストの送信元を検証します。 アクセスキーのペアは、Alibaba Cloud アカウントと RAM ユーザーに発行される資格情報であり、ログインユーザー名とパスワードに似ています。 アクセスキーのペアは、AccessKeyID と AccessKey secret で構成されます。 AccessKey IDはユーザーの ID を検証するために使用され、AccessKey secret は署名文字列を暗号化して検証するために使用されます。 AccessKey Secret は、機密情報として取り扱う必要があります。

以下の形式で、Global Accelerator APIリクエストに署名を追加する必要があります。
https://endpoint/?SignatureVersion=1.0&SignatureMethod=HMAC-SHA1&Signature=xxxx%xxxx%3D&SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf
DescribeAccelerator の例で説明します。 AccessKey ID が testid で、AccessKey secret が testsecret の場合、元のリクエスト URL は次のとおりです。
http://ga.aliyuncs.com/?Action=DescribeAccelerator
&TimeStamp=2016-02-23T12:46:24Z
&Format=XML
&AccessKeyId=testid
&SignatureMethod=HMAC-SHA1
&SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf
&Version=2019-11-20
&SignatureVersion=1.0
署名を計算するには、次の手順を実行します。
  1. 署名する文字列を作成してエンコードします。
    GET&%2F&AccessKeyId%3Dtestid%26Action%3DDescribeAccelerator%26Format%3DXML%26SignatureMethod%3DHMAC-SHA1%26SignatureNonce%3D3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf%26SignatureVersion%3D1.0%26TimeStamp%3D2016-02-23T12%253A46%253A24Z%26Version%3D2014-05-26
    1. リクエストパラメーター ( 署名を除く) を整理して、 アルファベット順に正規化されたクエリ文字列を作成します。

      GETメソッドを使用してリクエストを送信すると、リクエストパラメータが URI の一部として送信されます。 リクエストパラメーターは疑問符 (?) の後に続き、アンパサンド (&) で区切られます。

    2. 正規化されたクエリ文字列を UTF-8でエンコードします。 下表に、モニタリンググループを示します。
      文字 エンコーディングルール
      大文字 (A-Z)、小文字 (a-z)、数字 (0-9)、および次の特殊文字:ハイフン (-)、アンダースコア (_)、ピリオド (.)、およびチルダ (~) エンコードされません。
      他の文字 %XY 形式でエンコードされます。 XY は文字の ASCII コードの 16 進表記です。 たとえば、二重引用符 (“) は %22 とエンコードされます。
      拡張 UTF-8 文字 %XY%ZA ... 形式でエンコードされます。
      スペース %20 とエンコードされます。 スペースをプラス記号 (+) としてエンコードしないでください。

      このエンコード方式は、application/x-www-form-urlencoded MIME エンコードアルゴリズム (Java 標準ライブラリーで提供される java.net.URLEncoder クラスの実装など) と類似していますが、異なる方式です。

      エンコードした文字列内のプラス記号 (+) を %20に、アスタリスク (*) を %2A に直接置き換え、%7Eをチルダ (~) に戻せば、上記のエンコード規則に準拠してこのエンコード方式を使用することができます。 percentEncode メソッドを使用して、このアルゴリズムを実装できます。

      private static final String ENCODING = "UTF-8";
      private static String percentEncode(String value) throws UnsupportedEncodingException 
      {
      return value ! = null ? URLEncoder.encode(value, ENCODING).replace("+", "%20").replace("*", "%2A").replace("%7E", "~") : null;
      }
    3. エンコードされたパラメーター名と値を等号 (=) で接続します。
    4. 次に、等号で接続されたパラメーター名と値のペアをアルファベット順にソートし、アンパサンド (&) で接続して正規化クエリ文字列を生成します。
  2. 署名する文字列の HMAC 値を計算します。
    AccessKey Secretにアンパサンド (&) を追加し、新しい文字列をキーとして使用し、HMAC値を計算します。 この例では、キーを testsecret& とします。
    CT9X0VtwR86fNWSnsc6v8YGOjuE=
  3. 署名文字列を Signature パラメーターとしてリクエストに追加します。
    http://ga.aliyuncs.com/?Action=DescribeAccelerator
    &TimeStamp=2016-02-23T12:46:24Z
    &Format=XML
    &AccessKeyId=testid
    &SignatureMethod=HMAC-SHA1
    &SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf
    &Version=2019-11-20
    &SignatureVersion=1.0
    &Signature=CT9X0VtwR86fNWSnsc6v****juE%3D