アプリケーションのソースコードをダウンロードするには、download_app
アクションを指定して appcfg.py
コマンドを実行します。appcfg.py download_app
コマンドは、元の PHP 5 用 App Engine SDK から利用できます。
appcfg.py -A [YOUR_PROJECT_ID] -V [YOUR_VERSION_ID] download_app [OUTPUT_DIR]
ここで
[YOUR_PROJECT_ID]
は Cloud プロジェクト ID です。[YOUR_VERSION_ID]
は、ダウンロードするアプリケーションのバージョン ID です。[OUTPUT_DIR]
は、ファイルのダウンロード先ディレクトリの完全パスです。
このコマンドの詳細については、appcfg.py download_app
リファレンスをご覧ください。
コマンドが成功すると、次のような出力が表示されます。
Getting file list...
Fetching files...
Getting files...
[1/5] request.php
[2/5] login.php
[3/5] static/screen.css
[4/5] static/print.css
[5/5] images/bird.png
トラブルシューティング
Command not found
Google Cloud SDK をインストール済みで、
gcloud
ツールを使用する場合は、[SDK_INSTALL_PATH]/google-cloud-sdk/platform/google_appengine/
ディレクトリからappcfg.py
コマンドを実行できます。たとえば、Google Cloud SDK を使用するには、ディレクトリ パスを指定して
appcfg.py
を実行します。[SDK_INSTALL_PATH]/google-cloud-sdk/platform/google_appengine/appcfg.py -A [YOUR_PROJECT_ID] -V [YOUR_VERSION_ID] download_app [OUTPUT_DIR]
You do not have permission to download this app version
ファイルをダウンロードできるのは、アプリケーションのバージョンをデプロイした認証済みユーザーか、プロジェクトのオーナーロールを持つユーザーだけです。他のユーザーがアプリケーションをダウンロードしようとすると、次のようなエラー メッセージが表示されます。
Fetching file list... Error 403: --- begin server output --- You do not have permission to download this app version. --- end server output ---
ソースコードのダウンロードの防止
利用可能なソースコードにアクセスしてダウンロードする行為は、組織のポリシーで制限できます。
コードのダウンロードを制御するために制約をかけるには、次のコマンドを実行します。
constraints/appengine.disableCodeDownload
制約のデフォルト値は False です。つまり、コードのダウンロードが有効になります。このポリシーを使った制約は、組織、プロジェクト、フォルダで有効にできます。また、子リソースに継承されます。たとえば、プロジェクトはフォルダに設定されているポリシーの制約を継承し、フォルダは組織に設定されている制約を継承します。
権限
組織で orgpolicy.policyAdmin
ロールが付与されている場合は、appengine.disableCodeDownload
制約を設定できます。
組織レベルでのポリシー制約の設定
constraints/appengine.disableCodeDownload
の制約を設定するには、プロジェクトの組織 ID が必要です。
自分の組織 ID を確認する
Console
ID は、Google Cloud Console で確認できます。
- Google Cloud Console にログインします。
プロジェクト セレクタをクリックします。
組織を選択し、組織 ID を探します。
gcloud
次の gcloud
コマンドを実行して、ID を検索します。
gcloud organizations list
gcloud
の出力例は次のようになります。ここで、ID はプロジェクト ID です。
DISPLAY_NAME ID
example-organization 29252605212
ポリシーの制約を設定する
Console
組織のポリシーを設定するには、ソースコードのダウンロードを無効にする制約を構成します。
- Google Cloud Console の [組織のポリシー] ページに移動します。
- ページの上部にある [組織] プルダウン リストをクリックして、組織を選択します。
- [ソースコードのダウンロードを無効にする] をクリックします。
- [編集] ボタンをクリックします。
- [対象] で、[カスタマイズ] を選択します。
- [適用] で、[オン] を選択します。
- [保存] をクリックします。ポリシーが更新されたことを確認する通知が表示されます。
gcloud
ポリシーは、gcloud
コマンドライン ツールで設定できます。
ソースコードのダウンロードを無効にするには、次のコマンドを実行します。
gcloud alpha resource-manager org-policies enable-enforce \ --organization 'ORGANIZATION_ID' \ appengine.disableCodeDownload
ポリシーを無効にするには、同じコマンドを
disable-enforceコマンドと一緒に実行します。
appengine.disableCodeDownload
の制約は、フォルダレベルとプロジェクト レベルで設定できます。組織のポリシーで制約を使用する方法については、制約の使用をご覧ください。