ソースコードのダウンロード

アプリケーションのソースコードをダウンロードするには、download_app アクションを指定して appcfg.py コマンドを実行します。appcfg.py download_app コマンドは、App Engine SDK for PHP 5 オリジナル版を介して使用できます。

appcfg.py -A [YOUR_PROJECT_ID] -V [YOUR_VERSION_ID] download_app [OUTPUT_DIR]

ここで

  • [YOUR_PROJECT_ID] は GCP プロジェクトの 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 Platform Console で確認できます。

  1. Google Cloud Platform Console にログインします。
  2. プロジェクト セレクタをクリックします。

    組織とプロジェクト セレクタのスクリーンショット

  3. 組織を選択し、組織 ID を探します。

    組織 ID のスクリーンショット

gcloud

次の gcloud コマンドを実行して、ID を確認します。

gcloud organizations list

gcloud 出力の例は次のようになります。出力にある ID がプロジェクト ID です。

DISPLAY_NAME           ID
example-organization   29252605212

ポリシーの制約を設定する

Console

組織のポリシーを設定するには、ソースコードのダウンロードを無効にする制約を構成します。

  1. Google Cloud Platform Console の [組織ポリシー] ページに移動します。

    [組織のポリシー] ページに移動

  2. ページの上部にある [組織] プルダウン リストをクリックして、組織を選択します。
  3. [ソースコードのダウンロードを無効にする] をクリックします。
  4. [編集] ボタンをクリックします。
  5. [対象] で、[カスタマイズ] を選択します。
  6. [適用] で、[オン] を選択します。
  7. [保存] をクリックします。ポリシーが更新されたことを確認する通知が表示されます。

gcloud

ポリシーは、gcloud コマンドライン ツールで設定できます。

ソースコードのダウンロードを無効にするには、次のコマンドを実行します。

gcloud alpha resource-manager org-policies enable-enforce \
    --organization 'ORGANIZATION_ID' \
    appengine.disableCodeDownload

ポリシーを無効にするには、同じコマンドを

disable-enforce
コマンドと一緒に実行します。

appengine.disableCodeDownload の制約は、フォルダレベルとプロジェクト レベルで設定できます。組織のポリシーで制約を使用する方法については、制約の使用をご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

PHP 5 の App Engine スタンダード環境