2016-10-24 1 views
1

이것은 어리석은 질문 일 수 있습니다. 나는 ROR에 처음 온 사람이다.heroku에게 비밀 자격증이 필요한 webapp를 배포하는 방법은 무엇입니까? Rails 5

AWS S3에 연결되는 웹 앱이있어서 거기에서 객체를 업로드하고 다운로드 할 수 있습니다. 지금은 로컬에서만 실행 중입니다.

git을 사용할 때 내 자격 증명을 비밀로 유지하기 위해 작업 영역 폴더 외부에 배치 된 JSON 문서를 통해 연결이 이루어집니다. 내가하려고하면 (! 대만족 .. 나는 알고있다)

$ heroku run rails db:migrate 

나는 다음과 같은 오류가 발생합니다 :

Errno::ENOENT: No such file or directory @ rb_sysopen - /Users/Jen/workspace/secrets.json 

나는 웹 사이트를 입력 모두를 위해 accesible이 웹 애플리케이션을 위해 무엇을 할 수 있는지, 신임장을 유지하고 있니?

감사합니다.

+0

필자는이 주제에 대해 수년 전에이 글을 썼지 만 여전히 관련성이 있어야합니다 (명령어가 여전히 정확하게 동일한 지 알아 보려면 google이 필요할 수도 있음). http://rubyglasses.blogspot.com.au/ 2013/09/link-dont-publish-your-secret-keys-on.html tl; dr : 환경 변수를 사용하십시오 –

+0

그래서 저는 json 파일을 미리 저장하고 ENV에 저장 하시겠습니까? – catch22

+0

그게 내가 한 일이야. 너에게 완벽한 해결책이 아닐지도 모르지만, 노력할 가치가 있니? 그것은 내가 git에서 물건을 지키기 위해 찾은 유일한 방법이지만 heroku에 대해 동일한 코드를 사용할 수있게 해줍니다. –

답변

1

좋아, 보석 '피가로'가 이에 적합합니다. 그것은 Heroku에서 생산 ENV 변수를 설정하는 명령과 함께 제공됩니다.

는 Gemfile> 보석 설정을 만들 것인가 '피가로'

$ bundle exec figaro install 

/application.yml 파일은 .gitignore에 추가. (이 파일은 Github에서에 업로드되지 않습니다.)이 파일은 같은 변수를 포함해야합니다

development: 
AWS_ACCESS_KEY_ID: BLABLABLA 
AWS_SECRET_ACCESS_KEY: XYZXYZ 

production: 
AWS_ACCESS_KEY_ID: BLABLABLA 
AWS_SECRET_ACCESS_KEY: XYZXYZ 

당신의 ENV 변수를 Heroku가를 구성하는 방법 :

$ figaro heroku:set -e production 

을이 그것입니다 :)