Beam の HTTP エントリポイント と、ソラコムが用意する HTTPS テストサーバー を使って、Beam で GET リクエストを転送する際の動作を確認してみましょう。
なお、HTTPS テストサーバーを利用する際は、特別な設定は必要ありません。ここでは、HTTP エントリポイントの設定を追加して、デバイスから GET リクエストを送信します。
Unified Endpoint は GET リクエストに対応していません
Unified Endpoint は、GET リクエストに対応していません。curl http://uni.soracom.io
のような GET リクエストを送信すると、HTTP ステータスコード 405 Method Not Allowed
が返されます。
HTTPS テストサーバーは HTTP リクエストの種類によって動作が異なります
HTTPS テストサーバーは、HTTP リクエストの種類に応じて以下のようにレスポンスを返します。
HTTP リクエストの種類 | HTTPS テストサーバー (https://beamtest.soracom.io ) のレスポンス |
---|---|
POST リクエスト | POST リクエストの HTTP ボディ (ペイロード) に含まれる情報が加工されて返されます。 |
GET リクエスト | GET リクエストの HTTP ヘッダーに含まれる情報が加工されて返されます。 |
デバイスが GET リクエストを送信する先は HTTP エントリポイントです
デバイスが GET リクエストを送信する先は、HTTP エントリポイント (http://beam.soracom.io:8888
) です。デバイスは、HTTPS テストサーバーの URL を意識する必要がないことがポイントです。
HTTP エントリポイントの設定を追加する
SIM グループに HTTP エントリポイントの設定を追加して、IoT SIM を SIM グループに所属させます。HTTPS テストサーバーを利用する際の HTTP エントリポイントの設定は、基本的には Unified Endpoint を利用する場合と同じです。詳しくは、HTTP エントリポイントの設定を追加する を参照してください。
また、Beam の HTTP エントリポイントでは、リクエストを転送するときにカスタムヘッダーを追加できます。ここでは、上記の参照先で設定した HTTP エントリポイントを編集します。
Beam の設定はグループに対して行います
ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。
SIM グループ画面で
をクリックします。SIM グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。
HTTP エントリポイントの設定を追加する で作成した HTTP エントリポイントの をクリックします。
「SORACOM Beam - HTTP 設定」画面が表示されます。
の をクリックします。
以下のように設定します。
項目 説明 「追加」を選択します。 X-SORACOM-BEAM
を入力します。SUCCESS
を入力します。をクリックします。
デバイスで HTTP エントリポイントに GET リクエストを送信する
HTTP エントリポイントに送信した GET リクエストは、下図のように Beam を経由して、HTTPS テストサーバーに転送されます。HTTPS テストサーバーは、転送された GET リクエストの HTTP ヘッダーに含まれる情報を加工してレスポンスを返します。
Beam の利用料金が発生します
Beam では、リクエストを送信するとリクエスト単位で利用料金が発生します。なお、Beam には無料利用枠があるため、無料利用枠内の利用であれば、Beam 利用料金が発生しません。詳しくは、SORACOM Beam の料金プラン を参照してください。
「HTTP エントリポイントを利用する設定を行った IoT SIM」を利用するデバイスで、HTTP エントリポイント (
http://beam.soracom.io:8888
) に GET リクエストを送信します。GET リクエストの例:
$ curl http://beam.soracom.io:8888
Hello SORACOM Beam Client IMSI:xxxxxxxxxxxxxxx SIM ID:xxxxxxxxxxxxxxxxxxx ! == HTTP Headers == HTTP_X_SORACOM_SIM_ID = xxxxxxxxxxxxxxxxxxx HTTP_X_SORACOM_IMSI = xxxxxxxxxxxxxxx HTTP_X_SORACOM_BEAM = SUCCESS
想定通りに動作しない場合は、エラーログを確認してください。詳しくは、エラーログを確認する を参照してください。
[IMSI ヘッダ]、[SIM ID ヘッダ]、[カスタムヘッダ] をオフにするとレスポンスに含まれなくなります
HTTP エントリポイントの設定を変更して
、 、および をオフにしてから、GET リクエストを送信すると、以下のようなメッセージが表示されます。$ curl http://beam.soracom.io:8888
Hello Unknown Client...
== HTTP Headers ==
レスポンスを生成するのは HTTPS テストサーバーです
HTTP エントリポイントで
や 、 などをオンにすると、リクエストの種類 (POST リクエスト、GET リクエストなど) によらず、リクエストが Beam で転送されるときにリクエストヘッダーが追加されます。HTTPS テストサーバーに GET リクエストでリクエストヘッダー (x-soracom-sim-id: xxxxxxxxxxxxxxxxxxx
など) を送信すると、HTTPS テストサーバーからのレスポンスボディにヘッダーの情報 (HTTP_X_SORACOM_SIM_ID = xxxxxxxxxxxxxxxxxxx
など) が含まれます。具体的には以下の処理が行われていますが、これは、HTTPS テストサーバーの機能です。HTTP エントリポイントの機能ではありません。
- キー (例:
x-soracom-sim-id
) にHTTP_
を追加する。 - キーの小文字を大文字に変換する。
- キーの
-
を_
に置換する。 - キーと値を
=
で連結する。
Beam の設定を無効化する
Beam では、リクエストを送信するとリクエスト単位で利用料金が発生します。Beam を使わない場合は、エントリポイントの設定を無効化するか、IoT SIM をグループから解除してください。
- エントリポイントの設定を無効化する手順については、エントリポイントを無効化する を参照してください。
- IoT SIM をグループから解除 (離脱) する手順については、グループ設定を解除 (離脱) する を参照してください。