API 環境のセットアップ

Direct Link APIを使用する前に、環境をセットアップする必要があります。

一般的な前提条件

ダイレクトリンクにアクセスするには、 アカウントを設定してください。 アカウントが有料アカウントにアップグレードされていることを確認します。

API の前提条件

API を使用して直接リンクを操作する前に、IAM トークンを取得し、エンドポイントを変数として保存する必要があります。 また、 IBM Cloud Direct Link APIサービスにアクセスできることも確認してください。

以下の例では、directlink.cloud.ibm.com グローバル・エンドポイントを使用します。

ステップ 1: API キーを変数として保管する

以下のコマンドを実行して、アカウントの API キーを環境変数に保管します。 API キーがない場合は、API キーの作成を参照してください。

apikey="<YOUR_API_KEY>"

ステップ 2: IBM IAM (ID およびアクセス管理) トークンを取得する

JSON処理ユーティリティ「 jq 」を使用してIAMトークンを取得・解析するには、次のコマンドを実行してください。 別の構文解析ツールを使用するようにコマンドを変更することも、コマンドの最後の部分を削除して手動でトークンを構文解析することもできます。

IAM_TOKEN=`curl -k -X POST \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --header "Accept: application/json" \
  --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
  --data-urlencode "apikey=$apikey" \
  "https://iam.cloud.ibm.com/identity/token"  |jq -r '(.token_type + " " + .access_token)'`

IAM トークンを表示するには、echo $IAM_TOKEN を実行します。 結果は次のようになります。

Bearer <your_token>

Authorization ヘッダーでは、トークンの先頭が Bearer である必要があります。 結果に Bearer が含まれていない場合は、これを含むように iam_token 変数を更新します。 これらの例では、BearerIAM_TOKEN に含まれていると想定されています。

IAM トークンは有効期限があるため、上記のステップを繰り返して、1 時間ごとにトークンを更新する必要があります。

ステップ 3: API エンドポイントを変数として保管する

後でセッションで再利用できるように、以下のコマンドを実行して、API エンドポイントを変数に保管します。

パブリック・エンドポイント:

directlink_api_endpoint="https://directlink.cloud.ibm.com"

仮想プライベート・エンドポイント:

directlink_api_endpoint="https://private.directlink.cloud.ibm.com"

変数が保存されたことを確認するには、 echo $directlink_api_endpoint を実行し、応答が空でないことを確認してください。

ステップ 4: API バージョンを変数として保管する

すべてのAPIリクエストには、 YYYY-MM-DD という形式の version パラメータを含める必要があります。 以下のコマンドを実行してバージョンの日付を変数に保管し、セッションで再利用できるようにします。 version パラメータの設定に関する詳細については、『 Direct Link API 』の「 バージョン管理 」を参照してください。

api_version="2020-03-31"

この変数が保存されたことを確認するには、echo $api_version を実行して、その応答が空ではないことを確認します。

ステップ 5: API アクセス権限があることを確認する

予期しない結果が生じた場合は、--verbose (デバッグ) フラグを curl コマンドの後ろに追加して、詳細なロギング情報を取得してください。

  • 使用可能なロケーションのリスト API を呼び出して、Direct Link で使用可能なロケーションを JSON 形式で確認します。 少なくとも 1 つのオブジェクトが返されます。

    この例では、 Direct Link 専用ゲートウェイで利用可能なロケーションをリストアップしています。 Direct Link コネクトの場合は、 connectdedicated に置き換えてください。

    curl -X GET "$directlink_api_endpoint/v1/offering_types/dedicated/locations?version=$api_version"   -H "Authorization: $IAM_TOKEN"
    
  • Listゲートウェイ APIを呼び出すと、ご自身のアカウントで既に作成済みの直接リンクをJSON形式で確認できます。

    curl -X GET "$directlink_api_endpoint/v1/gateways?version=$api_version"   -H "Authorization: $IAM_TOKEN"