開発環境
- Laravel 9
- PHP 8.1
- GCP BigQuery
概要
LaravelでGCPのBigQueryを実装しているとき、BigQueryClient
のインスタンスを作成するために、
GCPの認証情報を設定する必要がありました。
jsonファイルに書かれてある10個のkeyとvalueをそれぞれ、envファイルに記載し
GCP_TYPE=********
GCP_PROJECT_ID=********
GCP_PRIVATE_KEY_ID=********
GCP_PRIVAATE_KEY=-----BEGIN PRIVATE KEY-----******** 省略 ********-----END PRIVATE KEY-----
〜 以下省略 〜
それぞれenvファイルに認証情報を記載して、Laravelでenv関数で環境変数を呼び出しました
'type' => env('GCP_TYPE'),
'project_id' => env('GCP_PROJECT_ID'),
'private_key_id' => env('GCP_PRIVATE_KEY_ID'),
'private_key' => env('GCP_PRIVAATE_KEY'),
〜 以下省略 〜
すると、以下のエラーが出力されました。
openssl_sign(): supplied key param cannot be coerced into a private key
openssl_sign(): 提供されたキー パラメータを強制的に秘密キーにすることはできません
private keyの記述方法が良くなかったようです。
結論
" "(ダブルクォーテーション)
で囲んで、文字列にする
GCP_PRIVAATE_KEY="-----BEGIN PRIVATE KEY-----******** 省略 ********-----END PRIVATE KEY-----"
-----BEGIN PRIVATE KEY-----
から始まって-----END PRIVATE KEY-----
で終わるようなKeyは、
ダブルクォーテーションで囲んで文字列として記述する必要があるようです。
envファイルではクォーテーションやダブルクォーテーションを使わないという先入観で、
かなり時間を使ってしまいました。
Laravel × BigQueryでInsertやDeleteする方法
こちらの記事ではLaravelでBigQueryにInsertやDeleteする方法をご紹介しています
こちらの記事も参考にしてみてください