> For the complete documentation index, see [llms.txt](https://easonwang.gitbook.io/web_advance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://easonwang.gitbook.io/web_advance/google_speech_api/cloud-run.md).

# Cloud Run

類似於 AWS lambda 的 serverless 架構。

> 關於 cloud function, cloud run 比較可參考
>
> <https://cloud.google.com/serverless-options?hl=zh-tw>

{% embed url="<https://console.cloud.google.com/run?hl=zh-tw>" %}

官方教學：<https://cloud.google.com/run/docs/quickstarts/build-and-deploy#node.js_1>

建議使用 github 專案搭配 dockerfile 進行部署，它會自動偵測專案 code 更新 push 上去後啟用 cloud build 然後快速部署，之後點擊 url 即可看到。

![](https://2356031413-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0u4DAqfidGmTt67qrG%2F-MJjGdV96J_ri7oPp7Fm%2F-MJjGxDAK8ZuFX6zZIFO%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202020-10-16%20%E4%B8%8A%E5%8D%8810.39.45.png?alt=media\&token=572d5268-f81b-42a9-8727-d0a792e2a99f)

## 如何部署新版本

每次 commit 並 push 到 github 雖然會自動啟用 cloud build ，但必須自己手動點擊 cloud run 套用新的版本並部署。

1.點擊以下箭頭處

![](https://2356031413-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0u4DAqfidGmTt67qrG%2F-MJjH5Iv2CYPg698Ojl8%2F-MJjJU3dHqq4cX_ynPMT%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202020-10-16%20%E4%B8%8A%E5%8D%8810.49.06.png?alt=media\&token=4ad6b434-6dab-47f0-a1a5-0a5cbca45f4e)

2.選取剛 cloud build 好的新版本

![](https://2356031413-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0u4DAqfidGmTt67qrG%2F-MJjH5Iv2CYPg698Ojl8%2F-MJjJbfk8RNuRAaYlmDN%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202020-10-16%20%E4%B8%8A%E5%8D%8810.48.57.png?alt=media\&token=b8fdf79f-e2f3-4a83-b719-8668154ad6b6)

3.拉到最下方點選 “部署”

![](https://2356031413-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0u4DAqfidGmTt67qrG%2F-MJjH5Iv2CYPg698Ojl8%2F-MJjJguVIIfl6HCmzjAB%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202020-10-16%20%E4%B8%8A%E5%8D%8810.49.28.png?alt=media\&token=30ae7877-4c02-44ee-831f-a0e2d06c2a97)

## 注意事項：

1.dockerfile 不用寫 expose port，因為寫在介面上定義即可

![](https://2356031413-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0u4DAqfidGmTt67qrG%2F-MJiymOkKYWrJ5sPFW-b%2F-MJjFuIFajTEngtG7jm0%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202020-10-16%20%E4%B8%8A%E5%8D%8810.35.43.png?alt=media\&token=ecff397d-25ff-4205-bbdc-fd43a6f567a5)

2.如果是抓取 github project 記得要設定 cloud build 的專案目錄

點選以下選取專案，然後點選藍字進入 cloud build 設定

![](https://2356031413-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0u4DAqfidGmTt67qrG%2F-MJiymOkKYWrJ5sPFW-b%2F-MJjGVclW_vKD42Czgsw%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202020-10-16%20%E4%B8%8A%E5%8D%8810.37.36.png?alt=media\&token=85a6297e-d203-421a-b543-ffec75db428d)

3.記得設定 dockerfile 在專案的目錄

![](https://2356031413-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0u4DAqfidGmTt67qrG%2F-MJiymOkKYWrJ5sPFW-b%2F-MJjGZZ7n0BVFubaCefb%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202020-10-16%20%E4%B8%8A%E5%8D%8810.36.49.png?alt=media\&token=e26577ef-abb6-494a-a582-ed7f30b03e4c)
