Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página mostra como configurar restrições de localização de recursos para que os seus dados armazenados pelo Cloud Composer sejam mantidos nas localizações que especificar.
Como funcionam as restrições de localização
As restrições de localização do Cloud Composer são determinadas com base na política organizacional aplicada ao projeto onde o ambiente do Cloud Composer é criado. Esta política é atribuída no projeto ou é herdada da organização.
Com as restrições de localização ativadas, não é possível criar um ambiente numa região proibida pela política. Se uma região estiver na lista de recusa ou não estiver na lista de permissão, não pode criar ambientes nesta região.
Para permitir a criação de ambientes, a política tem de permitir toda a região e não uma zona específica dentro desta região. Por exemplo, a região europe-west3
tem de ser permitida pela política para criar
ambientes do Cloud Composer nesta região.
O Cloud Composer verifica as restrições de localização nos seguintes locais:
- Criação de ambientes.
- Atualização do ambiente, se forem criados recursos adicionais durante a operação.
- Atualização do ambiente para ambientes mais antigos que não aplicam restrições de localização nas dependências do Cloud Composer.
Além de verificar as restrições de localização, o Cloud Composer faz o seguinte:
- Armazena imagens do Airflow personalizadas pelo utilizador em repositórios regionais do Artifact Registry. Por exemplo, estas imagens são criadas quando instala imagens PyPI personalizadas no seu ambiente.
- Se a
US
multirregião for explicitamente proibida pela política, a utilização do Cloud Build é desativada. Neste caso, as imagens do Airflow personalizadas pelo utilizador são criadas no cluster do seu ambiente.
Instale uma dependência do Python num ambiente de IP privado com restrições de localização de recursos
Se definir restrições de localização de recursos para o seu projeto, não é possível usar o Cloud Build para instalar pacotes Python. Consequentemente, o acesso direto aos repositórios na Internet pública é desativado.
Para instalar dependências do Python num ambiente de IP privado quando as suas restrições de localização não permitem a US
multirregião, use uma das seguintes opções:
Use um servidor proxy na sua rede VPC para se ligar a um repositório do PyPI na Internet pública. Especifique o endereço do proxy no ficheiro
/config/pip/pip.conf
no contentor do Cloud Storage.Se a sua política de segurança permitir o acesso à sua rede VPC a partir de endereços IP externos, pode configurar o Cloud NAT.
Armazene as dependências do Python na pasta
dags
no contentor do Cloud Storage para as instalar como bibliotecas locais. Esta pode não ser uma boa opção se a árvore de dependências for grande.
Restrinja as localizações dos registos do Cloud Composer
Se os seus registos do Cloud Composer contiverem dados confidenciais, recomendamos que redirecione os registos do Cloud Composer para um contentor do Cloud Storage regional. Para o fazer, use um destinatário de registos. Depois de redirecionar os registos para um contentor do Cloud Storage, os registos não são enviados para o Cloud Logging.
gcloud
Crie um novo contentor do Cloud Storage.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION
Substituir:
LOCATION
com a região onde o ambiente está localizado.BUCKET_NAME
com o nome do contentor. Por exemplo,composer-logs-us-central1-example-environment
.
Crie um novo destino de registo.
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"
Substituir:
ENVIRONMENT_NAME
com o nome do ambiente.BUCKET_NAME
com o nome do contentor.LOCATION
com a região onde o ambiente está localizado.
O resultado do comando anterior contém o número da conta de serviço. Conceda a função Criador de objetos de armazenamento a esta conta de serviço:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NUMBER@gcp-sa-logging.iam.gserviceaccount.com" \ --role='roles/storage.objectCreator' \ --condition=None
Substituir:
PROJECT_ID
com o ID do projeto.SA_NUMBER
com o número da conta de serviço fornecido pelo comandogcloud logging sinks create
no passo anterior.
Exclua os registos do seu ambiente do Registo.
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"
Substituir:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado.