ngrok(エングロック)というサービスを使用することで、自端末のブログラムをどこからでも実行できるようになります。
これにより、わざわさ レンタルサーバー を借りて ドメインを取得 して Webに公開する といった手順をふまずに、自端末のプログラムをURLから公開することができます。図にすると以下のようなイメージです。

ではさっそく、自端末のプログラムをURLからアクセスする手順をご紹介します。
1.ngrok のアカウントを作成
ngrok を使用するには、ngrok のアカウントを作成し、トークンを取得する必要があります。
アカウント作成
次のURLから ngrok のWebサイトにアクセスします。


画面右上にある
をクリックします。
Googleでログインすると楽です。
この後、Multi-factor Authentication(2要素認証)の画面が表示された場合は ひとまず Skip をクリックします。
トークンの取得
次に画面左の Your Authtoken をクリックし 画面中央の Copy をクリックします。

2.自端末で Flask アプリを作成
Flaskとは
Flask とは Python の Webフレームワークです。これにより Python で Webシステムを簡単に作成できます。
ライブラリのインストール
次のコマンドで Flask をインストールしましょう。
1 |
pip install Flask |
次のコマンドで ngrok をインストールしましょう。
1 |
pip install pyngrok |
ngrok のトークンを自端末に登録する
コマンドプロンプトで以下のプログラムを実行します。
1 |
ngrok authtoken "ここに先ほどのトークンを記載" |
実際の画面は以下のようになります。実行すると ngrok.yml というファイルが生成されこれを ngrok が自動で読み込んで使用してくれます。

サンプルプログラム
以下は自端末で実行する Python プログラムを作成していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from pyngrok import ngrok from flask import Flask public_url = ngrok.connect(5000).public_url print(public_url) app = Flask(__name__) @app.route("/", methods=["GET"]) def test(): return "test" if __name__ == "__main__": app.run(host="0.0.0.0", port=5000) |
このプログラムは ngrok で 5000番ポートを使用する URLを生成し、アプリケーション側 も 5000番ポートでGETによるアクセスを受け付けます。
詳しい解説
1 2 3 |
# 5000番ポートを使用する URLを生成 public_url = ngrok.connect(5000).public_url print(public_url) |
この部分では、 ngrok が 5000番ポート を使用するURLを生成してくれます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Flaskを実行 app = Flask(__name__) # URLにアクセスされた場合に def test() を実行 @は"次の行"の関数と関連付ける @app.route("/", methods=["GET"]) def test(): # 画面に test を表示 return "test" # Flaskが実行された場合の処理 if __name__ == "__main__": # 自端末の5000番ポートでアプリを実行 app.run(host="0.0.0.0", port=5000) |
自身の Python が直接実行された場合、__name__ = ”__main__” となります。アプリケーションを自端末のIPアドレスである 0.0.0.0 の 5000 番ポートで実行します。
@は関連付ける関数の前に置きます。@app.route(“/”, methods=[“GET”]) はURLにアクセスされたときに実行されるので、同時に次の行に定義されている test() 関数が実行されるのです。
実行結果
ではこのプログラムを実行してみましょう。

実行すると ターミナル に URLが出力 されます。
次に、このURLにブラウザからアクセスします。

このように自端末のPythonプログラムをURLから実行することができました!!
もちろん これは どこからでもアクセスできます。
ただし、実行するたびに URL が変わります。これは無料版の場合は仕方がないようです。
おわりに
今回は ngrok というサービスを使って、自端末のPythonプログラムをURLから動作させる方法をご紹介しました。あくまでも、本番のサービスではなく、開発環境を手軽に公開したい場合などに使用しましょう。
この記事が皆さんのお役に立てれば幸いです。
ではまた。
・参考サイト



コメント