Azure Stack Hub 内の VM に Python Web アプリをデプロイする

Azure Stack Hub でご自分の Python Web アプリをホストする VM を作成することができます。 この記事では、サーバーを設定し、Python Web アプリをホストするようにサーバーを構成してから、アプリを Azure Stack Hub にデプロイします。

この記事では、Nginx サーバー上の仮想環境内で Flask を実行している Python 3.x を使用します。 Azure Stack Hub Marketplace から Ubuntu Server 18.04 LTS を使用します。

VM の作成

  1. Web アプリをホストする Linux VM を Azure Stack Hub にデプロイする」の手順に従って、Azure Stack Hub で VM を設定します。 Azure Stack Hub Marketplace から Ubuntu Server 18.04 LTS を使用します。

  2. VM ネットワーク ウィンドウで、次のポートにアクセスできることを確認します。

    Port Protocol 説明
    80 HTTP ハイパーテキスト転送プロトコル (HTTP) は、サーバーからの Web ページの配信に使用されるプロトコルです。 クライアントは、DNS 名または IP アドレスを使用して HTTP 経由で接続されます。
    443 HTTPS ハイパーテキスト転送プロトコル セキュア (HTTPS) は、セキュリティ証明書を要求し、情報の暗号化された転送を許可する、セキュリティで保護されたバージョンの HTTP です。
    22 SSH Secure Shell (SSH) は、セキュリティで保護された通信のための暗号化されたネットワーク プロトコルです。 SSH クライアントとのこの接続を使用して、VM を構成し、アプリをデプロイします。
    3389 RDP 省略可能。 リモート デスクトップ プロトコル (RDP) では、リモート デスクトップ接続を介して、ご利用のマシンでグラフィック ユーザー インターフェイスを使用できるようにします。
    5000、8000 Custom 開発時に Flask Web フレームワークによって使用されるポート。 運用サーバーでは、80 と 443 を介してトラフィックをルーティングします。
  3. [概要] ペインで、[DNS 名] の下の [構成] を選択します。

  4. [静的] を選択し、次のような DNS 名を持つようにマシンに名前を付ます。<yourmachine>.<local>.cloudapp.azurestack.contoso.com

Python のインストール

  1. SSH クライアントを使用して VM に接続します。 手順については、「PuTTy を使用して SSH 経由で接続する」を参照してください。

  2. ご自分の VM 上の bash プロンプトで、次のコマンドを入力します。

    sudo apt-get update
    sudo apt-get -y install python3 python3-dev
    sudo apt install python3-pip
    
  3. インストールを検証します。 SSH セッションでまだ VM に接続している間に、次のコマンドを入力して Python を開き、バージョン番号をメモします。 次に「quit()」と入力して Python REPL を終了します。

    python3
    quit()
    
  4. Nginx をインストールします。これは、軽量な Web サーバーです。 SSH セッション内でご自分の VM に接続したままで、次のコマンドを入力します。

    sudo apt-get -y install nginx
    
  5. Git をインストール します。これは、広域分散型のバージョン管理およびソース コード管理 (SCM) システムです。 SSH セッション内でご自分の VM に接続したままで、次のコマンドを入力します。

    sudo apt-get -y install git
    

アプリのデプロイと実行

  1. VM 上でご自分の Git リポジトリを設定します。 SSH セッション内でご自分の VM に接続したままで、次のコマンドを入力します。

       git clone https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world.git
    
       cd azure-stack-hub-flask-hello-world
    
  2. SSH セッション内でご自分の VM に接続したままで、次のコマンドを入力して依存関係をインストールします。 apt を使用して Flask をインストールし、pip を使用して requirements.txt からモジュールを読み込みます。

    sudo apt install python3-flask
    pip3 install -r requirements.txt
    
    export FLASK_APP=application.py
    flask run -h 0.0.0.0
    
  3. ご自分の新しいサーバーに移動します。 実行中のご自分の Web アプリケーションを確認できます。

    <yourmachine>.<local>.cloudapp.azurestack.contoso.com:5000
    

ご自分のサーバーを更新する

  1. SSH セッション内でご自分の VM に接続します。 Ctrl + C キーを押して、サーバーを停止します。

  2. 次のコマンドを入力します。

    cd azure-stack-hub-flask-hello-world
    git pull
    
  3. 仮想環境をアクティブ化し、アプリを起動します。

    export FLASK_APP=application.py
    flask run -h 0.0.0.0
    

次のステップ