🔏
credentialsの環境変数を本番環境に反映
テストカードを使って本番環境で決済機能を動かなかったので、credentialsに環境変数を記述して本番環境で動かすことにしました。その時の過程を簡単にまとめます。
- EC2で
credentials.yml.enc
をプル - EC2で
config/master.key
を設定 -
rais c
で動作確認
credentials.yml.enc
をプル
EC2でローカル環境ですでにcredentials.yml.enc
内に環境変数を設定すると、credentials.yml.enc
の暗号の文字列が変換されます。
これをgitのmasterブランチにPush。
EC2にログインした後アプリのディレクトリを開き
$ git pull origin master
これでcredentials.yml.enc
の変更を反映できました。
config/master.key
を設定
EC2で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のリファレンスを見直してみることに。
PAY.JPのAPIを利用するには、ユーザー登録を行い、APIページからAPIキーを取得してください。 テスト用のキーでは、本番の支払い処理を行うサーバーへは接続されず、実際の支払い情報として計上されることもありません。本番用のキーは、本番申請を行うことで利用できるようになります。
"テスト用のキーでは、本番の支払い処理を行うサーバーへは接続されず"...これか...。
外部APIに関する実装はリファレンスをちゃんと確認する必要がありますね。
Discussion