Fiwareを使って都市OSを動かしてみよう

Munu


データ仕様の現状と課題
スマートシティの標準規格(案)
データモデルのユースケース
ツール


Column
Link
用語集

Coppell

Technologies

 2. PCへのインストール  2.8節



2.8.Entityデータの読み出し
2022年4月10日
 次は、格納したデータを読みだしてみましょう。以下のコマンドを打ってください。

curl -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001'

そうすると、結果が以下の様に帰ってくるはずです。
PS C:\Users\owner> curl -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001'
[{"id":"urn:ngsi-ld:Store:001","type":"Store","address":{"type":"PostalAddress","value":{"streetAddress":"長沼町202-5","addressLocality":"八王子市","addressRegion":"東京都","postalCode":"1920907"},"metadata":{}},"location":{"type":"geo:json","value":{"type":"Point","coordinates":[139.371578,35.642221]},"metadata":{}},"name":{"type":"Text","value":"ローソン八王子長沼町店","metadata":{}}}]
PS C:\Users\owner>

見やすく整形したい場合はjson Pretty Linter などの整形ツールを使うと便利です。このサイトを使うと構文チェックと整形をしてくれます。今回は、以下の様に整形してくれました。

[
   {
       "id": "urn:ngsi-ld:Store:001",
       "type": "Store",
       "address": {
           "type": "PostalAddress",
           "value": {
               "streetAddress": "長沼町202-5",
               "addressLocality": "八王子市",
               "addressRegion": "東京都",
               "postalCode": "1920907"
           },
           "metadata": {}
       },
       "location": {
           "type": "geo:json",
           "value": {
               "type": "Point",
               "coordinates": [
                   139.371578,
                   35.642221
               ]
           },
           "metadata": {}
       },
       "name": {
           "type": "Text",
           "value": "ローソン八王子長沼町店",
           "metadata": {}
       }
   }
]

mertadataの記述が増えていますが、それ以外は登録したEntityが読み出されている事がわかります。尚、curlでは、イチイチファイルにEntityを書き込まなくても-dパラメータの後にシングルクォートで囲ってEntityを書けばいいことになっていますが、筆者の経験ではWindows環境ではうまく動かない事が多いです。これは、シングルクォートやダブルクォートの扱いがWindowsとLinuxで違う事が原因の様です。また、PowerShellではなく、コマンドプロンプトやWindows Terminalで動かす事例もありますが、筆者が試したところではうまく動きませんでした。Windows Terminalに至っては、バグだからサポートに連絡してくれという趣旨のエラーになりました。

 ここまでで、Orionの環境が正常に動き、簡単な操作が動作することを確認しました。

 本章の最後に後片付けについても触れておきます。Orionのコンテナの停止と削除は、

docker stop fiware-orion
docker rm fiware-orion

の二つを投入する事で可能です。
 実は、runコマンドは、createとstartの二つのコマンドを一括して実行するコマンドだったので、停止するためには二つのコマンドが必要となります。
 同様に、Mongo-dbの停止と削除はそれぞれ

docker stop mongo-db
docker rm mongo-db
最後にネットワークの削除は以下となります。

docker network rm fiware_default

この状態でimageはローカルに保存されていますので、再実行するときにはdocker pullは必要なく、runから始めれば大丈夫です。
更に、imageまで削除する場合は以下です。

docker rmi mongo:4.4
docker rmi fiware/orion
ここではimageの名前指定でコマンドを実行しましたが、本来イメージIDを指定するものなので、見つからないというエラーになることがあるようです。その場合は名前ではなく、イメージIDを指定してやり直して下さい。イメージIDは、下記の"docker images"で確認できます。
尚、mongoのimageを削除すると、格納したEntityも消えてしまいますので、ご注意ください。

最後に、コンテナ、image、ネットワークが残っていないか確認しましょう。

docker container ps -a
docker images
docker network ls
これで元に戻りました。