2016-12-21 7 views
1

にGoogle App EngineのPythonのアプリケーションのコードにアクセスします。は、生産

Python/DjangoベースのGoogle App Engine Appでは、コードを本番環境で表示したいと考えています。

StackDriverの[デバッグ]ビューは1つしかありません。 しかし、明らかに、デバッグビューに表示されているコードは、更新されたプロダクションコード(プロダクションサイトに表示されている内容、たとえばホームページのテキストなど)を反映していません。

Google App Engineを使用すると、アプリケーション/コードが実行されているVMにsshを実行できますか? そうでない場合は、本番環境で実行されているコードをどのように確認できますか?

ありがとうございました。

+0

答えは、標準環境または柔軟な環境を使用しているかどうかによって大きく異なります。質問にその詳細を追加できますか? – BrettJ

答えて

2

Comparing environmentsテーブルのSSH debugging行に従うと、SSHアクセスはフレックス環境アプリでサポートされていますが、標準環境アプリではサポートされていません。 Connecting to the instanceから

VMインスタンスがデバッグモードになっている場合は、コンソールまたはgcloudでSSHを使用して ことによって、そのホストに接続することができます。コンソール内のインスタンスに接続するには

  1. 訪問プロジェクトのためのクラウドプラットフォームコンソールインスタンスのページ:含む行の右端にある Go to the instances page

  2. クリックSSH

    これは、インスタンスをデバッグモードにして、インスタンスのSSHセッションを開きます。ターミナルウィンドウ。

    また、さまざまなオプションを選択して、ドロップダウンリストからSSHセッションを開始することもできます。

  3. この時点では、インスタンスホストにあり、その中には複数のcontainersが実行されています。これらの詳細については、次にUnderstanding common containersを参照してください。ターミナルウィンドウで

  4. 、インスタンスで実行されているコンテナをリスト:

    sudo docker ps 
    
  5. sudo docker psコマンドリスト行によって各容器の出力。プロジェクトIDを含む行を探します。これはコードを実行する コンテナです。このコンテナのNAMEに注意してください。

  6. 必要に応じて、起動することにより、アプリケーションのログ情報をリスト:

    sudo docker logs [CONTAINER-NAME] 
    
  7. スタートあなたのコード実行されているコンテナ内のシェル:デバッグを終了したら

    container_exec [CONTAINER-NAME] /bin/bash 
    
  8. を、exitを入力しますコンテナを終了し、再度終了してSSHセッションを終了します。

  9. インスタンスのデバッグを無効にして、通常の操作を再開できるようにします。

+0

Danにありがとう。 https://cloud.google.com/appengine/docs/flexible/python/quickstartにアクセスすると、柔軟な環境はapp.yamlの 'env:flex'によって識別されますか?私は私の場合、app.yamlに「env:」が設定されているとは思わない。私はsshオプションを除外していると思います。私は、コードが実際に生産されていることを特定しようとしていますか? StackDriver 'Debug'の下に表示されているコードが正しいバージョンではないようです。私の場合(明らかにStandard Environment)、cronjobsのコードを含め、プロダクションでコードをどのように見ることができますか? – user362953

+0

「download_app」は唯一のオプションですか? https://cloud.google.com/appengine/docs/python/tools/appcfg-arguments#download_app残念なことに、それは私の場合、少なくとも今は選択肢ではありません。これは、コードや所有者をアップロードした人にのみ有効です。私はどちらでもありません。 'IAM'ページでは、私の役割は「編集者」です。 – user362953

+1

'app.yaml'の' env: 'が欠落しているのは標準的な環境なので、SSHアクセスはありません。 –

0

あなたが標準的な環境を使用している場合、答えはノーである、あなたは本当に直接コードを検査したり見ることができません。スタックドリバーデバッガを使って見てきましたが、それはその表現を見る方法の1つです。

コードを調べる理由がある場合は、組織の誰かがソースコード管理システムへの適切なアクセス権を与える必要があるようです。私はあなたが展開の実践が成熟していると思いますが、展開されたバージョンにマップするようにコードを分岐し、ローカルで詳細に調べることができます。

+0

ありがとうございます。問題は、リポジトリを更新する前にプロードするようにプッシュされたコードの変更によるものです。理想的には、scmシステムを介してのみコードをプッシュできる設定が必要です。 – user362953