簡體   English   中英

是否可以在多個項目上部署一個谷歌雲功能?

[英]is it possible to deploy one google cloud function on multiple projects?

我是雲的初學者。我有一個包含多個項目的 GCP 帳戶,我有一個 gcf。現在我從控制台為每個項目一次又一次地單獨部署相同的功能。所以有什么辦法可以部署一個雲功能在所有項目中只需使用 terraform 或任何其他平台循環 projectIDs ?

您可以定義您的函數以及模塊中每個項目中重復的所有內容,然后在每個項目定義中使用該模塊。 為此,您需要在 terraform 配置中明確定義每個項目。
如果您可以利用其他 terraform 功能(例如跟蹤狀態、將基礎設施保持為代碼、透明度、可重用性並增加基礎設施復雜性而不會使一切變得混亂),那么這可能是值得的。

否則,如果您不打算做任何復雜的事情,而是只需要在多個項目上部署相同的功能,並且在可觀察的未來沒有更復雜的計划,那么使用 GCP CLI 工具編寫 Bash 腳本就是您的瑞士刀。 您可以將此作為參考: https : //cloud.google.com/functions/docs/quickstart

假設您在Google Cloud Source Repositories 中有您的函數代碼,並且您只想在所有項目中部署相同的代碼,您可以創建一個簡單的 BASH 腳本來執行此操作。

首先,您需要恢復您擁有的所有項目:

gcloud projects list --format 'value(projectId)'

然后,對於每個項目,部署函數(我假設 Nodejs 12 和一個 HTTP 觸發器,但在您方便時進行編輯):

for project in $(gcloud projects list --format 'value(projectId)');
do gcloud functions deploy <FUNCTION_NAME> \
  --source https://source.developers.google.com/projects/<PROJECT_ID>/repos/<REPOSITORY_ID>/ \
  --runtime nodejs12 \
  --trigger-http \
  --project $project;
done

要做更高級的事情,請查看wisp 的其他答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM