반죽 흐름 , n
굽는 동안의 흐름 상태;
싸구려 현금 흐름 말장난;
현금 흐름 웹 앱.
DoughFlow는 각각 EmberJS/Google Cloud Firebase를 기반으로 구축된 클라이언트/서버 웹 애플리케이션입니다.
백엔드 로직은 Firebase 자체를 사용자 데이터의 백업 저장소로 사용하여 Firebase Cloud Functions를 통해 구현됩니다. 이는 경량의 서버리스 배포에서 클라이언트로부터 비즈니스 논리를 캡슐화합니다.
프런트엔드는 App Engine의 정적 페이지로 제공됩니다( TODO는 이렇게 하지 마세요.... GCS 등에서 제공 ).
마이크로서비스 프레임워크를 사용하여 Google App Engine에서 호스팅됩니다.
서비스로 구현된 프런트엔드: default
EmberJS 파일은 정적 파일(html 및 자산)로 제공됩니다.
백엔드 기능은 Cloud Functions로 구현됩니다(주의: '순수' 클라우드가 아닌 Firebase 버전, 통합이 너무 알파적인 것 같습니다).
백엔드 스토리지는 바로 Firebase입니다.
편의를 위해 DOUGH_FLOW=/home/me/my_dough_flow_checkout
허용합니다(예: 쉘 rc에 추가, zsh로 export
함).
GAE 앱을 사용한 GAE 프로젝트(청구 설정이 필요할 수 있음)
구글 클라우드 SDK
https://cloud.google.com/sdk/downloads
NodeJS (저는 nvm과 함께 7.10을 사용했습니다)
brew install nvm; nvm install v7.10
EmberJS (2017-05-26 기준으로 가장 최근에 사용함)
npm install -g [email protected]
중포 기지
npm install -g firebase-tools; npm install -g firebase-server
Google Cloud 프로젝트와 연결된 Firebase 프로젝트
Firebase 서버 및 SDK
src/frontend
로 이동합니다.
ember build
(주의: 그게 다인가요? npm 항목을 자동으로 설치하나요?)
gae/
. GAE 배포를 위한 빌드 아티팩트를 복사합니다.
ln -s ../src/frontend/dist
자세한 내용은 프런트 엔드 추가 정보를 참조하세요.
실제 AppEngine에 빌드/배포하는 경우:
ember build --environment=production
TODO
매핑하려면 /etc/hosts
(또는 유사한 항목)를 편집하세요.
127.0.0.1 localhost.firebaseio.test
Firebase는 특정 형식의 DB URL을 선호하므로 로컬 IP나 로컬 호스트를 databaseURL
로 사용할 수는 없습니다.
프로젝트 루트에서,
bin/start-doughflow-firebase# 또는 자세한 디버그의 경우: DEBUG=* bin/start-doughflow-firebase
(참고: 이 스크립트가 작동하려면 환경에 DOUGH_FLOW
가 있어야 합니다.)
(주의: 편의를 위해
$DOUGH_FLOW/bin
쉘 경로에 추가할 수 있습니다)
그러면 localhost.firebaseio.test
포트 5555
에서 사용할 수 있는 test/firebase.json
의 데이터가 로드된 Firebase와 유사한 로컬 서버가 시작됩니다. environment=development
일 때 Ember 앱은 이 호스트 이름을 사용하도록 설정됩니다.
로컬 Firebase 서버를 시작합니다(위 참조). 그런 다음 src/frontend
에서
엠버 서버
그러면 포트 4200에서 수신 대기하는 실시간 다시 로드 웹 서버가 시작됩니다. 앱을 보려면 http://localhost:4200으로 이동하세요.
실제로 이것이 필요한지 확실하지 않습니다. 클라이언트가 제어해서는 안 되는 섬세하고 민감한 서버 로직을 위해서는 클라우드 기능이 필요합니다. 현재로서는 그런 것이 없습니다. 그러나 알아내는 것은 고통이었습니다. 그래서 여기에 후손을 위한 몇 가지 참고 사항이 있습니다.
src/firebase/functions
에서 일부 기능을 설정하고 helloWorld와 같은 샘플을 사용하려면 src/firebase/functions/index.js
여야 합니다.
src/firebase/functions/config.json
파일에서 인증을 설정합니다. 로컬의 경우 실제 자격 증명이 필요하지 않을 수 있습니다.
로컬 함수 에뮬레이터를 실행합니다.
src/firebase/functions
디렉터리에서:
내보내기 CLOUD_RUNTIME_CONFIG=`pwd`/config.json && firebase는 --only 함수를 제공합니다.
TODO