heroku에서 Google Cloud 서비스 계정 키 설정

소개



Ruby on Rails에서 포트폴리오를 만드는 Rails 초학자입니다. 이전에는 다음 문서에서 Google Cloud Vision API를 사용하여 간단한 이미지 분석을 구현했습니다.

Rails에서 이미지를 미리 볼 때 Google Cloud Vision API와 연동하여 데이터 라벨 가져오기

그러나 heroku 프로덕션 환경에서 잘 시작되지 않습니다 ... (+ +)
아마 인증 주위가 잘 되지 않는 것 같다고 하는 것은 알았습니다만, 고치는데 안외 시간이 걸려 버렸으므로, 각서로서 남겨 둡니다.

원인



heroku에 각종 프로그램 파일을 투입할 때 git을 사용하고 있습니다.

terminal
git push heroku master

즉, github과 같은 정보를 heroku 측에 push하고 있습니다.
github에 키 정보를 가진 파일 등은 올리지 않도록 설정을하고 있기 때문에 (.gitignore), 결과적으로 heroku에도 키 정보를 가진 파일은 업로드되지 않습니다.
결과적으로 Google cloud vision API를 통해 연결할 때 필요한 서비스 계정 키가 있는 json 파일도 heroku 측에 제출되지 않았습니다.

이번에는이 정보를 성공적으로 전달하는 방법을 살펴 보겠습니다.

해결책



이번에 실시하는 것은, 환경 변수로서 heroku에 건네 놓아, 거기로부터 호출한다고 하는 작업입니다.
파일 자체를 heroku 컨테이너에 두는 대신 필요한 키 정보를 변수로 설정합니다.

heroku 설정



1. heroku에 액세스
먼저 heroku 화면에 액세스하여 설정할 앱을 선택합니다.

2.Settings에 액세스
화면의 탭, 설정을 클릭

3.Reveal Config Vars를 클릭
Settings 안의 Reveal Config Vars 버튼을 클릭


4. 환경 변수 설정
3. 버튼을 누르면 설정된 환경 변수가 나오므로 거기에 새롭게GOOGLE_CREDENTIALS (임의의 캐릭터 라인으로 OK)와, 서비스 어카운트 키 파일내의 모두를 copipe 해 등록합니다.

5. heroku 재부팅
환경 변수를 설정한 후 heroku restart로 다시 시작하십시오.

controller 설정



controller도 이것에 맞추어 설정해 갑니다.

XXXX_controller.rb
:
    #Vision APIの設定
    if Rails.env.production?
      config.credentials = JSON.parse(ENV.fetch('GOOGLE_CREDENTIALS'))
    else
      config.credentials = ENV["GOOGLE_APPLICATION_CREDENTIALS"]
    end
:

이번에는 프로덕션 환경의 경우 heroku로 설정한 환경 변수를 얻고,
JSON 파일로 config로 설정하도록 변경했습니다.

이상으로 heroku에서도 Google Cloud Vision API를 사용할 수 있게 되었습니다!

끝에



간단한 설정에도 불구하고 시간이 걸렸습니다 ...
heroku의 로그를 키틴으로 확인하고 로그 정보가 불충분하면,
이하의 설정을 해, 상세 정보를 확인해 보면 알 수 있을까 생각합니다.
htps : // 이 m / 느슨하지 않으면 / ms / 3102 d59124d38433b2

또, 이 환경 변수로부터 억지로 하지만 정답인지는 불안합니다・・
보안적으로 괜찮습니까? 더 좋은 방법은있을 것 같습니다 ...
이보다 더 좋은 방법이 있습니다! 등 있으면 꼭 댓글 주시면 감사하겠습니다.

좋은 웹페이지 즐겨찾기