Redisの使い方とローカル環境に関しては割愛。
Laravelにpredisを追加
composer require predis/predis
redisを設定
GCPの管理画面からインスタンスを作成。
リージョンはGAEと同一にする。
作成後、IPアドレスとポートをメモっておく。
サーバーレス VPC アクセスを作成
GCPの管理画面からコネクタを作成。
リージョンはGAEと同一にする。IP範囲は10.8.0.0でいいらしい。
作成されたら、コネクタの名前をメモっておく。
app.yamlに追加
REDIS_HOSTとREDIS_PORTは「redisを設定」でメモった値を設定。
vpc_access_connectorのプロジェクト名、リージョン、コネクタ名はそれぞれの環境で変更
app.yaml
runtime: php73
....
....
REDIS_CLIENT: predis
REDIS_HOST: 10.xx.xx.xx
# REDIS_PASSWORD: null
REDIS_PORT: 6379
vpc_access_connector:
name: 'projects/my-project/locations/asia-northeast1/connectors/my-connectors'
app deployして終了
しかし、下記エラー
ERROR: (gcloud.beta.app.deploy) PERMISSION_DENIED: Operation is not allowed. The "vpcaccess.connectors.use" permission is required.
cloud buildを使っているならもう一つやることが。
IAMと管理を開き、cloudbuildに対して以下の権限を与える。
- App Engine 管理者
- Cloud Build サービス アカウント
- Compute 管理者
- サーバーレス VPC アクセス ユーザー