【Python】ngrokで自端末のプログラムをURLからアクセスする方法

Python

ngrok(エングロック)というサービスを使用することで、自端末のブログラムをどこからでも実行できるようになります。

ngrok は ngrok社 が開発した、ローカルで動作するアプリケーションをインターネットに公開するためのサービスです。

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

通常のWeb公開と ngrok のWeb公開の比較

ではさっそく、自端末のプログラムをURLからアクセスする手順をご紹介します。

1.ngrok のアカウントを作成

ngrok を使用するには、ngrok のアカウントを作成し、トークンを取得する必要があります。

アカウント作成

次のURLから ngrok のWebサイトにアクセスします。

ngrok | API Gateway, Kubernetes Ingress, Webhook Gateway
ngrok simplifies app delivery by unifying API gateway, Kubernetes ingress, multi-cluster load balancing and more with ng...

画面右上にある Sign up をクリックします。

Googleでログインすると楽です。

この後、Multi-factor Authentication(2要素認証)の画面が表示された場合は ひとまず Skip をクリックします。

トークンの取得

次に画面左の Your Authtoken をクリックし 画面中央の Copy をクリックします。

コピーしたトークンは安全な場所に保管しましょう。

2.自端末で Flask アプリを作成

Flaskとは

Flask とは Python の Webフレームワークです。これにより Python で Webシステムを簡単に作成できます。

ライブラリのインストール

次のコマンドで Flask をインストールしましょう。

次のコマンドで ngrok をインストールしましょう。

ngrok のトークンを自端末に登録する

コマンドプロンプトで以下のプログラムを実行します。

実際の画面は以下のようになります。実行すると ngrok.yml というファイルが生成されこれを ngrok が自動で読み込んで使用してくれます。

ngrok authtoken を実行した様子
サンプルプログラム

以下は自端末で実行する Python プログラムを作成していきます。

このプログラムは ngrok で 5000番ポートを使用する URLを生成し、アプリケーション側 も 5000番ポートでGETによるアクセスを受け付けます。

詳しい解説

この部分では、 ngrok が 5000番ポート を使用するURLを生成してくれます。

自身の Python が直接実行された場合、__name__ = ”__main__” となります。アプリケーションを自端末のIPアドレスである 0.0.0.0 の 5000 番ポートで実行します。

@は関連付ける関数の前に置きます。@app.route(“/”, methods=[“GET”]) はURLにアクセスされたときに実行されるので、同時に次の行に定義されている test() 関数が実行されるのです。

実行結果

ではこのプログラムを実行してみましょう。

実行すると ターミナル に URLが出力 されます。

次に、このURLにブラウザからアクセスします。

このように自端末のPythonプログラムをURLから実行することができました!!

もちろん これは どこからでもアクセスできます。

ただし、実行するたびに URL が変わります。これは無料版の場合は仕方がないようです。

おわりに

今回は ngrok というサービスを使って、自端末のPythonプログラムをURLから動作させる方法をご紹介しました。あくまでも、本番のサービスではなく、開発環境を手軽に公開したい場合などに使用しましょう。

この記事が皆さんのお役に立てれば幸いです。

ではまた。

・参考サイト

ngrokとは?ngrokを使って、簡単にhttps化して外部公開(Deploy)する方法
ngrokが便利すぎる - Qiita
はじめに先日利用したngrokというサービスが便利過ぎたので紹介します。ngrokとは簡単にいうと、ローカルPC上で稼働しているネットワーク(TCP)サービスを外部公開できるサービスです。例え…
【Python Flask】初心者プログラマーのWebアプリ#1 簡単なページ作成 - Qiita
PythonのWebアプリケーションフレームワーク「Flask」の初心者プログラマー用のwebアプリ作成チュートリアルです。Pythonは機械学習やAI、スクレイピング、RTA、IoTたくさんのと…

コメント