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 変数を更新します。 これらの例では、Bearer が IAM_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 コネクトの場合は、
connectをdedicatedに置き換えてください。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"