Cloud Composer 3 | Cloud Composer 2 | Cloud Composer�
本頁說明如何設定資源位置限制,確保 Cloud Composer 儲存的資料位於您指定的位置。
位置限制的運作方式
Cloud Composer 的位置限制取決於套用至 Cloud Composer 環境建立所在專案的機構組織政策。這項政策是在專案內指派,或是從機構繼承而來。
啟用位置限制後,您就無法在政策禁止的區域建立環境。如果區域列於拒絕清單中,或未列於允許清單中,您就無法在該區域建立環境。
如要啟用環境建立功能,政策必須允許整個區域,而非該區域內的特定可用區。舉例來說,政策必須允許 europe-west3 地區,才能在該地區建立 Cloud Composer 環境。
Cloud Composer 會在下列時間檢查位置限制:
- 建立環境。
- 環境升級 (如果在作業期間建立任何額外資源)。
- 環境更新:適用於較舊的環境,這些環境不會對 Cloud Composer 依附元件強制執行位置限制。
除了檢查位置限制外,Cloud Composer 還會執行下列操作:
- 在區域 Artifact Registry 存放庫中儲存使用者自訂的 Airflow 映像檔。舉例來說,在環境中安裝自訂 PyPI 映像檔時,就會建立這類映像檔。
- 如果政策明確禁止使用US多區域,系統會停用 Cloud Build。在這種情況下,系統會在環境的叢集中建構使用者自訂的 Airflow 映像檔。
在設有資源位置限制的私人 IP 環境中安裝 Python 依附元件
如果為專案設定資源位置限制,就無法使用 Cloud Build 安裝 Python 套件。因此,我們停用了公開網際網路存放區的直接存取權。
如果位置限制不允許使用US多區域,請使用下列其中一種方式,在 Private IP 環境中安裝 Python 依附元件:
- 在虛擬私有雲網路中使用Proxy 伺服器,連線至公開網際網路上的 PyPI 存放區。在 Cloud Storage bucket 的 - /config/pip/pip.conf檔案中指定 Proxy 位址。
- 如果安全性政策允許從外部 IP 位址存取虛擬私有雲網路,您可以設定 Cloud NAT。 
- 將 Python 依附元件儲存在 Cloud Storage 值區的 - dags資料夾中,將其安裝為本機程式庫。如果依附元件樹狀結構很大,這可能不是好選擇。
限制 Cloud Composer 記錄的位置
如果 Cloud Composer 記錄檔含有機密資料,您可能需要將 Cloud Composer 記錄檔重新導向至單一地區 Cloud Storage 值區。如要這麼做,請使用記錄接收器。將記錄重新導向至 Cloud Storage 值區後,系統就不會再將記錄傳送至 Cloud Logging。
gcloud
- 建立新的 Cloud Storage bucket。 - gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION- 取代: - LOCATION改成環境所在的地區。
- BUCKET_NAME替換為值區的名稱。例如:- composer-logs-us-central1-example-environment。
 
- 建立新的記錄接收器。 - gcloud logging sinks create \ composer-log-sink-ENVIRONMENT_NAME \ storage.googleapis.com/BUCKET_NAME \ --log-filter "resource.type=cloud_composer_environment AND \ resource.labels.environment_name=ENVIRONMENT_NAME AND \ resource.labels.location=LOCATION"- 取代: - 將 ENVIRONMENT_NAME替換為環境的名稱。
- BUCKET_NAME替換為值區的名稱。
- LOCATION改成環境所在的地區。
 
- 將 
- 先前指令的輸出內容包含服務帳戶號碼。將「Storage 物件建立者」角色授予這個服務帳戶: - gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NUMBER@gcp-sa-logging.iam.gserviceaccount.com" \ --role='roles/storage.objectCreator' \ --condition=None- 取代: - 將 PROJECT_ID替換為專案 ID。
- SA_NUMBER,並提供上一個步驟中- gcloud logging sinks create指令傳回的服務帳號。
 
- 將 
- 從 Logging 排除環境記錄。 - gcloud logging sinks update _Default \ --add-exclusion name=ENVIRONMENT_NAME-exclusion,filter=\ "resource.type=cloud_composer_environment AND \ resource.labels.environment_name=ENVIRONMENT_NAME AND \ resource.labels.location=LOCATION"- 取代: - 將 ENVIRONMENT_NAME替換為環境的名稱。
- LOCATION改成環境所在的地區。
 
- 將