JavaのGoogle Cloudエンドポイント:ガイド。 パート3

前のパーツ:

JavaのGoogle Cloudエンドポイント:ガイド。 h。1

JavaのGoogle Cloudエンドポイント:ガイド。 パート2(フロントエンド)



バージョンを使用する



Google App Engineは、アプリケーションの最大10種類のバージョンをダウンロードする機能を提供します。

そのうちの1つ(デフォルト-最初にロードされたもの)がデフォルトであり、アプリケーションのメインアドレスで、したがって独自のドメインのアドレスで使用できます。



残りは{version} -dot- {project ID} .appspot.comの形式のアドレスで利用可能です

好きなようにバージョンに名前を付けることができます。1-dot-{project ID} .appspot.comである必要はありません。より複雑な表記法を使用できます。

しかし、もちろん、バージョン名はWebアドレスの一部になるため、Webアドレスに許可されないピリオドや文字があってはなりません。



A / Bテストでは、トラフィックの分割を有効にし、特定の割合の訪問者をデフォルトバージョン以外のバージョンにリダイレクトできます。



バージョン管理は、開発者メニューで利用できます:Compute-> App Engine-> Versions:

画像



アプリケーションでは、/ src / main / webapp / WEB-INF / appengine-web.xmlの2つの場所でバージョンを示します。

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <application>{ ID}</application> <version>{ }</version>
      
      





-これは、GAEのアプリケーションの実際のバージョンです。



そしてpom.xmlで:

  <modelVersion>4.0.0</modelVersion> <packaging>war</packaging> <version>{}</version>
      
      





-これは、.warファイルの名前の一部になります:target / {project ID}-{version} .war



実際には、appengine-web.xmlとpom.xmlのバージョン指定は技術的には関係がなく、完全に異なる場合がありますが、順序を維持するという観点からは、それらが一致することは論理的です。



mvn appengine:updateコマンドは、.warファイルのバージョンおよび/src/main/webapp/WEB-INF/appengine-web.xmlで指定されたバージョン値に関係なく、「1」という名前のバージョンに更新を送信します



したがって、さまざまなバージョンのアプリケーションを使用するには、Google App Engine SDKが必要です。 この記事の執筆時点では、最新バージョンは1.9.28です。 ダウンロード先: cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_Javaから選択したディレクトリに解凍し、便宜上、PATHに書き込みます。例:

 mkdir ~/GAE-SDK # any path you like cd $_ wget https://storage.googleapis.com/appengine-sdks/featured/appengine-java-sdk-1.9.28.zip unzip appengine-java-sdk-1.9.28.zip cd appengine-java-sdk-1.9.28/bin echo 'export PATH=$PATH:'$(pwd) >> ~/.bashrc # adds current dir to PATH source ~/.bashrc cd
      
      







展開には、ユーティリティappcfg.shが使用されます。プロジェクトディレクトリで、次のコマンドを実行します。

 mvn clean install appcfg.sh update ./target/{ ID}{ } --noisy
      
      





ユーティリティはブラウザを介してユーザーを認証し、トークンを〜/ .appcfg_oauth2_tokens_javaに保存します

パラメーターとして、mvn installコマンド(./target/{project ID} {version number})によって作成され、app-engine-web.xmlが配置され、プロジェクトが読み込まれるディレクトリへのパスを示します。 appengine-web.xmlで名前が指定されているバージョンのサーバーへ



さて、バージョンを変更する場合、git commitのコメントでバージョンの変更を示すことを忘れないでください。



UPD :Google App Engine SDK 1.9.30 with Maven 3.3.3-すでにバージョンで正しく動作しています)



サーバーからプロジェクトファイルをダウンロードする



ユーティリティを使用して、サーバーからプロジェクトファイルをダウンロードすることもできます。 これは、次の形式のコマンドによって実行されます。

appcfg.sh -A {プロジェクトID} -V {バージョン名} download_app {ダウンロードディレクトリ}

例えば:

 appcfg.sh -A hello-habrahabr-api -V '1' download_app temp_hello-habrahabr-api.1
      
      





ダウンロードしたプロジェクトは次のようになります。

画像



または:

画像



つまり これは、サーバーに.warをデプロイした結果ですが、.war自体およびソースコードではありません。



サーバーからログをダウンロードする



次の形式のコマンドを使用して、単純なテキストファイル形式の同じユーティリティを使用して、ログをサーバーからローカルマシンにダウンロードできます。



appcfg.sh -A {プロジェクトID、スキップ可能-appengine-web.xmlから使用} -V {バージョン名} --num_days = {日数、デフォルト:1、最大90まで利用可能} --severity = {レベル0 (DEBUG)〜4(CRITICAL)、このパラメーターを省略すると、クエリログのみがダウンロードされます} request_logs src / main / webapp / {情報を保存するためのファイル)



オプションを指定することもできます:

--append(既存のファイルに追加)

--include_all(ログメッセージのすべての内容を含める)

--noisy(ユーティリティに関する詳細情報を表示)



例:

 appcfg.sh -A 'hello-habrahabr-api' -V '1' --num_days=90 --noisy request_logs src/main/webapp/ ../$(date '+%Y-%m-%d').LOGS.txt
      
      







Googleクラウドシェル



開発者コンソールのもう1つの興味深い機能は、 Google Cloud Shellです。



ページの下部にある上部パネルの端末を示すアイコンをクリックすると、コンソールが起動し、Googleクラウドサービス、特に標準のDebianベースのLinuxユーティリティでの作業に必要なツールが事前にインストールされたDebianベースのLinux仮想マシンにアクセスできます。 .h。 apt-get、wgetなど。 Java 7 Maven 3.2; Git Python 2.7およびpip; Node.jsおよびnpm; Google Cloud SDK Google App Engine SDK; Vim、Nano、Emacs。



ユーザーには5GBの永続ディスク領域が割り当てられますが、再起動の間にユーザーのホームディレクトリのみが保存されます。 つまり、ホームディレクトリ内のプログラム、ファイル、および設定は、新しいエントリごとに使用可能になります。 apt-getを使用してプログラムをインストールできます-ただし、1つのセッションのみです。

Webプレビュー機能も利用できます:8080から8084の範囲のポートでWebサーバー(たとえば、python -m SimpleHTTPServer)を起動し、「Webプレビュー」ボタン(このユーザーのみが利用可能)で別のブラウザーウィンドウ/タブで開くことができます。



画像

これがCloud Shellの外観です。 矢印は、コンソールの起動ボタンとWebプレビューを示します。



UPD:

継続:



Google App Engine / JavaのGoogle Cloud Endpoints:Objectifyフレームワークでデータベースを操作する



Javaを使用したGoogle Cloud Storage:クラウド内の画像とその他のファイル



All Articles