Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
本頁說明如何設定資源位置限制,確保 Cloud Composer 儲存的資料會保留在您指定的位置。
地區限制的運作方式
Cloud Composer 的位置限制取決於套用至建立 Cloud Composer 環境的專案所適用的機構政策。這項政策是在專案內指派,或是從機構繼承。
啟用位置限制後,您就無法在政策禁止的區域中建立環境。如果某個區域列在「拒絕」清單中,或是未列在「允許」清單中,您就無法在該區域建立環境。
如要啟用環境建立功能,政策必須允許整個區域,而非該區域內的特定區域。舉例來說,您必須在政策中允許 europe-west3 地區,才能在該地區建立 Cloud Composer 環境。
Cloud Composer 會在以下位置檢查位置限制:
- 建立環境。
- 如果在作業期間建立任何額外資源,則會升級環境。
- 針對未對 Cloud Composer 依附元件強制執行位置限制的舊版環境,提供環境更新。
除了檢查位置限制之外,Cloud Composer 還會執行下列操作:
- 將使用者自訂的 Airflow 映像檔儲存在區域 Artifact Registry 存放區中。
- 如果政策明確禁止使用
US多區域,Cloud Build 就會停用。在這種情況下,使用者自訂的 Airflow 映像檔會在 GKE 叢集中建構。
在設有資源位置限制的私人 IP 環境中安裝 Python 依附元件
如果您為專案設定資源位置限制,就無法使用 Cloud Build 安裝 Python 套件。因此,我們已停用公開網際網路上存放區的直接存取權。
如要在私人 IP 環境中安裝 Python 依附元件,但位置限制不允許使用 US 多區域,請使用下列任一選項:
使用 VPC 網路中的Proxy 伺服器連線至公開網際網路上的 PyPI 存放區。在 Cloud Storage 值區的
/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 值區。
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 Object Creator」角色授予此服務帳戶:
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改成環境所在的地區。
- 將