HTTP エントリポイント (http://beam.soracom.io:8888/
) に、デバイスから送信された HTTP リクエストを、HTTP もしくは HTTPS で指定の URL に転送します。1 つの URL に対してリクエストを転送するユースケースに向いています。
HTTP エントリポイントには、転送先として 1 つの URL (プロトコル、ホスト名、ポート番号、パス) を設定します。たとえば、転送元の /from/
を指定し、転送先としてプロトコル HTTPS
、ホスト名 example.com
、ポート番号 443
、パス /to/
を指定した場合、デバイスからの送信先に応じて、Beam からの転送先が以下のように決定されます。
同じホストの複数のパスを転送する場合は、Web サイトエントリポイント を利用すると便利です。
HTTP エントリポイントではクエリパラメータは転送されません
デバイスでクエリパラメータを付与して HTTP エントリポイントにアクセスしても、Beam でクエリパラメータは削除されます。そのため、デバイスで付与したクエリパラメータは、転送されません。なお、Web サイトエントリポイント ではクエリパラメータも転送されます。
デバイスから HTTP エントリポイントにデータを送信するときは、HTTPS を利用できません。
1 つの SIM グループに対して複数の HTTP エントリポイントを追加できます
HTTP エントリポイントは、http://beam.soracom.io:8888/path/
) で識別されます。
HTTP エントリポイントと Web サイトエントリポイント
HTTP エントリポイントと Web サイトエントリポイントの違いは以下のとおりです。
HTTP エントリポイント | Web サイトエントリポイント | |
---|---|---|
向いているユースケース | 1 つの URL に対してリクエストを転送するユースケース。 | デバイスの状況に応じて転送先のパスを変更するユースケース。 |
転送元 | を設定できる | - |
転送先 | 、 、 、 を設定できる | 、 、 を設定できる |
クエリパラメータ | 転送できない | 転送できる |
エントリポイントで転送できる URL の数 | 1 件 | 複数 |
HTTP エントリポイントを設定する
設定画面を表示する操作については、SORACOM Beam のエントリポイントを設定する を参照してください。HTTP エントリポイントで設定できる項目は以下のとおりです。
項目 | 説明 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
HTTP エントリポイントは、1 つのグループに複数設定できます。設定を区別するために名前を入力します。 同じ名前の設定を追加できますは、エントリポイントの一意のキーとして扱われません。ほかのエントリポイントと同じ名前を設定できます。 | |||||||||||
この設定の有効 / 無効を切り替えます。 | |||||||||||
デバイスからの HTTP リクエストを受け付けるエントリポイントを設定します。
1 つの SIM グループに対して [パス] が同一の HTTP エントリポイントは複数追加できません登録済みの HTTP エントリポイントの と同一の HTTP エントリポイントを追加すると、登録済みの HTTP エントリポイントの設定が上書きされます。 | |||||||||||
このエントリポイントで受け付けたリクエストの転送先を設定します。
| |||||||||||
転送先へのリクエストに追加するヘッダーを設定します。詳しくは、[ヘッダ操作] を参照してください。 |
multi credentials per group 機能
Beam では multi credentials per group 機能を使用できます。
#{imsi}
もしくは #{imei}
のプレースホルダーを入れることで、接続デバイスに応じた 認証情報を使い分けることができます。
詳しくは、multi credentials per group 機能を利用して AWS IoT に接続する を参照してください。
[ヘッダ操作]
転送先へのリクエストに追加するヘッダーを設定します。
項目 | 説明 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
スイッチをオンにすると、x-soracom-imsi: ${IMSI} ヘッダーが追加されます。${IMSI} には、IoT SIM の IMSI が挿入されます。 | |||||||||||
スイッチをオンにすると、x-soracom-sim-id: ${SIM_ID} ヘッダーが追加されます。${SIM_ID} には、IoT SIM の SIM ID が挿入されます。 | |||||||||||
スイッチをオンにすると、x-soracom-msisdn: ${MSISDN} ヘッダーが追加されます。${MSISDN} には、IoT SIM の MSISDN が挿入されます。 | |||||||||||
(*1) | スイッチをオンにすると、x-soracom-imei: ${IMEI} ヘッダーが追加されます。${IMEI} には、デバイスの IMEI が挿入されます。 | ||||||||||
スイッチをオンにすると、
、 、 、 のいずれか 1 つがオンのときに設定できます。 | |||||||||||
転送先へのリクエストヘッダーを追加、置換、削除できます。 をクリックして、 、 および を設定してください。 では、以下のいずれかを選択します。
リクエストヘッダーは大文字小文字が区別されませんでは、大文字小文字を区別して登録できますが、一般に、リクエストヘッダーは大文字小文字が区別されません。大文字小文字を同一視した結果、同じ値になるヘッダーを複数登録した場合の動作は保証されません。 | |||||||||||
(*2) | スイッチをオンにすると、デバイスから送信されたデータを Beam で転送する際、
|
- (*1) SMS → HTTP/HTTPS エントリポイント、および USSD → HTTP/HTTPS エントリポイント では設定できません。これは、SMS および USSD でデータを送信した場合、デバイスの IMEI が送信されないためです。
- (*2) HTTP エントリポイントおよび Web サイトエントリポイント の場合のみ設定できます。
AWS Signature V4
の で「AWS Signature V4」を選択すると、Authorization
ヘッダーに AWS 署名バージョン 4 を追加できます。
項目 | 説明 |
---|---|
「AWS Signature V4」を選択します。 | |
AWS の各サービスに対応するサービスコードを入力してください。 Beam でサポートするサービスコードは以下のとおりです。
一覧に表示されないサービスはサポート対象外です任意のサービスコードを入力できますが、一覧に表示されていないサービスはサポート対象外です。AWS の各サービスに対応するサービスコードについては、エンドポイント仕様 を参照してください。 | |
AWS の各サービスを利用するリージョンを選択します。 | |
で「s3」を選択したときに設定できます。Amazon S3 にファイルサイズが 1 MiB を超えるファイルをアップロードする可能性がある場合は、オンにします。 | |
AWS 署名バージョン 4 の署名プロセスで利用する AWS 認証情報 または AWS IAM ロール認証情報 を選択します。 |
AWS 署名バージョン 4 を利用する場合は AWS STS エンドポイントをアクティブ化してください
AWS 署名バージョン 4 を利用する場合は、AWS が提供する AWS STS エンドポイントをアクティブ化してください。
なお、アクティブ化する AWS STS エンドポイントは、Beam を利用する カバレッジタイプ および ランデブーポイント によって異なります。
SORACOM のカバレッジタイプ | SORACOM のランデブーポイント | AWS リージョン | AWS STS エンドポイント |
---|---|---|---|
グローバルカバレッジ | オレゴン (米国) | 米国西部 (オレゴン) | sts.us-west-2.amazonaws.com |
シドニー (オーストラリア) | アジアパシフィック (シドニー) | sts.ap-southeast-2.amazonaws.com | |
東京 (日本) | アジアパシフィック (東京) | sts.ap-northeast-1.amazonaws.com | |
フランクフルト (ドイツ) | 欧州 (フランクフルト) | sts.eu-central-1.amazonaws.com | |
日本カバレッジ | 東京 (日本) | アジアパシフィック (東京) | sts.ap-northeast-1.amazonaws.com |
たとえば、日本カバレッジの Beam で AWS 署名バージョン 4 を利用する場合は、sts.ap-northeast-1.amazonaws.com をアクティブ化します。
AWS STS エンドポイントのアクティブ化について詳しくは、AWS リージョン での AWS STS のアクティブ化と非アクティブ化 を参照してください。
SORACOM CLI / SORACOM API の場合
グループ設定に Beam のエントリポイントを追加するコマンドについては、SORACOM Beam のエントリポイントを設定する の SORACOM CLI / SORACOM API の場合 を参照してください。
ここでは、HTTP エントリポイントを追加する場合のリクエストボディに指定する key
と value
のペアを説明します。
key | value の型 | value |
---|---|---|
http://beam.soracom.io:8888/{path} (*1) | Object | HTTP エントリポイントの Object を参照してください。 |
- (*1)
{path}
には、転送元のパスを入力します。たとえば、{path}
にfrom/
を入力した場合は、デバイスからhttp://beam.soracom.io:8888/from/
に送信したリクエストが、destination
で指定した URL に転送されます。
SORACOM CLI のコマンド例:
$ soracom groups put-config --group-id {group_id} --namespace SoracomBeam \
--body '[
{
"key": "http://beam.soracom.io:8888/{path}",
"value": {
"name": "test",
"enabled": true,
"destination": "https://beamtest.soracom.io/",
"addSubscriberHeader": true,
"addSimIdHeader": true,
"addMsisdnHeader": true,
"addEquipmentHeader": true,
"addSignature": true,
"psk": {
"$credentialsId": "CredentialsID"
},
"customHeaders": {
"X-GROUP-NAME": {
"action": "replace",
"headerKey": "X-GROUP-NAME",
"headerValue": "TEST"
}
},
"addAuthorizationHeader": {
"enabled": false
}
}
}
]'
転送元の設定が同じ HTTP エントリポイントは複数登録できません
http://beam.soracom.io:8888/{path}
が、HTTP エントリポイントの一意のキーとして扱われます。複数の HTTP エントリポイントを作成する設定にしても、この値がほかの HTTP エントリポイントと同じ値になると、いずれか 1 つの HTTP エントリポイントだけが登録されます。
SORACOM CLI や API で設定を更新するときは
Beam のエントリポイントの設定を部分的に更新するときは、更新しない設定も含めて、すべての設定を漏れなく指定してください。更新する設定だけを指定すると、省略した設定は初期値に戻ります。
想定していない値を指定した場合の動作は、定義されていません。SORACOM CLI / SORACOM API で設定を変更したあとで、SORACOM ユーザーコンソールで意図通りに設定されていることを確認してください。
HTTP エントリポイントの Object
以下の key と value を指定します。なお、この key と value のペアは、通常の JSON Object として指定します。
addAuthorizationHeader.config
の Object
HTTP エントリポイントの Object のうち、addAuthorizationHeader.config
の設定内容は、addAuthorizationHeader.type
の設定によって異なります。
addAuthorizationHeader.type
がbearer_jwt
の場合:addAuthorizationHeader.type
がaws_sig_v4
の場合:addAuthorizationHeader.type
がbearer
の場合:addAuthorizationHeader.type
がbasic
の場合:
HTTP エントリポイントにリクエストする
ポート番号に注意してください
HTTP エントリポイントと Web サイトエントリポイントは、ポート番号が異なります。
エントリポイント | ポート番号 |
---|---|
HTTP エントリポイント | 8888 |
Web サイトエントリポイント | 18080 または 80 |
HTTP エントリポイントに、デバイスからデータを送信します。HTTP エントリポイントは、グループ設定の
→ HTTP エントリポイントの に表示されています。以下は、デバイスから HTTP エントリポイント (http://beam.soracom.io:8888/
) にデータを送信する場合の例です。
$ curl -v -X POST http://beam.soracom.io:8888/ \
-H "Content-Type:application/json" \
-d '{
"key": "value"
}'
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying 100.127.127.100...
* Connected to beam.soracom.io (100.127.127.100) port 8888 (#0)
> POST / HTTP/1.1
> Host: beam.soracom.io:8888
> User-Agent: curl/7.49.0
> Accept: */*
> Content-Type:application/json
> Content-Length: 15
>
* upload completely sent off: 15 out of 15 bytes
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Wed, 21 Dec 2016 02:25:01 GMT
< Connection: close
< Transfer-Encoding: chunked
<
* Closing connection 0
ヘッダー操作について
デバイスが送信したデータが転送先の URL に転送される際、Beam によって以下のヘッダー操作が行われます。
Connection: Keep-Alive
が追加されます。- [ヘッダ操作] を参照してください。 の設定に従って、ヘッダーが追加、置換、削除されます。詳しくは、HTTP エントリポイントの
デバイスへのレスポンス
Beam は、転送先から Beam に返された HTTP レスポンスを、そのままデバイスに転送します。ただし、以下のような例外があります。
Keep-Alive
、Connection
などの hop-by-hop headers はデバイスに転送されることを保証しません。