Cómo especificar la red y la subred

En esta página, se explica cómo especificar una red y una subred cuando ejecutas trabajos de Cloud Dataflow.

VPC y VPC compartida

Una red de VPC, a veces llamada simplemente red, brinda conectividad para los recursos en un proyecto. Si no estás familiarizado con las redes de VPC, primero revisa la Descripción general de la red de VPC.

Una red de VPC compartida es la que existe en un proyecto separado, denominado proyecto host, dentro de tu organización. Si un administrador de VPC compartida te definió como administrador de proyecto de servicio, tienes permiso para usar, al menos, algunas de las subredes en las redes del proyecto host. Consulta la descripción general de VPC compartida para obtener información de referencia sobre la VPC compartida.

Cómo especificar una red y una subred

Cuando creas un trabajo de Cloud Dataflow, puedes especificar una red o una subred. En las siguientes secciones, se describe cuándo debes usar cada parámetro.

Si omites los parámetros de la red y la subred, GCP supone que pretendes utilizar una red de VPC en modo automático con el nombre default. Si omites los parámetros de subred y de red y no tienes una red con nombre default en tu proyecto, recibirás un error.

Nota: Si no estás seguro sobre qué parámetro utilizar, especifica solo el parámetro de subred. El parámetro de red se especificará implícitamente para ti.

Parámetro de red

Puedes usar el parámetro de red para especificar una red de modo automático en tu proyecto.

También puedes utilizar el parámetro de red para seleccionar una red de VPC compartida solo si se cumplen las dos condiciones siguientes:

  • La red de VPC compartida que seleccionas es una red de modo automático.
  • Eres un administrador de proyectos de servicio con permisos a nivel del proyecto para todo el proyecto host de VPC compartida. Esto significa que un administrador de VPC compartida te otorgó la función del usuario de red para todo el proyecto host, por lo que puedes usar todas sus redes y subredes.

Para todos los demás casos, debes especificar una subred.

Parámetro de subred

Si necesitas seleccionar una subred específica en una red, especifica el parámetro subnetwork. Debes seleccionar una subred en la misma región que la zona donde ejecutas el trabajo de Cloud Dataflow. Por ejemplo, debes especificar el parámetro de subred en las siguientes situaciones:

  • La subred que necesitas está en una red de modo personalizado.
  • Eres un administrador de proyectos de servicio con permisos de nivel de subred para una subred específica en un proyecto host de VPC compartida.

Puedes especificar una subred con una URL completa o una ruta abreviada. Si la subred está ubicada en una red de VPC compartida, debes usar la URL completa.

  • URL completa:
    https://www.googleapis.com/compute/v1/projects/<HOST_PROJECT>/regions/<REGION>/subnetworks/<SUBNETWORK>
  • Forma abreviada:
    regions/<REGION>/subnetworks/<SUBNETWORK>

Si especificas una subnetwork, Cloud Dataflow elige la network por ti. Por lo tanto, cuando especificas una subnetwork, puedes omitir el parámetro de network.

Parámetro de IP pública

El parámetro de IP pública le indica al servicio de Cloud Dataflow si debe asignar direcciones IP públicas a los trabajadores de Cloud Dataflow. De forma predeterminada, el servicio de Cloud Dataflow asigna a los trabajadores direcciones IP públicas y privadas. Cuando desactivas las direcciones IP públicas, la canalización de Cloud Dataflow puede acceder a los recursos solo en los siguientes lugares:

Con las IP públicas desactivadas, aún puedes realizar tareas administrativas y de supervisión. Puedes acceder a tus trabajadores con SSH a través de las opciones enumeradas anteriormente. Sin embargo, la canalización no puede acceder a Internet y otras redes de GCP y los hosts de Internet no pueden acceder a tus trabajadores de Cloud Dataflow.

Desactivar las IP públicas te permite proteger mejor tu infraestructura de procesamiento de datos. Debido a que no se utilizan las direcciones IP públicas para tus trabajadores de Cloud᠎ Dataflow, también se reduce la cantidad de direcciones IP públicas que consumes en función de tu cuota de proyecto de GCP.

JAVA

Para desactivar las IP públicas, realiza los siguientes pasos:

  1. Habilita el acceso privado a Google para la red o subred.
  2. En los parámetros del trabajo de Cloud Dataflow, especifica --usePublicIps=false y --network=[NETWORK] o --subnetwork=[SUBNETWORK].

PYTHON

El parámetro de IP públicas requiere el SDK de Beam para Python. El SDK de Cloud Dataflow para Python no admite este parámetro. Para desactivar las IP públicas, realiza los siguientes pasos:

  1. Sigue las instrucciones de las dependencias de canalizaciones de Apache Beam para habilitar a etapas todas las dependencias de paquetes de Python.
  2. Habilita el acceso privado a Google para la red o subred.
  3. En los parámetros del trabajo de Cloud Dataflow, especifica --use_public_ips=false y --network=[NETWORK] o --subnetwork=[SUBNETWORK].

Cómo ejecutar la canalización con la red y la subred especificadas

En los siguientes ejemplos, se muestra cómo ejecutar la canalización en el servicio de Cloud Dataflow con los parámetros de network y subnetwork especificados.

Si eres un administrador de proyectos de servicio que solo tiene permiso para usar subredes específicas en una red de VPC compartida, debes especificar el parámetro de subnetwork con una subred que tengas permiso para usar.

Cómo usar la línea de comandos

En el siguiente ejemplo, se muestra cómo ejecutar la canalización desde la línea de comandos, especificando la subred. Con esto, se especifica implícitamente la red.

JAVA

mvn compile exec:java \
  -Dexec.mainClass=com.example.WordCount \
  -Dexec.args="--project=my-cloud-project \
    --stagingLocation=gs://my-wordcount-storage-bucket/staging/ \
    --output=gs://my-wordcount-storage-bucket/output \
    --runner=DataflowRunner \
    --subnetwork=https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork"

PYTHON

python -m apache_beam.examples.wordcount \
  --project my-cloud-project \
  --runner DataflowRunner \
  --staging_location gs://my-wordcount-storage-bucket/staging \
  --temp_location gs://my-wordcount-storage-bucket/temp \
  --output gs://my-wordcount-storage-bucket/output \
  --subnetwork https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork"

Uso de la API de REST

En el siguiente ejemplo, se muestra cómo ejecutar una plantilla y especificar una subred. Con esto, se especifica implícitamente la red.

Si estás ejecutando una plantilla de Cloud Dataflow con la API de REST, agrega network o subnetwork al objeto environment. Por ejemplo,

POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/wordcount/template_file
{
    "jobName": "my_job",
    "parameters": {
       "inputFile" : "gs://dataflow-samples/shakespeare/kinglear.txt",
       "output": "gs://my-wordcount-storage-bucket/output"
    },
    "environment": {
       "tempLocation": "gs://my-wordcount-storage-bucket/temp",
       "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork",
       "zone": "us-central1-f"
    }
}
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.