pay.jp가 생산 환경에서 실행할 수 없는 오류에서 환경 변수를 학습합니다
배경
PAY.JP의 결제 시스템을 사용하여 로컬 환경에서 문제 없이 작업하지만 운영 환경(AWS, EC2)에서 오류가 발생했습니다.
이 과정에서 초보자가 환경 변수에 대해 배운 것을 비망록으로 기록했다.
문제
① 환경 변수로 AWS에 공개 키, 개인 키가 설정되어 있지 않습니다.
② ENV 파일에 기록된 키 정보를 읽는 설정은 오류를 제거할 수 없습니다.
해결됨
① AWS에서 키 정보를 환경 변수로 설정
②credentilas.yml에서 키 정보 읽기로 설정
③ ②를 위해credentials.키 정보를yml 환경 변수로 설정
세부 정보
① AWS의 환경 변수 설정
운영 환경에 대한 설정이므로 EC2 사용자로 로그인
[ec2-user@ip-172-31-45-207 ~]$ sudo vim /etc/environment
ENV 파일을 엽니다.i를 삽입 모드로 설정PAYJP_SECRET_KEY='sk_test_{pay.jpの秘密鍵情報}'
PAYJP_PUBLIC_KEY='pk_test_{pay.jpの公開鍵情報}'
기술하다.esc,:,wq로 저장합니다.컨트롤러를 사용하여 ENV 파일에 기술된 환경 변수에 대한 설명을 읽습니다.
Payjp.api_key = ENV["PAYJP_SECRET_KEY"]
이렇게 하면 돼!것으로 여겨지지만 오류는 아직 해소되지 않았다.② ENV 파일이 아니라 credentials입니다.yml에서 환경 변수를 읽는 것을 설정합니다.
(생산 환경에서만 왜 이런 설정이 필요한지 학습이 부족해서 잘 모르겠습니다. 하지만 이 오류로 인해credentials 파일이 무엇인지 배우는 계기가 되었습니다.)
https://qiita.com/777mountain/items/74757248980fcddb7652
이 보도를 참고했다.
Payjp.api_key = Rails.application.credentials.PAYJP[:PAYJP_SECRET_KEY]
이것만으로는 오류를 없앨 수 없습니다.credentials 파일에 환경 변수로 키 정보를 설정하지 않았기 때문입니다.원래credentials 파일은 무엇입니까?config/credentials.yml.enc
`VhSwT9zhK87oJuVNsMUN/I3Oh/....`
암호화된 환경 변수 정보를 포함합니다.이것은 rails new 때 만들어진 것입니다. 다른 파일의 주 키와 대조해서 가져옵니다.참고로 기밀 파일이기 때문에 인코더에서 이 파일을 직접 변경하려면 다시 시작할 수 없고 파일을 삭제하고 다시 만드는 등 처리해야 하기 때문에 주의해야 한다.③credentials.키 정보를yml 환경 변수로 설정
종착역에서
EDITOR="vi" bin/rails credentials:edit
i를 삽입 모드로 설정PAYJP:
PAYJP_SECRET_KEY: sk_test_秘密鍵
PAYJP_PUBLIC_KEY: pk_test_公開鍵
esc,:,wq로 저장합니다.주의해야 할 것은 ENV 파일과 기술 방법이 다르다는 것이다.
ENV의 경우 ""로 묶지만 이 경우 키: 값
지원되지 않는 문제
지금 컨트롤러에서 설명합니다.
Payjp.api_key = Rails.application.credentials.PAYJP[:PAYJP_SECRET_KEY]
이동이쪽도 ENV 때랑 다르게 쓰니까 주의하세요.이게 완성이야.현지와 본 공연이 바뀌는 이유를 잘 모르겠어요.
(혹시 아시는 분 있으면 알려주세요!)
나는 환경 변수의 설정 방법이 이렇게 많다는 것을 배웠다.참고로 환경 변수를 설정할 때 낭비된 공간 등을 넣으면 응용 프로그램 전체에 영향을 미치는 심각한 오류가 발생할 수 있으므로 초보자는 특히 원인을 밝히는 데 어려움이 많으므로 신중하게 기술해야 한다.
Reference
이 문제에 관하여(pay.jp가 생산 환경에서 실행할 수 없는 오류에서 환경 변수를 학습합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tanimotothe/items/9e01a09ad2f30979369c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)