内容简介:您也可以一併在如果您的圖片權限異常
事前準備
-
於 Google Cloud Platform 主控台建立專案。
-
為專案啟用計費功能,如果您尚未啟用,請立即 啟用計費功能
-
設定本機 Rails 環境,本文假設您對於 Rails 的部分已有足夠的理解,故不在此增加冗余的介紹
啟用 Cloud SQL Admin API
立即啟用 或使用指令介面:
# 切換專案 $ gcloud projects list $ gcloud config set project <project_id> # 查詢服務 $ gcloud services list --available # 啟用 $ gcloud services enable sqladmin.googleapis.com
建立 Cloud SQL Instance 和 Database
安裝 gem
$ bundle add pg # 如果尚未安裝 $ bundle add appengine
設定資料庫連線
# 取得 Cloud SQL 資料庫資訊 $ gcloud sql instances describe <instance_name>
# config/database.yml production: adapter: postgresql encoding: unicode pool: 5 timeout: 5000 username: "[YOUR_POSTGRES_USERNAME]" password: "[YOUR_POSTGRES_PASSWORD]" database: [your_database_name_production] host: "/cloudsql/[YOUR_INSTANCE_CONNECTION_NAME]"
您也可以一併在 app.yaml
中加入 env_variables
。
Active Storage 設定
# config/storage.yml google: service: GCS project: [YOUR_PROJECT_ID] credentials: <%= ENV['GOOGLE_APPLICATION_CREDENTIALS'] %> bucket: [YOUR_BUCKET_NAME]
如果您的圖片權限異常 SignedUrlUnavailable
可以取得 credential.json
再試試。
- 控制台 > APIs & Services > Credentials > Create credentials > Service account key > App engine default service account > JSON > Create 。
# config/storage.yml google: service: GCS project: website credentials: <%= Rails.root.join("your/path.json") %> bucket: [YOUR_BUCKET_NAME]
設定 app.yaml 部署至 App Engine
App Engine 彈性環境使用 app.yaml
描述部署環境設定,在 Rails 專案根目錄加入 app.yaml
entrypoint: bundle exec rackup --port $PORT env: flex runtime: ruby # Rails 5.2+ 之後使用 config/master.key env_variables: RAILS_MASTER_KEY: [MASTER_KEY] beta_settings: cloud_sql_instances: [YOUR_INSTANCE_CONNECTION_NAME]
設定完成後執行下列指令:
$ gcloud app create $ RAILS_ENV=production bundle exec rails assets:precompile $ gcloud app deploy # 取得專案資訊 $ gcloud info # 瀏覽 $ gcloud app browse # OR $ gcloud app browse -s <service_name> # 讀取日誌 $ gcloud app logs read $ gcloud app logs tail $ gcloud app logs tail -s <service_name>
授予 appengine RubyGem 權限,執行 Migration
$ gcloud projects list $ gcloud projects add-iam-policy-binding [YOUR-PROJECT-ID] \ --member=serviceAccount:[PROJECT_NUMBER]@cloudbuild.gserviceaccount.com \ --role=roles/editor] $ bundle exec rake appengine:exec -- bundle exec rake db:migrate
其他資源與參考
# 取得用於驗證 GCP 服務的本機憑證。 $ gcloud auth application-default login # Stackdriver # Add this to config/environments/*.rb Rails.application.configure do |config| # Stackdriver Logging specific parameters config.google_cloud.logging.project_id = "YOUR-PROJECT-ID" config.google_cloud.logging.keyfile = "/path/to/service-account.json" end
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。