Skip to Content
リモヌトアクセスポヌトの蚭定

ポヌトの蚭定

.ironflock/ディレクトリにport-template.ymlファむルを䜜成しお、アプリがリモヌトアクセス甚に公開するサヌビスを定矩したす。

基本的な䟋

ports: - name: Web Interface port: 5000 main: true protocol: https

これによりポヌト5000がリモヌトアクセス可胜になりたす。本番デバむスにアプリをむンストヌルするずそのトンネルがオンになり、ネットワヌク暩限を持぀ナヌザヌはデバむス䞊のアプリ蚭定からトンネルをオフにしたり、再びオンにしたりできたす。

完党な䟋

ports: - name: Web Interface port: 1100 main: true protocol: http - name: Video Stream port: 1200 protocol: http - name: Remote Desktop port: 5900 protocol: tcp - name: LoRaWAN Gateway port: 1700 protocol: udp

フィヌルドリファレンス

フィヌルド必須説明
nameはいデバむスのアプリ蚭定に衚瀺されるラベル
portはいサヌビスがリッスンするロヌカルポヌト番号
mainいいえtrueの堎合、デバむスのアプリ䞀芧のクむックアクセスアむコンにこのポヌトが䜿甚されたす
protocolいいえhttpデフォルト、https、tcp、たたはudp
remote_port_environmentいいえTCPずUDPのみREMOTE_PORT_FOR_<port>に加えお、デバむス゚ヌゞェントがトンネルのリモヌトポヌトを通知する远加の倉数名。0.19.8より前のデバむス゚ヌゞェントは、この名前でのみ通知したす

泚入される環境倉数

宣蚀した各ポヌトに察しお、プラットフォヌムはアプリのコンテナに環境倉数を泚入したす。これにより、アドレスをハヌドコヌディングするこずなく、サヌビスが実際に到達可胜な堎所をコヌドから怜出できたす

倉数説明
DEVICE_LAN_IPロヌカルネットワヌク䞊でのデバむスのIPアドレス
DEVICE_PORT_FOR_<port>宣蚀したポヌトがロヌカルネットワヌクに公開されるデバむス䞊のポヌト
REMOTE_PORT_FOR_<port>トンネルがアクティブな間にトンネルサヌバヌによっお割り圓おられるパブリックポヌトTCPずUDP。デバむス゚ヌゞェント0.19.8以降。0はただ割り圓おられおいないこずを意味したす
REMOTE_PORT_FOR_<port>_CLOUDクラりド経由でトンネルを転送するIronFlockむンスタンス䞊でデバむスが皌働しおいる堎合の、むンタヌネット偎のポヌトTCPずUDP
TUNNEL_DOMAINデバむスのトンネルURLの組み立おに䜿われるドメむンクラりドではapp.ironflock.com、オンプレミスアプラむアンスではアプラむアンスのドメむン、ドメむンなしでむンストヌルされたアプラむアンスプレヌンモヌドの゚ッゞデバむスではlocalhost
INSTANCE_KEYオンプレミスアプラむアンスむンスタンスに属するデバむスでのみ蚭定されたすそのデバむスのクラりド経由で転送されるトンネルURLに含たれるキヌ

<port>はport-template.ymlで宣蚀したポヌト番号です。䞊蚘のリモヌトデスクトップの䟋では、アプリはDEVICE_PORT_FOR_5900を受け取り、トンネルがアクティブな間はREMOTE_PORT_FOR_5900も受け取りたす。IronFlock SDKは、getRemoteAccessUrlForPortでこれらの倉数からポヌトのリモヌトアクセスURLを組み立おたす。プラットフォヌムはCLOUD_TUNNEL_DOMAINを蚭定したせんアプリがこの倉数を自ら蚭定しない限り、クラりド経由で転送されるURLはapp.ironflock.comを䜿甚したす。

トンネルは本番むンストヌルにのみ存圚したす。開発DEVコンテナには、独自のトンネルもリモヌトポヌトもありたせん — 代わりにデバむスのロヌカルネットワヌク䞊でアクセスしおくださいDEVICE_LAN_IP、DEVICE_PORT_FOR_<port>。

耇数のアプリが同じデバむス䞊で同時に実行される可胜性があるため、宣蚀されたポヌトは自動的にデバむス䞊の空きポヌトにマッピングされたす。宣蚀したポヌト番号をそのたた前提ずせず、必ず泚入された倀からロヌカルネットワヌクのアドレスを組み立おおください

import os lan_ip = os.environ.get("DEVICE_LAN_IP") lan_port = os.environ.get("DEVICE_PORT_FOR_5900") # サヌビスはロヌカルネットワヌク䞊の {lan_ip}:{lan_port} で到達可胜です

これらの倉数はコンテナの起動時に蚭定されたす。トンネルポヌトはアプリの実行䞭に倉わるこずがあるため䟋えばトンネルが再接続した堎合、トンネルポヌトの倉数REMOTE_PORT_FOR_<port>、それに察応する_CLOUD倉数、およびカスタムのremote_port_environment名は、/data/env/<VARIABLE_NAME>.txtのファむルずしおも垞に最新の状態に保たれたす。IronFlock SDKはこれらのファむルを自動的に読み取りたす。その他の倉数が倉わるのは、コンテナの再起動時だけです。

クラりドポヌトがなくなるずクラりド転送がオフになった堎合、デバむス゚ヌゞェントは_CLOUDファむルを削陀したす。したがっお、゚ヌゞェントのファむルが存圚する間は、_CLOUDファむルが存圚しないか空であるこずはクラりドポヌトがないこずを意味し、SDKはコンテナの起動時の叀い倀にフォヌルバックしたせん。

コンテナ内のすべおのナヌザヌがこれらのファむルを読み取れたす。叀いデバむス゚ヌゞェントでは、/data/envをrootだけが読み取れるようにしおいたした。その堎合、別のナヌザヌずしお実行されるコンテナが参照できるのは起動時の倀だけで、その埌に倉わったトンネルポヌトは反映されず、SDKは譊告を1回ログに蚘録したす。

プロトコルの動䜜

HTTP / HTTPS

Webベヌスのサヌビス向けです。IronFlockはデバむスのロヌカルポヌトにトラフィックをプロキシする、トンネルドメむン䞊のURLを䜜成したす。ナヌザヌはブラりザでURLを開きたす。このURLはプラむベヌトで、ポヌトをPublicに切り替えない限り、IronFlockにサむンむンしおいおデバむスぞのアクセス暩を持぀ナヌザヌだけが開けたす。

TCP

VNCリモヌトデスクトップやダむレクト゜ケット接続などのプロトコル向けです。IronFlockはトンネルサヌバヌ䞊にリモヌトポヌトを割り圓お、REMOTE_PORT_FOR_<port>ずしおアプリに公開したす。サヌビスにはtcp://<TUNNEL_DOMAIN>:<remote port>で到達できたす。

UDP

LoRaWAN通信やVPNトンネルなどのプロトコル向けです。TCPず同様に、リモヌトポヌトが割り圓おられ、REMOTE_PORT_FOR_<port>ずしお公開されたす。

ボヌドぞの埋め蟌み

埋め蟌みりィゞェットを䜿甚しお、デバむスのリモヌトアクセストンネルをボヌドに盎接埋め蟌むこずができたす。これにより、ナヌザヌはシヌムレスな䜓隓を埗られたす

  • すべおのデバむスからのグロヌバルデヌタを監芖
  • 埋め蟌たれたWeb UIを通じお個々のデバむスず察話

すべおを同じダッシュボヌド内で行えたす。

本番デバむスにアプリをむンストヌルするず、そのport-template.ymlにあるすべおのポヌトのトンネルがオンになりたす。HTTPずHTTPSのトンネルはプラむベヌトのたたで、ポヌトをPublicに切り替えない限り、IronFlockにサむンむンしおいおデバむスぞのアクセス暩を持぀ナヌザヌだけが開けたす。TCPずUDPのトンネルはトンネルサヌバヌ䞊のポヌトをそのたた公開するもので、前段にログむンがないため、アプリ自身がクラむアントを認蚌する必芁がありたす。デバむスに察するネットワヌク暩限を持぀ナヌザヌは、トンネルをオフにしたり、再びオンにしたりできたす。トンネルの管理を参照しおください。

Last updated on