credentialsの環境変数を本番環境に反映

1 min read読了の目安(約1100字

テストカードを使って本番環境で決済機能を動かなかったので、credentialsに環境変数を記述して本番環境で動かすことにしました。その時の過程を簡単にまとめます。

  1. EC2でcredentials.yml.encをプル
  2. EC2でconfig/master.keyを設定
  3. rais cで動作確認

EC2でcredentials.yml.encをプル

ローカル環境ですでにcredentials.yml.enc内に環境変数を設定すると、credentials.yml.encの暗号の文字列が変換されます。

これをgitのmasterブランチにPush。

EC2にログインした後アプリのディレクトリを開き

$ git pull origin master

これでcredentials.yml.encの変更を反映できました。

EC2でconfig/master.keyを設定

EC2のルートディレクトリからconfigを開きます。

$ touch master.key
$ vim master.key

新規にmaster.keyファイルを作成し、そこにローカルのmaster.keyをコピペ。

$ cat master.key 
# マスターキーが表示されればOK

rais cで動作確認

EC2のアプリディレクトリまで移動した後、コンソールを立ち上げます。

$ rails c
pry(main)> Rails.application.credentials."環境変数名"
=> APIキーが表示されればOK

この後、アプリケーションサーバーを立ち上げます。

SOTD

いろいろな手段を使って環境変数の設定を試したのですが、結局テストカードを本番環境で使用することができず。万策尽きたのでPAY.JPのリファレンスを見直してみることに。

https://pay.jp/docs/api/#payjp-api

PAY.JPのAPIを利用するには、ユーザー登録を行い、APIページからAPIキーを取得してください。 テスト用のキーでは、本番の支払い処理を行うサーバーへは接続されず、実際の支払い情報として計上されることもありません。本番用のキーは、本番申請を行うことで利用できるようになります。

"テスト用のキーでは、本番の支払い処理を行うサーバーへは接続されず"...これか...。
外部APIに関する実装はリファレンスをちゃんと確認する必要がありますね。

今日の学びです。