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
改成環境所在的地區。
- 將