Sandbox に架空のオペレーターと架空の IoT SIM を作成します。この操作は、Sandbox を利用するときに毎回行ってください。
Sandbox 環境用の SORACOM ユーザーコンソールはありません。
「架空の IoT SIM」と「仮想的な IoT SIM」は異なります
Sandbox で利用する IoT SIM を「架空の IoT SIM」と呼びます。「架空の IoT SIM」の設定をどのように変更しても、本番環境に影響はありません。
一方、「仮想的な IoT SIM (バーチャル SIM/Subscriber)」は、SORACOM Arc で作成する IoT SIM です。「仮想的な IoT SIM (バーチャル SIM/Subscriber)」の設定を変更すると、本番環境に影響があります。
ステップ 1: Sandbox に架空のオペレーターを作成する
SORACOM CLI を利用して、Sandbox に架空のオペレーターを作成します。
SORACOM CLI を利用するには、あらかじめ SORACOM CLI をインストールしてください。詳しくは、SORACOM CLI をインストールする を参照してください。
なお、以下の手順で Sandbox に架空のオペレーターを作成すると、SORACOM CLI に Sandbox 用の認証情報が保存されます。
soracom configure-sandbox
を実行します。$ LANG=ja soracom configure-sandbox
--- SORACOM CLI セットアップ (Sandbox) --- /home/xxxxx/.soracom ディレクトリがなければ作成し、そこにファイル 'sandbox.json' を作成します。 カバレッジタイプを選択してください。 1. Global 2. Japan 選択してください (1-2) >
実行例のように
LANG
環境変数にja
を指定すると、SORACOM CLI のメッセージが日本語化されます。ただし、一部のメッセージは英語で表示される場合があります。1
または2
を入力して、Enter キーを押します。1
: SORACOM IoT SIM (グローバルカバレッジ) のサブスクリプション (plan01s など) を利用する架空の IoT SIM を作成する2
: 特定地域向け IoT SIM (日本カバレッジ) のサブスクリプション (plan-D など) を利用する架空の IoT SIM を作成する以下のメッセージが表示されます。
本番環境の AuthKeyID と AuthKey のペアを入力してください。これらは本番環境のアカウントを持っているかどうかを確認するためだけに使われます。 authKeyId:
authKeyId および authKey を入力します。
項目 説明 authKeyId 本番環境の SAM ユーザーの認証キー ID を入力して、Enter キーを押します。入力した内容が表示されます。 authKey 本番環境の SAM ユーザーの認証キーシークレットを入力して、Enter キーを押します。入力した内容は表示されません。 以下のメッセージが表示されます。
Sandbox 環境に作成するオペレーターのメールアドレスとパスワードを入力してください。 email:
架空のオペレーターのメールアドレスとパスワードを入力します。
項目 説明 email 毎回異なるメールアドレスを入力します。使用済みのメールアドレスを指定すると、架空のオペレーターを作成できません。
Gmail を使用している場合は、ユーザー名 (例:
username
) の後ろに+
記号を追加し、さらにその後ろに任意の文字列 (例:20211231-01
) を追加することで、新しいメールアドレスを作成できます。例:
username+20211231-01@gmail.com
password パスワードを入力します。8 文字以上 100 文字以下の英数字記号を入力できます。ただし、英小文字、英大文字、数字をそれぞれ 1 文字以上含めてください。 架空のオペレーターが作成され、Sandbox 用の認証情報が保存されます。Sandbox 用の認証情報は、ホームディレクトリ配下の
.soracom
ディレクトリにsandbox.json
を作成して保存されます。これ以降は、SORACOM CLI を実行するときに
--profile sandbox
オプションを付けることで Sandbox に対して SORACOM API を実行できます。オペレーター ID を確認する例:
$ soracom operator get --profile sandbox
{ "createDate": "2021-12-15T06:40:57.021", "email": "email@example.com", "operatorId": "OPXXXXXXXXXX", "updateDate": "2021-12-15T06:40:57.024" }
soracom operator *
(Operator:* API
) を利用する際は、オペレーター ID の指定 (--operator-id {オペレーター ID}
) は省略できます。デフォルトで、現在のプロファイルにひもづくオペレーター ID が指定されます。
ステップ 2: 架空の IoT SIM を作成し登録する
SORACOM API で操作する架空の IoT SIM を作成して登録します。
カバレッジタイプによる違い
カバレッジタイプによって、SORACOM CLI に指定するオプションが異なります。操作対象のカバレッジタイプに応じて適切なオプションを指定してください。
カバレッジタイプ | オプション |
---|---|
グローバルカバレッジ | --coverage-type g を指定します。 |
日本カバレッジ | --coverage-type jp を指定します。 |
soracom sandbox subscribers create
(Subscriber:sandboxCreateSubscriber (Sandbox)
) を実行します。サブスクリプションに合わせて、
{subscription}
および{bundle}
に、以下のいずれかを指定します。カバレッジタイプ サブスクリプション {subscription}
の値{bundle}
の指定グローバルカバレッジ plan01s plan01s
(*1) plan01s - Low Data Volume plan01s-low_data_volume
(*1) planX3 X3-5MB planX3
X3-5MB
planP1 planP1
(*1) 日本カバレッジ plan-D D-300MB plan-D
D-300MB
plan-D (バンドルなし) plan-D
(*1) plan-K2 K2-300MB plan-K2
K2-300MB
plan-DU DU-10GB plan-DU
DU-10GB
plan-DU DU-50GB plan-DU
DU-50GB
plan-DU DU-100GB plan-DU
DU-100GB
plan-KM1 plan-KM1
(*1) plan-K plan-K
(*1) - (*1)
, "bundles": ["{bundle}"]
を指定しないでください。
$ soracom sandbox subscribers create --profile sandbox --coverage-type {カバレッジタイプ} \ --body '{ "subscription": "{subscription}", "bundles": ["{bundle}"] }'
{ "apn": "soracom-sandbox.io", "imsi": "00101XXXXXXXXXX", "ipAddress": "10.XXX.XXX.XXX", "moduleType": "micro", "msisdn": "99XXXXXXXXXX", "operatorId": "OP9999999999", "plan": 1, "registrationSecret": "XXXXX", "serialNumber": "TSXXXXXXXXXXXXX", "sessionStatus": { "online": 0 }, "simId": "00101XXXXXXXXXX", "tags": {}, "type": "s1.standard" }
架空の IoT SIM が作成されます。
imsi
の値とregistrationSecret
の値は、次の手順で使用します。登録前の架空の IoT SIM のオペレーター ID は常に OP9999999999 です
架空の IoT SIM を架空のオペレーターに登録するまでは、架空の IoT SIM の
operatorId
はOP9999999999
と表示されます。このオペレーター ID は、Sandbox に作成したオペレーターの ID ではありません。- (*1)
soracom subscribers register
(Subscriber:registerSubscriber API
) を実行して、架空のオペレーターに架空の IoT SIM を登録します。{imsi}
には、手順 1 で取得したimsi
の値を指定します。{registrationSecret}
には、手順 1 で取得したregistrationSecret
の値を指定します。
$ soracom subscribers register --profile sandbox --coverage-type {カバレッジタイプ} \ --imsi {imsi} \ --body '{ "registrationSecret": "{registrationSecret}" }'
{ "apn": "soracom-sandbox.io", "createdAt": 1639550628045, "createdTime": 1639550628045, "expiredAt": null, "expiryAction": null, "expiryTime": null, "groupId": null, "iccid": null, "imeiLock": null, "imsi": "00101XXXXXXXXXX", "ipAddress": "10.XXX.XXX.XXX", "lastModifiedAt": 1639550628048, "lastModifiedTime": 1639550628048, "lastPortMappingCreatedTime": null, "moduleType": "micro", "msisdn": "99XXXXXXXXXX", "operatorId": "OPXXXXXXXXXX", : }
--profile sandbox
オプションを省略するとデフォルトのプロファイルに対して API が実行されます。ただし、デフォルトのプロファイルでは存在しない imsi
および registrationSecret
のためエラーメッセージが返されます。
そのほかのコマンドを利用する
Sandbox では、Group:* API
や EventHandler:* API
など SORACOM API リファレンス に記載されているほとんどの API を呼び出せます。そのほかのコマンドは、SORACOM CLI のヘルプで確認できます。詳しくは、SORACOM CLI のヘルプを表示する を参照してください。
例: IoT SIM の一覧を取得する
例として、今登録したばかりの IoT SIM の一覧を取得します。
$ soracom subscribers list --profile sandbox --coverage-type {カバレッジタイプ}
[
{
"apn": "soracom-sandbox.io",
"createdAt": 1639550628045,
"createdTime": 1639550628045,
"expiredAt": null,
"expiryAction": null,
"expiryTime": null,
"groupId": null,
"iccid": null,
"imeiLock": null,
"imsi": "00101XXXXXXXXXX",
"ipAddress": "10.XXX.XXX.XXX",
"lastModifiedAt": 1639550628048,
"lastModifiedTime": 1639550628048,
"lastPortMappingCreatedTime": null,
"moduleType": "micro",
"msisdn": "99XXXXXXXXXX",
"operatorId": "OPXXXXXXXXXX",
:
}
]
例: 架空のクーポンを作成して登録する
Sandbox 環境用の API を利用すると、架空のクーポンを作成して登録することもできます。そのほかのコマンドは Sandbox API リファレンス や soracom sandbox --help
で確認できます。
soracom sandbox coupons create
(Coupon:sandboxCreateCoupon (Sandbox)
) を利用して、架空のクーポンを作成します。$ soracom sandbox coupons create --profile sandbox --coverage-type {カバレッジタイプ} \ --body '{ "amount": 1000, "applicableBillItemName": "dailyDataTrafficChargeTotal", "expiryYearMonth": "202212" }'
{ "amount": 1000, "applicableBillItemName": "dailyDataTrafficChargeTotal", "couponCode": "CC-XXXXXX-XXXX-XXXX-XXXX", "createDateTime": "2021-12-15T08:06:14", "expiryYearMonth": "202212", "updateDateTime": "2021-12-15T08:06:14" }
架空のクーポンが作成されます。クーポンコード (
couponCode
) をメモしてください。soracom coupons register
(Payment:registerCoupon API
) を利用して、架空のクーポンをオペレーターに登録します。$ soracom coupons register --profile sandbox --coverage-type {カバレッジタイプ} \ --coupon-code {クーポンコード}
{ "amount": 1000, "balance": 1000, "billItemName": "dailyDataTrafficChargeTotal", "couponCode": "CC-XXXXXX-XXXX-XXXX-XXXX", "expiryYearMonth": "202212" }
SORACOM API の場合
ステップ 1: Sandbox に架空のオペレーターを作成する
Operator:sandboxInitializeOperator (Sandbox)
を利用して、架空のオペレーターを作成します。
カバレッジタイプによる違い
カバレッジタイプによって、SORACOM API のエンドポイントが異なります。操作対象のカバレッジタイプに応じて適切な API エンドポイントを使用してください。
カバレッジタイプ | エンドポイント |
---|---|
グローバルカバレッジ | 以下のエンドポイントを使用します。
|
日本カバレッジ | 以下のエンドポイントを使用します。
|
$ curl -X POST https://api-sandbox.soracom.io/v1/sandbox/init \
-H "Content-Type: application/json" \
-d '{
"email": "{架空のオペレーターのメールアドレス}",
"password": "{架空のオペレーターのパスワード}",
"authKeyId": "{本番環境の SAM ユーザーの認証キー ID}",
"authKey": "{本番環境の SAM ユーザーの認証キーシークレット}",
"registerPaymentMethod": true,
"coverageTypes": ["jp"]
}'
{
"operatorId": "OPXXXXXXXXXX",
"apiKey": "API キー",
"token": "API トークン"
}
項目 | 説明 |
---|---|
毎回異なるメールアドレスを入力します。使用済みのメールアドレスを指定すると、架空のオペレーターを作成できません。 Gmail を使用している場合は、ユーザー名の後ろに 例: | |
password | パスワードを入力します。8 文字以上 100 文字以下の英数字記号を入力できます。ただし、英小文字、英大文字、数字をそれぞれ 1 文字以上含めてください。 |
authKeyId | 本番環境の SAM ユーザーの認証キー ID を入力します。 |
authKey | 本番環境の SAM ユーザーの認証キーシークレットを入力します。 |
registerPaymentMethod | true を指定します。 |
coverageTypes |
|
API の戻り値として、架空のオペレーターの ID、API キー、および API トークンが返されます。これ以降の SORACOM API 呼び出しには、この API キーと API トークンを使用します。
ステップ 2: 架空の IoT SIM を作成し登録する
Subscriber:sandboxCreateSubscriber (Sandbox)
を実行します。サブスクリプションに合わせて、
{subscription}
および{bundle}
に、以下のいずれかを指定します。カバレッジタイプ サブスクリプション {subscription}
の値{bundle}
の指定グローバルカバレッジ plan01s plan01s
(*1) plan01s - Low Data Volume plan01s-low_data_volume
(*1) planX3 X3-5MB planX3
X3-5MB
planP1 planP1
(*1) 日本カバレッジ plan-D D-300MB plan-D
D-300MB
plan-D (バンドルなし) plan-D
(*1) plan-K2 K2-300MB plan-K2
K2-300MB
plan-DU DU-10GB plan-DU
DU-10GB
plan-DU DU-50GB plan-DU
DU-50GB
plan-DU DU-100GB plan-DU
DU-100GB
plan-KM1 plan-KM1
(*1) plan-K plan-K
(*1) - (*1)
, "bundles": ["{bundle}"]
を指定しないでください。
$ curl -X POST https://api-sandbox.soracom.io/v1/sandbox/subscribers/create \ -d '{ "subscription": "{subscription}", "bundles": ["{bundle}"] }'
{ "imsi": "00101XXXXXXXXXX", "simId": "00101XXXXXXXXXX", "iccid": "00101XXXXXXXXXX", "msisdn": "99XXXXXXXXXX", "apn": "soracom-sandbox.io", "operatorId": "OP9999999999", "type": "s1.standard", "registrationSecret": "XXXXX", "serialNumber": "TSXXXXXXXXXXXXX", "ipAddress": "10.XXX.XXX.XXX", "moduleType": "nano", "plan": 1, "sessionStatus": { "online": 0 }, "tags": {} }
架空の IoT SIM が作成されます。
imsi
の値とregistrationSecret
の値は、次の手順で使用します。登録前の架空の IoT SIM のオペレーター ID は常に OP9999999999 です
架空の IoT SIM を架空のオペレーターに登録するまでは、架空の IoT SIM の
operatorId
はOP9999999999
と表示されます。このオペレーター ID は、Sandbox に作成したオペレーターの ID ではありません。Subscriber:sandboxCreateSubscriber (Sandbox)
を実行する際は、X-Soracom-API-Key
ヘッダーおよびX-Soracom-Token
ヘッダーは指定しません。- (*1)
Subscriber:registerSubscriber API
を実行して、架空のオペレーターに架空の IoT SIM を登録します。{imsi}
には、手順 1 で取得したimsi
の値を指定します。$X_SORACOM_API_KEY
には架空のオペレーターの API キーを指定します。$X_SORACOM_TOKEN
には架空のオペレーターの API トークンを指定してください。{registrationSecret}
には、手順 1 で取得したregistrationSecret
の値を指定します。
$ curl -X POST https://api-sandbox.soracom.io/v1/subscribers/{imsi}/register \ -H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \ -H "X-Soracom-Token: $X_SORACOM_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "registrationSecret": "{registrationSecret}" }'
{ "apn": "soracom-sandbox.io", "createdAt": 1639550628045, "createdTime": 1639550628045, "expiredAt": null, "expiryAction": null, "expiryTime": null "groupId": null, "iccid": "00101XXXXXXXXXX", "imeiLock": null, "imsi": "00101XXXXXXXXXX", "ipAddress": "10.XXX.XXX.XXX", "lastModifiedAt": 1639550628048, "lastModifiedTime": 1639550628048, "lastPortMappingCreatedTime": null, "moduleType": "micro", "msisdn": "99XXXXXXXXXX", "operatorId": "OPXXXXXXXXXX", : }
そのほかのコマンドを利用する
Sandbox では、Group:* API
や EventHandler:* API
など SORACOM API リファレンス に記載されているほとんどの API を呼び出せます。
例: IoT SIM の一覧を取得する
例として、今登録したばかりの IoT SIM の一覧を取得します。
$ curl -X GET https://api-sandbox.soracom.io/v1/subscribers \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN"
[
{
"imsi": "00101XXXXXXXXXX",
"msisdn": "99XXXXXXXXXX",
"ipAddress": "10.XXX.XXX.XXX",
"operatorId": "OP00XXXXXXXX",
"apn": "soracom-sandbox.io",
"type": "s1.standard",
:
}
]
例: 架空のクーポンを作成して登録する
Sandbox 環境用の API を利用すると、架空のクーポンを作成して登録することもできます。そのほかの API は Sandbox API リファレンス で確認できます。
Coupon:sandboxCreateCoupon (Sandbox)
を利用して、架空のクーポンを作成します。curl -X POST https://api-sandbox.soracom.io/v1/sandbox/coupons/create \ -H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \ -H "X-Soracom-Token: $X_SORACOM_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "amount": 1000, "applicableBillItemName": "dailyDataTrafficChargeTotal", "expiryYearMonth": "202212" }'
{ "couponCode": "CC-XXXXXX-XXXX-XXXX-XXXX", "amount": 1000, "applicableBillItemName": "dailyDataTrafficChargeTotal", "expiryYearMonth": "202212", "createDateTime": "2021-12-15T08:06:14", "updateDateTime": "2021-12-15T08:06:14" }
架空のクーポンが作成されます。クーポンコード (
couponCode
) をメモしてください。Payment:registerCoupon API
を利用して、架空のクーポンをオペレーターに登録します。$ curl -X POST https://api-sandbox.soracom.io/v1/coupons/{クーポンコード}/register \ -H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \ -H "X-Soracom-Token: $X_SORACOM_TOKEN"
{ "couponCode": "CC-XXXXXX-XXXX-XXXX-XXXX", "expiryYearMonth": "202212", "balance": 1000, "amount": 1000, "billItemName": "dailyDataTrafficChargeTotal" }