Cygnus

要件

ウェルカム・ページを読み、インストール・ガイド で説明されている手順に従ってください。

入門

このレシピでは、MySQL バックエンドでデフォルトの cygnus-ngsi 設定をデプロイする 方法を説明します。この Generic Enabler は実際には他の多くのバックエンド とともにデプロイできることに注意してください。

このレシピは特に docker "configs" の使用を必要 とするため、docker versions 17.06.0 以降でサポートされている docker-compose file version "3.3" に依存します。

これらのレシピをテストするための環境の準備方法については、ドキュメントの インストール・セクションに記載されています。 3ノードの Swarm セットアップを作成したと仮定すると、このデプロイは次のように なります...

ドキュメント からすでに分かっ ているように、cygnus を設定するには、特定のエージェント設定 ファイルを提供する必要があります。この場合、conf フォルダ内の cygnus_agent.conf および cartodb_keys.conf ファイルをカスタマイズできます。 これらのファイルの内容は、Docker によって対応する設定にロードされ、cygnus サービスのすべてのレプリカで使用可能になります。

docker-compose.yml を見ると、環境変数 CYGNUS_MYSQL_USERCYGNUS_MYSQL_PASS を設定することによって、MySQL ユーザとパスワードの値を カスタマイズできることに気づくでしょう。

サンプルをそのまま起動するには、次のコマンドを実行します :

    docker stack deploy -c docker-compose.yml cygnus

数分後に2つのサービスが起動して実行されていることを確認できます。

    $ docker service ls
    ID                  NAME                   MODE                REPLICAS            IMAGE                       PORTS
    l3h1fsk36v35        cygnus_mysql           replicated          1/1                 mysql:latest                *:3306->3306/tcp
    vmju1turlizr        cygnus_cygnus-common   replicated          3/3                 fiware/cygnus-ngsi:latest   *:5050->5050/tcp

説明のために、単純な notification.sh スクリプトを使用して、cygnus の エントリポイントに NGSI 通知を送信してみましょう。

    $ sh notification.sh http://0.0.0.0:5050/notify
    *   Trying 0.0.0.0...
    * TCP_NODELAY set
    * Connected to 0.0.0.0 (127.0.0.1) port 5050 (#0)
    > POST /notify HTTP/1.1
    > Host: 0.0.0.0:5050
    > User-Agent: curl/7.54.0
    > Content-Type: application/json; charset=utf-8
    > Accept: application/json
    > Fiware-Service: default
    > Fiware-ServicePath: /
    > Content-Length: 607
    >
    * upload completely sent off: 607 out of 607 bytes
    < HTTP/1.1 200 OK
    < Transfer-Encoding: chunked
    < Server: Jetty(6.1.26)
    <
    * Connection #0 to host 0.0.0.0 left intact

Docker Swarm クラスタ上でサービスとして稼働している cygnus を持つことで、他の docker サービスと同様にスケーラビリティを達成できます。詳細については、 Orionのレシピを参照して Docker でこれを 行う方法を参照してください。それ以外の場合は、Docker サービスのドキュメント を参照してください。

カスタマイズ

別のバックエンドが必要な場合はどうすればよいですか?

cygnus デプロイメントのために別のバックエンドを試したい場合は、3つの手順を実行する必要があります。

  1. ニーズに合わせて、cygnus_agent.conf を設定してください。詳細は ドキュメント を参照してください。

  2. docker-compose.yml を更新してください。特に cygnus サービス用に構成された 環境変数です。たとえば、MySQL ではなく MongoDB を使用する場合は、変数 CYGNUS_MONGO_USERCYGNUS_MONGO_PASS を使用する必要があります。 必要な変数の完全なリストについては、cygnus のドキュメント を参照してください。

  3. mysql サービスの定義を削除し、あなたの好みのものを導入するよう、 docker-compose.ymlを更新してください。また、cygnus の depends_on: の セクションを新しいサービスの名前で更新することを忘れないでください。

別のチャンネルを使用

conf/cygnus_agent.conf の設定ファイルを見てみると、メモリベースのチャネルと ファイルベースのチャネルのどちらからでも選択できます。チャンネルタイプの設定から コメントにする/コメントを外す (つまり、# キャラクターを残す/削除する) ように してください。

    cygnus-ngsi.channels.main-channel.type = memory
    #cygnus-ngsi.channels.main-channel.type = file

チャネルの詳細については、公式ドキュメントの channels considerations をチェックしてください。