ChinoDuino(Chino × Arduino)

自発性のないプログラマーがArduinoと出会って悪戦苦闘する様を綴っていく⇒今はいろいろ(^^;

SORACOM Beamのプラットフォームバージョン変更ではまなったこと

「プラットフォームバージョン 201509 は 2022 年 8 月 1 日にサポートを終了します」ということで少し遅くなってしまいましたが「201912」に変更したところエラーがでたのでその備忘録です!(ちなみにちゃんと以下ドキュメントを読んでいればはまらなかった・・・)

users.soracom.io

プラットフォームバージョンを変更

SORACOMコンソールで該当グループのBeamのプラットフォームバージョンを「201912」に変更し保存

他設定はこんな感じ

  • 転送先
    • 種別:Standard
    • プロトコル:MQTT
    • ホスト名:xxxxx.iot.ap-northeast-1.amazonaws.com
      • AWSのIoT Coreに転送しています
    • ポート番号:8883
  • 証明書 (key と cert) を利用しています

エラー

データをBeamに送ったところ以下エラーが発生

{
  "time": xxxxxxxxxxxxx,
  "service": "Beam",
  "resourceType": "Subscriber",
  "resourceId": "xxxxxxxxxxxxxxx",
  "body": {
    "message": "[MQTT] Destination error mqtt://xxxxx.iot.ap-northeast-1.amazonaws.com:8883: Cannot parse protocolId"
  }
}

原因

以下ちゃんと記載があるのに、転送先プロトコルを「MQTT」のまま変更していませんでした😇

「201509」のときに転送先プロトコルを「MQTT」にしていましたが、証明書 (key と cert) を利用していたので、「MQTTS」で接続してくれていたんですね!今回、プラットフォームバージョンを変更したことにより「MQTT」で接続するようになりエラーが発生したようです📝

プラットフォームバージョン 201509 においては、証明書 (key と cert) を利用している場合、転送先に接続するプロトコルの設定に関わらず MQTTS プロトコルで転送先に接続されます。プラットフォームバージョン 201912 においては、証明書の利用有無に関わらず、転送先に指定されたプロトコルで接続します。転送先のプロトコルが正しく設定されているかを事前に確認ください。

リファレンス: 制限事項と注意事項 | SORACOM Beam | ソラコムユーザーサイト - SORACOM Users

対処

SORACOMコンソールで該当グループのBeamの転送先プロトコルを「MQTTS」に変更したところ無事解決🙌

(ちなみに、別アカウントではプラットフォームバージョンを変更しても特にエラーがでなかったのでそちらとBeamの設定を比較したところ気がつきました(^^; )