EC2にDockerをインストールしてFIWAREを動かす
事前準備編
Dockerインストール
sudo yum install -y docker
sudo systemctl start docker
sudo usermod -a -G docker ec2-user
自動起動を有効にする
sudo systemctl enable docker
FIWAREのインストール
FIWAREの手順は下記の公式のgithubを参照
tutorials.Getting-Started/README.ja.md at master · FIWARE/tutorials.Getting-Started · GitHub
Docker バージョン 18.03 以降を使用していることを確認
[ec2-user@bastin ~]$ docker version
Client:
Version: 20.10.7
API version: 1.41
Go version: go1.15.14
Git commit: f0df350
Built: Tue Sep 28 19:55:50 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
[ec2-user@bastin ~]$
コンテナの起動
docker pull mongo:4.4
docker pull fiware/orion
docker network create fiware_default
MongoDB データベースを実行している Docker コンテナを 起動し、ネットワークに接続する
docker run -d --name=mongo-db --network=fiware_default --expose=27017 mongo:4.4 --bind_ip_all
fiware-orionのネットワーク接続
docker run -d --name fiware-orion --network=fiware_default -p 1026:1026 fiware/orion -dbhost mongo-db
設定のクリーンアップ(※必要な場合に実施する)
docker stop fiware-orion
docker rm fiware-orion
docker stop mongo-db
docker rm mongo-db
docker network rm fiware_default
httpリクエストの実施
バージョンの取得
curl -X GET 'http://localhost:1026/version'
[ec2-user@bastin ~]$ curl -X GET 'http://localhost:1026/version'
{
"orion" : {
"version" : "3.1.0-next",
"uptime" : "0 d, 0 h, 1 m, 19 s",
"git_hash" : "7bd1e43514539bd65caeb30d4e3319202e0f115b",
"compile_time" : "Mon Jul 26 08:19:44 UTC 2021",
"compiled_by" : "root",
"compiled_in" : "dae1c5e3a7d9",
"release_date" : "Mon Jul 26 08:19:44 UTC 2021",
"machine" : "x86_64",
"doc" : "https://fiware-orion.rtfd.io/",
"libversions": {
"boost": "1_66",
"libcurl": "libcurl/7.61.1 OpenSSL/1.1.1g zlib/1.2.11 nghttp2/1.33.0",
"libmicrohttpd": "0.9.70",
"openssl": "1.1",
"rapidjson": "1.1.0",
"mongoc": "1.17.4",
"bson": "1.17.4"
}
}
}
エンティティの作成
curl -sS http://localhost:1026/v2/entities \
-H 'Content-Type: application/json' \
-d @- <<EOF
{
"id": "living",
"type": "Room",
"temperature": {"value": 23, "type": "Float"}
}
EOF
エンティティの確認
[ec2-user@bastin ~]$ curl -sS http://localhost:1026/v2/entities/living?type=Room -H 'Accept: application/json' | jq .
{
"id": "living",
"type": "Room",
"temperature": {
"type": "Float",
"value": 23,
"metadata": {}
}
}
エンティティの更新
curl -sS http://localhost:1026/v2/entities/living/attrs \
-H 'Content-Type: application/json' \
-X PATCH \
-d @- <<EOF
{
"temperature": {
"value": 26.5,
"type": "Float"
}
}
EOF
エンティティの確認
[ec2-user@bastin ~]$ curl -sS http://localhost:1026/v2/entities/living?type=Room -H 'Accept: application/json' | jq .
{
"id": "living",
"type": "Room",
"temperature": {
"type": "Float",
"value": 26.5,
"metadata": {}
}
}
[ec2-user@bastin ~]$
アトリビュートの更新
curl -sS http://localhost:1026/v2/entities/living/attrs/temperature/value \
-H 'Content-Type: text/plain' \
-X PUT \
-d 28.5
関連しているかもしれない記事
- CloudTrailの料金が高い場合の対応
- CloudTrailのデータイベントはマネージメントコンソール上からは確認出来ない
- AthenaでCloudTrail の証跡を分析
- Redshift SpectrumからGlue Data Catalogのテーブルを参照する
- Redshift Spectrumのベストプラクティス