概要
- GAEを中心としたLAMPスタックを設定・確認できるまでの環境を作る
- 環境はStandard Edition PHP7.2の環境
- コンソール画面から作成が前提。コード化は考慮しない。
設定
- 新規プロジェクトを作成しておく
- Consoleからインスタンス作成





確認
- デプロイをテストする
- app.yamlは最低限の記述
- まずは”default”サービスをデプロイ
- ソースコードのあるルートディレクトリにapp.yamlを配置
$ vi app.yaml
runtime: php72
service: default
$ gcloud app deploy --project=<project_name>
:
Do you want to continue (Y/n)? Y
:
To view your application in the web browser run:
$ gcloud app browse
- Consoleデプロイを確認する

$ gcloud app browse
Did not detect your browser. Go to this link to view your app:
https://projectname-production.an.r.appspot.com
- まだ設定がないのでアクセスしてもエラーになる

- 遭遇しがちなエラー
アプリケーションの複数のサービスをデプロイして作成するには、その前に default サービスをデプロイして作成する必要がある。
ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: The first service (module) you upload to a new application must be the 'default' service (module). Please upload a version of the 'default' service (module) before uploading a version for the 'production-service' service (module). See the documentation for more information. Python: (https://developers.google.com/appengine/docs/python/modules/#Python_Uploading%%20modules) Java: (https://developers.google.com/appengine/docs/java/modules/#Java_Uploading%%20modules)
CloudSourceRepository
設定
- かんたんなソースコードを配置
- 前提としてCloudSourceRepositoryにサンプルソースコードがある状態
- CloudSourceRepository
- リポジトリ追加を選択

- 「新しいリポジトリを作成」を選択

- 「リポジトリ名」と「プロジェクト名」を入力

CloudSDK
設定
- CloudSDK認証でローカルにClone
- この場合においてCloudSDK認証でローカルのMacにCloneする為、SSH認証する必要はない
$ gcloud source repos clone <repository_name> --project=<project_name>
* 鍵を追加登録する場合はリポジトリ選択画面→「クローン」→「SSH認証」タブ→「GoogleCloudにSSH認証鍵を登録します」を選択

- 以下のように鍵が登録される

$ gcloud source repos clone REPOSITORY_NAME [DIRECTORY_NAME] ---project=PROJECT_NAME
$ echo 'test' > README.md
$ git add README.md
$ git commit -m '最初のコミット'
$ git push
IAM
設定
- CloudSourceRepositoryに対して権限を付与したい場合
- IAMから「IAM」→「追加」→任意のユーザのアドレスと任意の権限を選択

GAE
設定
- CloudShellを起動
$ gcloud source repos clone <repository_name>
# ソースコードディレクトリにapp.yamlを配置する(最小設定のみでテストする)
$ vim <project_dir>/app.yaml
runtime: php72
service: default
$ ls
app.yaml index.php
確認
- デプロイが成功する事を確認
$ gcloud app deploy --project=<project_name>
$ gcloud app browse --project=<project_name>
- 出力されたURLにアクセス
- レスポンスが帰ってくる事を確認できたらひとまずOK

カスタムドメイン
- 以下を参考に任意のドメインネームでアクセスできるようにする