系統建立服務前我們在本地端先配置好Dockerfile檔案放入我們專案內,以及準備好requirements。
PS:可以再本地嘗試跑跑看XD 不然會像我一樣Cloud Build時因為時間太長導致有問題時,也是要找很久並且很難及時找出!
FROM python:3.12-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir --upgrade pip
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 8000
ENV NAME World
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
再來建立服務我們選用了github的方式建立,並且設定要cloud build及自己想要的repo 跟branch!
並且打開進階設定配置好環境變數及Cloud SQL所需的連線變數!
這邊要特別留意一下,上雲的時候需要使用,Cloud Run連接Cloud SQL的語法,但是在本地端也就是local測試時只需要帶IP及port號即可(可以參考Day21 Cloud SQL實作)!
db_user = os.environ["DB_USER"]
db_pass = os.environ["DB_PASS"]
db_name = os.environ["DB_NAME"]
db_port = os.environ["DB_PORT"]
db_ip = os.environ["DB_IP"]
db_conn_path = os.environ["INSTANCE_UNIX_SOCKET"]
engine = sqlalchemy.create_engine(
sqlalchemy.engine.url.URL.create(
drivername="postgresql+psycopg2",
username=db_user,
password=db_pass,
database=db_name,
host=db_conn_path
)
)
最後在Cloud Run查看是否有部署成功,
左上角打勾勾綠燈後最後在測試上面的URL,假如跟我一樣有寫一個基本的API測試,有hello world就代表部署成功啦,其餘上述一些服務等級、記錄當等等...資訊可能太大了沒辦法一時介紹清楚!後續有時間可以再一一介紹,重要的GCP的監控和日誌記錄會在後續幾天介紹!