Soracom

Users

開発者向けツール

Sandbox に 架空のオペレーターと架空の IoT SIM を作成する

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 用の認証情報が保存されます。

  1. 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 のメッセージが日本語化されます。ただし、一部のメッセージは英語で表示される場合があります。

  2. 1 または 2 を入力して、Enter キーを押します。

    1 : SORACOM IoT SIM (グローバルカバレッジ) のサブスクリプション (plan01s など) を利用する架空の IoT SIM を作成する

    2 : 特定地域向け IoT SIM (日本カバレッジ) のサブスクリプション (plan-D など) を利用する架空の IoT SIM を作成する

    以下のメッセージが表示されます。

    本番環境の AuthKeyID と AuthKey のペアを入力してください。これらは本番環境のアカウントを持っているかどうかを確認するためだけに使われます。
    
    authKeyId:
    
  3. authKeyId および authKey を入力します。

    項目説明
    authKeyId本番環境の SAM ユーザーの認証キー ID を入力して、Enter キーを押します。入力した内容が表示されます。
    authKey本番環境の SAM ユーザーの認証キーシークレットを入力して、Enter キーを押します。入力した内容は表示されません。

    以下のメッセージが表示されます。

    Sandbox 環境に作成するオペレーターのメールアドレスとパスワードを入力してください。
    
    email:
    
  4. 架空のオペレーターのメールアドレスとパスワードを入力します。

    項目説明
    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 を指定します。
  1. soracom sandbox subscribers create (Subscriber:sandboxCreateSubscriber (Sandbox)) を実行します。

    サブスクリプションに合わせて、{subscription} および {bundle} に、以下のいずれかを指定します。

    カバレッジタイプサブスクリプション{subscription} の値{bundle} の指定
    グローバルカバレッジplan01splan01s- (*1)
    plan01s - Low Data Volumeplan01s-low_data_volume- (*1)
    planP1planP1- (*1)
    planX3 X3-5MBplanX3X3-5MB を指定してください。
    日本カバレッジplan-D D-300MB または plan-D (バンドルなし)plan-DD-300MB を指定すると、架空の plan-D D-300MB が作成されます。(*2)
    plan-Kplan-K- (*1)
    plan-KM1plan-KM1- (*1)
    plan-DU DU-10MB または plan-DU DU-50MBplan-DUDU-10MB または DU-50MB を指定してください。
    plan-K2 K2-300MBplan-K2K2-300MB を指定してください。
    • (*1) , "bundles": ["{bundle}"] を指定しないでください。
    • (*2) 架空の plan-D (バンドルなし) を作成する場合は、, "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 の operatorIdOP9999999999 と表示されます。このオペレーター ID は、Sandbox に作成したオペレーターの ID ではありません。

  2. 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 APIEventHandler 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 で確認できます。

  1. 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) をメモしてください。

  2. 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 エンドポイントを使用してください。

カバレッジタイプエンドポイント
グローバルカバレッジ以下のエンドポイントを使用します。
  • https://g.api-sandbox.soracom.io
日本カバレッジ以下のエンドポイントを使用します。
  • https://api-sandbox.soracom.io
$ 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 トークン}"
}
項目説明
email

毎回異なるメールアドレスを入力します。使用済みのメールアドレスを指定すると、架空のオペレーターを作成できません。

Gmail を使用している場合は、ユーザー名の後ろに + 記号を追加し、さらにその後ろに任意の文字列を追加することで、新しいメールアドレスを作成できます。

例: username+{任意の文字列}@gmail.com

passwordパスワードを入力します。8 文字以上 100 文字以下の英数字記号を入力できます。ただし、英小文字、英大文字、数字をそれぞれ 1 文字以上含めてください。
authKeyId本番環境の SAM ユーザーの認証キー ID を入力します。
authKey本番環境の SAM ユーザーの認証キーシークレットを入力します。
registerPaymentMethodtrue を指定します。
coverageTypes
  • ["jp"]: 日本カバレッジのみを利用する架空のオペレーターを作成する。
  • ["g"]: グローバルカバレッジのみを利用する架空のオペレーターを作成する。
  • ["g", "jp"]: グローバルカバレッジと日本カバレッジを利用する架空のオペレーターを作成する。

API の戻り値として、架空のオペレーターの ID、API キー、および API トークンが返されます。これ以降の SORACOM API 呼び出しには、この API キーと API トークンを使用します。

ステップ 2: 架空の IoT SIM を作成し登録する

  1. Subscriber:sandboxCreateSubscriber (Sandbox) を実行します。

    サブスクリプションに合わせて、{subscription} および {bundle} に、以下のいずれかを指定します。

    カバレッジタイプサブスクリプション{subscription} の値{bundle} の指定
    グローバルカバレッジplan01splan01s- (*1)
    plan01s - Low Data Volumeplan01s-low_data_volume- (*1)
    planP1planP1- (*1)
    planX3 X3-5MBplanX3X3-5MB を指定してください。
    日本カバレッジplan-D D-300MB または plan-D (バンドルなし)plan-DD-300MB を指定すると、架空の plan-D D-300MB が作成されます。(*2)
    plan-Kplan-K- (*1)
    plan-KM1plan-KM1- (*1)
    plan-DU DU-10MB または plan-DU DU-50MBplan-DUDU-10MB または DU-50MB を指定してください。
    plan-K2 K2-300MBplan-K2K2-300MB を指定してください。
    • (*1) , "bundles": ["{bundle}"] を指定しないでください。
    • (*2) 架空の plan-D (バンドルなし) を作成する場合は、, "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 の operatorIdOP9999999999 と表示されます。このオペレーター ID は、Sandbox に作成したオペレーターの ID ではありません。

    Subscriber:sandboxCreateSubscriber (Sandbox) を実行する際は、X-Soracom-API-Key ヘッダーおよび X-Soracom-Token ヘッダーは指定しません。
  2. 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 APIEventHandler 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 リファレンス で確認できます。

  1. 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) をメモしてください。

  2. 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"
    }