Conectarse a una red de VPC
En esta página, se muestra cómo conectar un Cloud Runservicio otrabajo a tu red de VPC, lo que permite el tráfico de salida (saliente) de instancias de VM de Cloud Run a Compute Engine, instancias de Memorystore y cualquier otro recurso con una dirección IP interna.
Puedes habilitar tu servicio o trabajo para enviar tráfico a una red de VPC mediante la configuración de un conector de acceso a VPC sin servidores o mediante la salida de VPC directa sin necesidad de conector.
Antes de comenzar
Si aún no tienes una red de VPC en tu proyecto, crea una.
Si usas una VPC compartida, consulta la documentación que abarca la configuración del Acceso a VPC sin servidores de tu producto.
- Cloud Run: Conéctate a una red de VPC compartida
- Cloud Functions: Conéctate a una red de VPC compartida
- App Engine: Conéctate a una red de VPC compartida
Si tienes una restricción de política de la organización que impide el uso de Cloud Deployment Manager, no podrás crear ni borrar conectores de Acceso a VPC sin servidores. Crear o borrar un conector requiere la funcionalidad de Deployment Manager.
Limitaciones
El tráfico IPv6 no es compatible.
Crear un conector
Para enviar solicitudes a tu red de VPC y recibir las respuestas correspondientes sin usar la Internet pública, puedes usar un conector de Acceso a VPC sin servidores.
Puedes crear un conector con la consola de Google Cloud, Google Cloud CLI o Terraform:
Consola
Dirígete a la página de descripción general de acceso a VPC sin servidores.
Haz clic en Crear conector.
En el campo Nombre, ingresa un nombre para el conector. Esto debe cumplir con la convención de nombres de Compute Engine, con la restricción adicional de que debe tener menos de 21 caracteres y guiones (-), lo que cuenta como dos caracteres.
En el campo Región, selecciona una región para el conector. Debe coincidir con la región del servicio sin servidores.
Si tu servicio o trabajo se encuentran en la región
us-central
oeurope-west
, usaus-central1
oeurope-west1
.En el campo Red, selecciona la red de VPC a la que conectarás el conector.
Haz clic en el menú Subred. Cada conector requiere su propia subred
/28
para colocar sus instancias. Otros recursos, como las VMs, Private Service Connect o los balanceadores de cargas, no pueden usar una subred.Si usas una VPC compartida, que requiere que uses tu propia subred, selecciona una subred de
/28
sin usar. Para confirmar que tu subred no se usa para Private Service Connect ni Cloud Load Balancing, verifica que la subredpurpose
seaPRIVATE
mediante la ejecución del siguiente comando en la CLI de gcloud:gcloud compute networks subnets describe SUBNET
Reemplaza lo siguiente:- SUBNET: El nombre de tu subred
Si no usas una VPC compartida, crea una subred para el conector o haz que el conector cree una subred mediante la selección de Rango de IP personalizado en el menú.
En el campo Rango de IP, ingresa la primera dirección en un rango de IP interna CIDR
/28
sin reservar. Este rango de IP no debe superponerse con ninguna reserva de dirección IP existente en la red de VPC. Por ejemplo,10.8.0.0
(/28
) funcionará en la mayoría de los proyectos nuevos.La subred que se crea está oculta y no se puede usar en reglas de firewall ni parámetros de configuración de NAT.
Consulta qué rangos de IP están reservados en este momento en la consola de Google Cloud.
Obtén más información sobre cómo trabajar con subredes.
(Opcional) Si deseas configurar las opciones de escalamiento para tener control adicional del conector, haz clic en Mostrar la configuración de escalamiento a fin de mostrar el formulario de escalamiento:
- Configura la cantidad mínima y máxima de instancias para tu conector o usa los valores predeterminados, que son 2 (mínimo) y 10 (máximo). El conector se escala horizontalmente al máximo especificado si el uso del tráfico lo requiere, pero el conector no se reduce cuando el tráfico disminuye.
Debes usar valores que se encuentren entre
2
y10
. - En el menú Tipo de instancia, elige el tipo de máquina que se usará para el conector o usa el tipo
e2-micro
predeterminado. Observa la barra lateral de costos a la derecha cuando elijas el tipo de instancia, en la que se muestran las estimaciones de costo y ancho de banda.
- Configura la cantidad mínima y máxima de instancias para tu conector o usa los valores predeterminados, que son 2 (mínimo) y 10 (máximo). El conector se escala horizontalmente al máximo especificado si el uso del tráfico lo requiere, pero el conector no se reduce cuando el tráfico disminuye.
Debes usar valores que se encuentren entre
Haga clic en Crear.
Aparecerá una marca de verificación verde junto al nombre del conector cuando esté listo para usar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Actualiza los componentes de
gcloud
a la versión más reciente:gcloud components update
Asegúrate de que esté habilitada la API de Acceso a VPC sin servidores en el proyecto:
gcloud services enable vpcaccess.googleapis.com
Si usas una VPC compartida, que requiere que uses tu propia subred, crea un conector con el siguiente comando:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region REGION \ --subnet SUBNET \ # If you are not using Shared VPC, omit the following line. --subnet-project HOST_PROJECT_ID \ # Optional: specify minimum and maximum instance values between 2 and 10, default is 2 min, 10 max. --min-instances MIN \ --max-instances MAX \ # Optional: specify machine type, default is e2-micro --machine-type MACHINE_TYPE
Reemplaza lo siguiente:
CONNECTOR_NAME
: un nombre para tu conector Esto debe cumplir con la convención de nombres de Compute Engine, con la restricción adicional de que debe tener menos de 21 caracteres y guiones (-), lo que cuenta como dos caracteres.REGION
: Es una región para el conector que debe coincidir con la región del trabajo o servicio sin servidores. Si tu servicio o trabajo se encuentran en la regiónus-central
oeurope-west
, usaus-central1
oeurope-west1
.SUBNET
: Es el nombre de una subred/28
sin usar.- El conector debe usar las subredes exclusivamente. No las pueden usar otros recursos, como VM, Private Service Connect o balanceadores de cargas.
- A fin de confirmar que tu subred no se usa para Private Service Connect o Cloud Load Balancing HTTP(S) interno, verifica que la subred
purpose
seaPRIVATE
mediante la ejecución del siguiente comando en la CLI de gcloud:gcloud compute networks subnets describe SUBNET
Reemplazar:- SUBNET: el nombre de tu subred.
- Obtén más información sobre cómo trabajar con subredes.
HOST_PROJECT_ID
: el ID del proyecto host. Suministra este valor solo si usas una VPC compartida.MIN
: Es la cantidad mínima de instancias que se usarán para el conector. Usa un número entero que se encuentre entre2
y9
. El valor predeterminado es2
. Para obtener más información sobre el escalamiento del conector, consulta Capacidad de procesamiento y escalamiento.MAX
: Es la cantidad máxima de instancias que se usarán para el conector. Usa un número entero que se encuentre entre3
y10
. El valor predeterminado es10
. Si el tráfico lo requiere, el conector se escalará horizontalmente hasta el[MAX]
de instancias, pero luego no se reducirá la escala. Para obtener más información sobre el escalamiento del conector, consulta Capacidad de procesamiento y escalamiento.MACHINE_TYPE
:f1-micro
,e2-micro
oe2-standard-4
. Para obtener información sobre la capacidad de procesamiento del conector, incluidos el tipo de máquina y el escalamiento, consulta Capacidad de procesamiento y escalamiento.
Para obtener más detalles y ver los argumentos opcionales, consulta la referencia de
gcloud
.Si no usas una VPC compartida y deseas proporcionar un rango de IP personalizado en lugar de usar una subred existente, crea un conector con el siguiente comando:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --network VPC_NETWORK \ --region REGION \ --range IP_RANGE
Reemplaza lo siguiente:
CONNECTOR_NAME
: un nombre para tu conector Esto debe cumplir con la convención de nombres de Compute Engine, con la restricción adicional de que debe tener menos de 21 caracteres y guiones (-
), lo que cuenta como dos caracteres.VPC_NETWORK
: la red de VPC a la que conectarás el conectorREGION
: Es una región para el conector. Debe coincidir con la región del servicio o el trabajo sin servidores. Si tu servicio o trabajo se encuentran en la regiónus-central
oeurope-west
, usaus-central1
oeurope-west1
.IP_RANGE
: una red IP interna no reservada. Se requiere un valor/28
de espacio no asignado. El valor proporcionado es la red en notación CIDR (10.8.0.0/28
). Este rango de IP no debe superponerse con ninguna reserva de dirección IP existente en la red de VPC. Por ejemplo,10.8.0.0/28
funciona en la mayoría de los proyectos nuevos. La subred que se crea para este rango está oculta y no se puede usar en reglas de firewall ni parámetros de configuración de NAT.
Para obtener más detalles y argumentos opcionales, como los controles de la capacidad de procesamiento, consulta la referencia de
gcloud
.Verifica que tu conector tenga el estado
READY
antes de usarlo:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region REGION
Reemplaza lo siguiente:
CONNECTOR_NAME
: Es el nombre de tu conector. Este es el nombre que especificaste en el paso anterior.REGION
: Es la región del conector. Esta es la región que especificaste en el paso anterior.
El resultado debe contener la línea
state: READY
.
Terraform
Puedes usar un recurso de Terraform para habilitar la API de vpcaccess.googleapis.com
.
Puedes usar módulos de Terraform para crear una red y subred de VPC y, luego, crear el conector.
Configura el entorno sin servidores para usar un conector
Después de crear un conector de Acceso a VPC sin servidores, sigue las instrucciones del entorno sin servidores a fin de configurar el entorno sin servidores para usar el conector:
Configura Cloud Run para usar el conector
Cuando creas un servicio nuevo oimplementas una revisión nueva, puedes configurar el servicio para usar un conector mediante la consola de Google Cloud, Google Cloud CLI, un archivo YAML o un recurso de Terraform.
Consola
En la consola de Google Cloud ve a Cloud Run:
Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en implementar y editar la nueva revisión.
Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedor, herramientas de redes, seguridad para expandir la página de configuración del servicio.
Haz clic en la pestaña Conexiones.
- En el campo Conector de VPC (VPC Connector), selecciona el conector que usarás o selecciona Ninguno (None) para desconectar tu servicio de una red de VPC.
Haz clic en Crear o Implementar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para especificar un conector durante la implementación, usa la marca
--vpc-connector
:gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME
- Reemplaza
SERVICE
por el nombre del servicio - Reemplaza
IMAGE_URL
. - Reemplaza
CONNECTOR_NAME
por el nombre de tu conector. Si el conector está en el proyecto host de una VPC compartida, se debe ingresar el nombre completo, por ejemplo:projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
en el que HOST_PROJECT_ID es el ID del proyecto host, CONNECTOR_REGION es la región del conector y CONNECTOR_NAME es el nombre que le asignaste a tu conector.
Para conectar, actualizar o quitar un conector de un servicio existente, usa el comando
gcloud run services update
con cualquiera de las siguientes marcas, según sea necesario:Por ejemplo, para adjuntar o actualizar un conector, haz lo siguiente:
gcloud run services update SERVICE --vpc-connector CONNECTOR_NAME
- Reemplaza
SERVICE
por el nombre del servicio - Reemplaza
CONNECTOR_NAME
por el nombre de tu conector.
- Reemplaza
YAML
Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
gcloud run services describe SERVICE --format export > service.yaml
Agrega o actualiza el atributo
run.googleapis.com/vpc-access-connector
en el atributoannotations
, en el atributo de nivel superiorspec
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
- Reemplaza
SERVICE
por el nombre de tu servicio de Cloud Run. - Reemplaza
CONNECTOR_NAME
por el nombre de tu conector. Si el conector está en el proyecto host de una VPC compartida, se debe ingresar el nombre completo, por ejemplo:projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
en el que HOST_PROJECT_ID es el ID del proyecto host, CONNECTOR_REGION es la región del conector y CONNECTOR_NAME es el nombre que le asignaste a tu conector.
- Reemplaza
Reemplaza el servicio por la configuración nueva mediante el comando siguiente:
gcloud beta run services replace service.yaml
Terraform
Puedes usar un recurso de Terraform a fin de crear un servicio y configurarlo para que use tu conector.
Configura Cloud Functions para usar un conector
Puedes configurar una función para usar un conector de la consola de Google Cloud o de Google Cloud CLI:
Consola
Ve a la página de Descripción general de Cloud Functions en la consola de Google Cloud:
Haz clic en Crear función. Como alternativa, haz clic en una función existente para ir a la página de detalles y haz clic en Editar.
Haz clic en Configuración del entorno de ejecución, compilación y conexiones para expandir la configuración avanzada.
En la pestaña Conexiones en Configuración de salida, ingresa el nombre del conector en el campo Conector de VPC.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Usa el comando
gcloud functions deploy
para implementar la función y especifica la marca--vpc-connector
:gcloud functions deploy FUNCTION_NAME \ --vpc-connector CONNECTOR_NAME \ FLAGS...
Donde:
FUNCTION_NAME
es el nombre de la función.CONNECTOR_NAME
es el nombre del conector. Si el conector está en el proyecto host de una VPC compartida, se debe ingresar el nombre completo, por ejemplo:projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
en el que HOST_PROJECT_ID es el ID del proyecto host, CONNECTOR_REGION es la región del conector y CONNECTOR_NAME es el nombre que le asignaste a tu conector.FLAGS...
se refiere a otras marcas que pasas durante la implementación de la función.
Para tener más control sobre qué solicitudes se enrutan a través del conector, consulta Configuración de salida.
Configura App Engine para usar un conector.
Python 2
Deja de usar el servicio de recuperación de URL de App Engine.
De forma predeterminada, todas las solicitudes se enrutan a través del servicio de recuperación de URL. Esto hace que las solicitudes a tu red de VPC fallen. Para inhabilitar este valor predeterminado, consulta Inhabilita la recuperación de URL mediante el control de todas las solicitudes salientes.
Aún puedes usar la biblioteca
urlfetch
directamente para solicitudes individuales, si es necesario. Sin embargo, esto no se recomienda.Agrega el campo Acceso a VPC sin servidores al archivo
app.yaml
:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
Reemplaza lo siguiente:
PROJECT_ID
por el ID del proyecto de Google Cloud. Si el conector está en el proyecto host de una VPC compartida, se debe especificar el ID del proyecto host.REGION
por la región en la que se encuentra el conectorCONNECTOR_NAME
por el nombre de tu conector
Implementa el servicio:
gcloud app deploy
Después de implementar el servicio, este podrá enviar solicitudes a direcciones IP internas para acceder a los recursos en la red de VPC.
Java 8
Deja de usar el servicio de recuperación de URL de App Engine
URLFetchService
Agrega el elemento de Acceso a VPC sin servidores al archivo
appengine-web.xml
del servicio:<vpc-access-connector> <name>projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME</name> </vpc-access-connector>
Reemplaza lo siguiente:
PROJECT_ID
por el ID del proyecto de Google Cloud. Si el conector está en el proyecto host de una VPC compartida, se debe especificar el ID del proyecto host.REGION
por la región en la que se encuentra el conectorCONNECTOR_NAME
por el nombre de tu conector
Implementa el servicio:
gcloud app deploy WEB-INF/appengine-web.xml
Después de implementar el servicio, este podrá enviar solicitudes a direcciones IP internas para acceder a los recursos en la red de VPC.
Go 1.11
Deja de usar el servicio de recuperación de URL de App Engine.
El acceso a VPC sin servidores no admite la recuperación de URL, y las solicitudes realizadas mediante la recuperación de URL ignorarán la configuración del acceso a VPC sin servidores. Realiza conexiones salientes con sockets en su lugar.
Agrega el campo Acceso a VPC sin servidores al archivo
app.yaml
:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
Reemplaza lo siguiente:
PROJECT_ID
por el ID del proyecto de Google CloudREGION
por la región en la que se encuentra el conectorCONNECTOR_NAME
por el nombre de tu conector
Implementa el servicio:
gcloud app deploy
Después de implementar el servicio, este podrá enviar solicitudes a direcciones IP internas para acceder a los recursos en la red de VPC.
Todos los demás entornos de ejecución
Agrega el campo Acceso a VPC sin servidores al archivo
app.yaml
:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
Reemplaza lo siguiente:
PROJECT_ID
por el ID del proyecto de Google Cloud. Si el conector está en el proyecto host de una VPC compartida, se debe especificar el ID del proyecto host.REGION
por la región en la que se encuentra el conectorCONNECTOR_NAME
por el nombre de tu conector
Implementa el servicio:
gcloud app deploy
Después de implementar el servicio, este podrá enviar solicitudes a direcciones IP internas para acceder a los recursos en la red de VPC.
Configura tu entorno de Cloud Run sin un conector
Puedes habilitar tu servicio de Cloud Run para enviar tráfico de salida (saliente) directamente a una red de VPC, lo que permite el acceso a instancias de VM de Compute Engine, instancias de Memorystore y cualquier otro. recursos con una dirección IP interna.
Configura el servicio sin un conector
La salida de VPC directa permite que tu servicio de Cloud Run envíe tráfico a una red de VPC sin un conector de Acceso a VPC sin servidores. Los costos de red reducen su escala a cero al igual que el servicio. También puedes usar etiquetas de red de forma directa en las revisiones de servicio de Cloud Run para obtener una seguridad de red más detallada.
Puedes configurar la salida de VPC directa con un servicio a través de la consola de Google Cloud, Google Cloud CLI o YAML.
Consola
Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar y, luego, implementar un servicio existente, haz clic en el servicio y, luego, en Implementar y editar una nueva revisión.
Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedor, volúmenes, herramientas de redes y seguridad para expandir la página de configuración del servicio.
Haz clic en la pestaña Herramientas de redes.
Haz clic en Conéctate a una VPC para el tráfico saliente.
Haz clic en Enviar tráfico de forma directa a una VPC.
En el campo Red, selecciona la red de VPC a la que deseas enviar tráfico.
En el campo Subred, selecciona la subred desde la que tu servicio recibe direcciones IP. Puedes implementar varios servicios en la misma subred.
Opcional: Ingresa los nombres de las etiquetas de red que quieres asociar con tu servicio o tus servicios. Las etiquetas de red se especifican a nivel de revisión. Cada revisión del servicio puede tener diferentes etiquetas de red, como
network-tag-2
.En Enrutamiento del tráfico, selecciona una de las siguientes opciones:
- Enruta solo las solicitudes a IP privadas a la VPC para enviar solo tráfico a direcciones internas a través de la red de VPC.
- Enruta todo el tráfico a la VPC para enviar todo el tráfico saliente a través de la red de VPC.
Haz clic en Crear o Implementar.
Para verificar que tu servicio esté en tu red de VPC, haz clic en el servicio y, luego, en la pestaña Herramientas de redes. Las redes y las subredes se detallan en la tarjeta VPC.
Ahora puedes enviar solicitudes desde tu servicio de Cloud Run a cualquier recurso en la red de VPC, como lo permiten las reglas de firewall.
gcloud
Para implementar un servicio de Cloud Run sin un conector de Google Cloud CLI, sigue estos pasos:
Asegúrate de que la API de Compute Engine esté habilitada para tu proyecto:
gcloud services enable compute.googleapis.com
Implementa el servicio de Cloud Run con el siguiente comando:
gcloud run deploy SERVICE_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --vpc-egress=EGRESS_SETTING \ --region=REGION
Reemplaza lo siguiente:
- SERVICE_NAME por el nombre del servicio de Cloud Run.
- IMAGE_URL por una referencia a la imagen del contenedor, como
us-docker.pkg.dev/cloudrun/container/hello:latest
Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - NETWORK por el nombre de la red de VPC.
-
SUBNET por el nombre de la subred La subred debe ser
/26
o mayor. La salida de VPC directa es compatible con los rangos IPv4 RFC 1918, RFC 6598 y clase E. Puedes implementar o ejecutar varios servicios o trabajos en la misma subred, pero ningún conector existente puede compartir la subred. - Opcional: NETWORK_TAG_NAMES por los nombres separados por comas de las etiquetas de red que deseas asociar con un servicio. Para los servicios, las etiquetas de red se especifican a nivel de revisión. Cada revisión del servicio puede tener diferentes etiquetas de red, como
network-tag-2
. - EGRESS_SETTING por un valor de configuración de salida:
all-traffic
: Envía todo el tráfico saliente por medio de la red de VPC.private-ranges-only
: Envía solo el tráfico a direcciones internas por medio de la red de VPC.
- REGION por una región para el servicio.
Para verificar que tu servicio esté en tu red de VPC, ejecuta el siguiente comando:
gcloud run services describe SERVICE_NAME \ --region=REGION
Reemplaza lo siguiente:
SERVICE_NAME
por el nombre de tu servicioREGION
por la región del servicio que especificaste en el paso anterior.
El resultado debe contener el nombre de tu red, subred y configuración de salida, por ejemplo:
VPC access: Network: default Subnet: subnet Egress: private-ranges-only
Ahora puedes enviar solicitudes desde tu servicio de Cloud Run a cualquier recurso en la red de VPC, como lo permiten las reglas de firewall.
YAML
Puedes almacenar la especificación de servicio en un archivo YAML
y, luego, implementarla con gcloud CLI.
Crea un archivo nuevo
service.yaml
con el siguiente contenido:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE_NAME labels: cloud.googleapis.com/location: REGION spec: template: metadata: annotations: run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]' run.googleapis.com/vpc-access-egress: EGRESS_SETTING spec: containers: - image: IMAGE
Reemplaza lo siguiente:
- SERVICE_NAME por el nombre del servicio de Cloud Run. Los nombres de servicios deben tener 49 caracteres o menos, y deben ser únicos por región y proyecto.
- REGION por la región del servicio de Cloud Run, que debe coincidir con la región de la subred.
- NETWORK por el nombre de la red de VPC.
-
SUBNET por el nombre de la subred La subred debe ser
/26
o mayor. La salida de VPC directa es compatible con los rangos IPv4 RFC 1918, RFC 6598 y clase E. Puedes implementar o ejecutar varios servicios o trabajos en la misma subred, pero ningún conector existente puede compartir la subred. - Opcional: NETWORK_TAG_NAMES por los nombres de las etiquetas de red que deseas asociar con un servicio. Para los servicios, las etiquetas de red se especifican a nivel de revisión. Cada revisión del servicio puede tener diferentes etiquetas de red, como
network-tag-2
. - EGRESS_SETTING por un valor de configuración de salida:
all-traffic
: Envía todo el tráfico saliente por medio de la red de VPC.private-ranges-only
: Envía solo el tráfico a direcciones internas por medio de la red de VPC.
- IMAGE por la URL de la imagen de contenedor de servicio.
También puedes especificar más opciones de configuración, como variables de entorno o límites de memoria.
Implementa el servicio nuevo a través de la ejecución del siguiente comando:
gcloud run services replace service.yaml
De manera opcional, haz que tu servicio sea público si deseas permitir el acceso sin autenticación.
Si necesitas descargar o ver la configuración de un servicio existente, usa el siguiente comando para guardar los resultados en un archivo YAML:
gcloud run services describe SERVICE --format export > service.yaml
Desde un archivo YAML de configuración de servicio, modifica cualquier atributo secundario spec.template
como desees para actualizar la configuración de revisión y, luego, implementa la revisión nueva:
gcloud run services replace service.yaml
Configura tu trabajo sin un conector
La salida de VPC directa permite que tu trabajo de Cloud Run envíe tráfico a una red de VPC sin un conector de Acceso a VPC sin servidores.
Puedes configurar la salida de VPC directa con un trabajo a través de la consola de Google Cloud, Google Cloud CLI o YAML.
Consola
Si quieres configurar un nuevo trabajo, haz clic en la pestaña Trabajos y completa la página de configuración de trabajo inicial como desees. Si quieres configurar un trabajo existente, haz clic en el trabajo y, luego, en Editar.
Haz clic en Contenedor, variables y secretos, conexiones y seguridad para expandir la página de propiedades del trabajo.
Haz clic en la pestaña Conexiones.
Haz clic en Conéctate a una VPC para el tráfico saliente.
Haz clic en Enviar tráfico de forma directa a una VPC.
En el campo Red, selecciona la red de VPC a la que deseas enviar tráfico.
En el campo Subred, selecciona la subred desde la que tu trabajo recibe direcciones IP. Puedes ejecutar varios trabajos en la misma subred.
En Enrutamiento del tráfico, selecciona una de las siguientes opciones:
- Enruta solo las solicitudes a IP privadas a la VPC para enviar solo tráfico a direcciones internas a través de la red de VPC.
- Enruta todo el tráfico a la VPC para enviar todo el tráfico saliente a través de la red de VPC.
Opcional: Ingresa los nombres de las etiquetas de red que quieres asociar con tu servicio o tus servicios. Las etiquetas de red se especifican a nivel de revisión. Cada revisión del servicio puede tener diferentes etiquetas de red, como
network-tag-2
.Opcional: Ingresa los nombres de las etiquetas de red que quieres asociar a tu trabajo o trabajos. Para los trabajos, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de trabajo puede tener etiquetas de red diferentes, como
network-tag-2
.Haz clic en Crear o Actualizar.
Para verificar que tu trabajo esté en tu red de VPC, haz clic en el trabajo y, luego, en la pestaña Configuración. Las redes y las subredes se detallan en la tarjeta VPC.
Ahora puedes ejecutar el trabajo de Cloud Run y enviar solicitudes desde el trabajo a cualquier recurso en la red de VPC, como lo permiten las reglas de firewall.
gcloud
Para crear un trabajo de Cloud Run sin un conector de Google Cloud CLI, sigue estos pasos:
Asegúrate de que la API de Compute Engine esté habilitada para tu proyecto:
gcloud services enable compute.googleapis.com
Crea un trabajo de Cloud Run con el siguiente comando:
gcloud run jobs create JOB_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --vpc-egress=EGRESS_SETTING \ --region=REGION
Reemplaza lo siguiente:
- JOB_NAME por el nombre del trabajo de Cloud Run.
- IMAGE_URL por una referencia a la imagen de contenedor, como
us-docker.pkg.dev/cloudrun/container/job:latest
- NETWORK por el nombre de la red de VPC.
-
SUBNET por el nombre de la subred La subred debe ser
/26
o mayor. La salida de VPC directa es compatible con los rangos IPv4 RFC 1918, RFC 6598 y clase E. Puedes implementar o ejecutar varios servicios o trabajos en la misma subred, pero ningún conector existente puede compartir la subred. - Opcional: NETWORK_TAG_NAMES por los nombres de las etiquetas de red que deseas asociar con un trabajo. Para los trabajos, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de trabajo puede tener diferentes etiquetas de red, como
network-tag-2
. - EGRESS_SETTING por un valor de configuración de salida:
all-traffic
: Envía todo el tráfico saliente por medio de la red de VPC.private-ranges-only
: Envía solo el tráfico a direcciones internas por medio de la red de VPC.
- REGION por una región para el trabajo.
Para verificar que el trabajo esté en tu red de VPC, ejecuta el siguiente comando:
gcloud run jobs describe JOB_NAME \ --region=REGION
Reemplaza lo siguiente:
JOB_NAME
por el nombre de tu trabajo.REGION
por la región del trabajo que especificaste en el paso anterior.
El resultado debe contener el nombre de tu red y subred, por ejemplo:
VPC network: Network: default Subnet: default
Ahora puedes ejecutar el trabajo de Cloud Run y enviar solicitudes desde el trabajo a cualquier recurso en la red de VPC, como lo permiten las reglas de firewall.
YAML
Puedes almacenar la especificación de trabajo en un archivo YAML
y, luego, implementarla con gcloud CLI.
Crea un archivo nuevo
job.yaml
con el siguiente contenido:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME annotations: run.googleapis.com/launch-stage: BETA labels: cloud.googleapis.com/location: REGION spec: template: metadata: annotations: run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]' run.googleapis.com/vpc-access-egress: EGRESS_SETTING spec: containers: - image: IMAGE
Reemplaza lo siguiente:
- JOB_NAME por el nombre del trabajo de Cloud Run. Los nombres de trabajos deben tener 49 caracteres o menos, y deben ser únicos por región y proyecto.
- REGION por la región del trabajo de Cloud Run, que debe coincidir con la región de la subred.
- NETWORK por el nombre de la red de VPC.
-
SUBNET por el nombre de la subred La subred debe ser
/26
o mayor. La salida de VPC directa es compatible con los rangos IPv4 RFC 1918, RFC 6598 y clase E. Puedes implementar o ejecutar varios servicios o trabajos en la misma subred, pero ningún conector existente puede compartir la subred. - Opcional: NETWORK_TAG_NAMES por los nombres de las etiquetas de red que deseas asociar con un trabajo. Para los trabajos, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de trabajo puede tener diferentes etiquetas de red, como
network-tag-2
. - EGRESS_SETTING por un valor de configuración de salida:
all-traffic
: Envía todo el tráfico saliente por medio de la red de VPC.private-ranges-only
: Envía solo el tráfico a direcciones internas por medio de la red de VPC.
- IMAGE por la URL de la imagen de contenedor.
Implementa el trabajo nuevo a través de la ejecución del siguiente comando:
gcloud run jobs replace job.yaml
Si necesitas descargar o ver la configuración de un trabajo existente, usa el siguiente comando para guardar los resultados en un archivo YAML:
gcloud run jobs describe JOB --format export > job.yaml
Desde un archivo YAML de configuración de trabajo, modifica cualquier atributo secundario spec.template
como desees para actualizar la configuración de revisión y, luego, vuelve a implementarlo:
gcloud run jobs replace job.yaml
Acceso a recursos VPC
Permite la entrada de infraestructura sin servidores al conector
Las VMs de conector deben poder recibir paquetes del rango de direcciones IP externas de Google Cloud 35.199.224.0/19
. La infraestructura sin servidores de Google usa este rango para garantizar que los servicios de Cloud Run, Cloud Functions y App Engine puedan enviar paquetes al conector.
El Acceso a VPC sin servidores crea una regla de firewall de permiso de entrada que se aplica a las VMs del conector y permite los paquetes de 35.199.224.0/19
cuando el conector está en el mismo proyecto que la red de VPC a la que se orienta. El conector y su red de VPC de destino están en el mismo proyecto cuando cualquier conector se orienta a una red de VPC independiente o cuando este se dirige a una red de VPC compartida y el conector se encuentra en el proyecto host.
Si creas un conector en un proyecto de servicio de VPC compartida, un Administrador de seguridad o propietario del proyecto host de la VPC compartida debe crear una regla de firewall de permiso de entrada aplicable a las VMs del conector que permiten paquetes de 35.199.224.0/19
. El siguiente es un ejemplo de una regla de firewall de VPC de permiso de entrada:
gcloud compute firewall-rules create RULE_NAME \ --action=ALLOW \ --rules=TCP \ --source-ranges=35.199.224.0/19 \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY \ --project=PROJECT_ID
Reemplaza lo siguiente:
- RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo,
allow-vpc-connector-ingress
- VPC_CONNECTOR_NETWORK_TAG: La etiqueta de red del conector universal
vpc-connector
se puede usar para que la regla se aplique a todos los conectores de la red de VPC. Como alternativa, puedes usar una etiqueta de red específica del conector. La etiqueta de red específica tiene el siguiente formato:vpc-connector-
REGION-
CONNECTOR_NAME, en el que REGION es la región de Google Cloud del conector y CONNECTOR_NAME es su nombre. - VPC_NETWORK: es el nombre de la red de VPC a la que se orienta el conector.
- PRIORITY: un número entero entre 0 y 65535. Por ejemplo, 0 establece la prioridad más alta.
- PROJECT_ID: el ID del proyecto que contiene la red de VPC a la que se orienta el conector.
Restringe el acceso de la VM del conector a los recursos de la red de VPC
Puedes restringir el acceso de tu conector a los recursos en la red de VPC de destino mediante las reglas de firewall de VPC o las reglas en las políticas de firewall. Puedes aplicar estas restricciones mediante una de las siguientes estrategias:
- Crea reglas de entrada cuyos objetivos representen los recursos a los que deseas limitar el acceso de la VM del conector y cuyos orígenes representen las VMs del conector.
- Crea reglas de salida cuyos objetivos representen las VMs del conector y cuyos destinos representen los recursos a los que deseas limitar el acceso de la VM del conector.
En los siguientes ejemplos, se ilustra cada estrategia.
Restringe el acceso con reglas de entrada
Elige las etiquetas de red o los rangos de CIDR que sirven para controlar el tráfico de entrada a tu red de VPC:
Etiquetas de red
En los siguientes pasos, se muestra cómo crear reglas de entrada que restrinjan el acceso de un conector a tu red de VPC en función de las etiquetas de red del conector.
Asegúrate de tener los permisos necesarios para insertar reglas de firewall. Debes contar con una de las siguientes funciones de Identity and Access Management (IAM):
- Función de administrador de seguridad de Compute
- Función de IAM personalizada con el permiso
compute.firewalls.create
habilitado
Deniega el tráfico del conector en toda tu red de VPC.
Crea una regla de firewall de entrada con una prioridad inferior a 1,000 en la red de VPC para denegar la entrada de la etiqueta de red del conector. Esto anula la regla de firewall implícita que crea el acceso a VPC sin servidores en la red de VPC de forma predeterminada.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
Reemplaza lo siguiente:
RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo,
deny-vpc-connector
PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son
tcp
oudp
. Por ejemplo,tcp:80,udp
permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marcaallow
.Por razones de seguridad y validación, también puedes configurar reglas de denegación para bloquear el tráfico de los siguientes protocolos no compatibles:
ah
,all
,esp
,icmp
,ipip
ysctp
.VPC_CONNECTOR_NETWORK_TAG: Es la etiqueta de red del conector universal si quieres restringir el acceso a todos los conectores (incluidos los que se creen en el futuro) o la etiqueta de red única si deseas restringir el acceso a un conector específico.
- Etiqueta de red universal:
vpc-connector
Etiqueta de red única:
vpc-connector-REGION-CONNECTOR_NAME
Reemplaza lo siguiente:
- REGION: Es la región del conector que quieres restringir.
- CONNECTOR_NAME: Es el nombre del conector que quieres restringir.
Para obtener más información sobre las etiquetas de red del conector, consulta Etiquetas de red.
- Etiqueta de red universal:
VPC_NETWORK es el nombre de tu red de VPC.
PRIORITY: un número entero entre 0 y 65535. Por ejemplo, 0 establece la prioridad más alta.
Permite el tráfico del conector al recurso que debe recibir tráfico del conector.
Usa las marcas
allow
ytarget-tags
para crear una regla de firewall de entrada orientada al recurso en tu red de VPC a la que deseas que acceda el conector de VPC. Establece la prioridad para que esta regla sea un valor inferior a la prioridad de la regla que estableciste en el paso anterior.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
Reemplaza lo siguiente:
RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo,
allow-vpc-connector-for-select-resources
PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son
tcp
oudp
. Por ejemplo,tcp:80,udp
permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marcaallow
.VPC_CONNECTOR_NETWORK_TAG: Es la etiqueta de red del conector universal si quieres restringir el acceso a todos los conectores (incluidos los que se creen en el futuro) o la etiqueta de red única si deseas restringir el acceso a un conector específico. Debe coincidir con la etiqueta de red que especificaste en el paso anterior.
- Etiqueta de red universal:
vpc-connector
Etiqueta de red única:
vpc-connector-REGION-CONNECTOR_NAME
Reemplaza lo siguiente:
- REGION: Es la región del conector que quieres restringir.
- CONNECTOR_NAME: Es el nombre del conector que quieres restringir.
Para obtener más información sobre las etiquetas de red del conector, consulta Etiquetas de red.
- Etiqueta de red universal:
VPC_NETWORK es el nombre de tu red de VPC.
RESOURCE_TAG: la etiqueta de red para el recurso de VPC al que deseas que acceda tu conector de VPC.
PRIORITY: un número entero inferior a la prioridad que estableciste en el paso anterior. Por ejemplo, si estableces la prioridad para la regla que creaste en el paso anterior en 990, prueba con 980.
A fin de obtener más información sobre las marcas obligatorias y opcionales para la creación de reglas de firewall, consulta la documentación de gcloud compute firewall-rules create
.
Rango de CIDR
En los siguientes pasos, se muestra cómo crear reglas de entrada que restrinjan el acceso de un conector a tu red de VPC en función del rango de CIDR del conector.
Asegúrate de tener los permisos necesarios para insertar reglas de firewall. Debes contar con una de las siguientes funciones de Identity and Access Management (IAM):
- Función de administrador de seguridad de Compute
- Función de IAM personalizada con el permiso
compute.firewalls.create
habilitado
Deniega el tráfico del conector en toda tu red de VPC.
Crea una regla de firewall de entrada con una prioridad inferior a 1,000 en tu red de VPC para denegar la entrada desde el rango de CIDR del conector. Esto anula la regla de firewall implícita que crea el acceso a VPC sin servidores en la red de VPC de forma predeterminada.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
Reemplaza lo siguiente:
RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo,
deny-vpc-connector
PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son
tcp
oudp
. Por ejemplo,tcp:80,udp
permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marcaallow
.Por razones de seguridad y validación, también puedes configurar reglas de denegación para bloquear el tráfico de los siguientes protocolos no compatibles:
ah
,all
,esp
,icmp
,ipip
ysctp
.VPC_CONNECTOR_CIDR_RANGE: El rango de CIDR del conector cuyo acceso estás restringiendo
VPC_NETWORK es el nombre de tu red de VPC.
PRIORITY: un número entero entre 0 y 65535. Por ejemplo, 0 establece la prioridad más alta.
Permite el tráfico del conector al recurso que debe recibir tráfico del conector.
Usa las marcas
allow
ytarget-tags
para crear una regla de firewall de entrada orientada al recurso en tu red de VPC a la que deseas que acceda el conector de VPC. Establece la prioridad para que esta regla sea un valor inferior a la prioridad de la regla que estableciste en el paso anterior.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
Reemplaza lo siguiente:
RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo,
allow-vpc-connector-for-select-resources
PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son
tcp
oudp
. Por ejemplo,tcp:80,udp
permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marcaallow
.VPC_CONNECTOR_CIDR_RANGE: El rango de CIDR del conector cuyo acceso estás restringiendo
VPC_NETWORK es el nombre de tu red de VPC.
RESOURCE_TAG: la etiqueta de red para el recurso de VPC al que deseas que acceda tu conector de VPC.
PRIORITY: un número entero inferior a la prioridad que estableciste en el paso anterior. Por ejemplo, si estableces la prioridad para la regla que creaste en el paso anterior en 990, prueba con 980.
A fin de obtener más información sobre las marcas obligatorias y opcionales para la creación de reglas de firewall, consulta la documentación de gcloud compute firewall-rules create
.
Restringe el acceso con reglas de salida
En los siguientes pasos, se muestra cómo crear reglas de salida para restringir el acceso al conector.
Asegúrate de tener los permisos necesarios para insertar reglas de firewall. Debes contar con una de las siguientes funciones de Identity and Access Management (IAM):
- Función de administrador de seguridad de Compute
- Función de IAM personalizada con el permiso
compute.firewalls.create
habilitado
Rechaza el tráfico de salida proveniente de tu conector.
Crea una regla de firewall de salida en tu conector de acceso a VPC sin servidores para evitar que envíe tráfico de salida, con la excepción de las respuestas establecidas, a cualquier destino.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --direction=EGRESS \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --network=VPC_NETWORK \ --priority=PRIORITY
Reemplaza lo siguiente:
RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo,
deny-vpc-connector
PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son
tcp
oudp
. Por ejemplo,tcp:80,udp
permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marcaallow
.Por razones de seguridad y validación, también puedes configurar reglas de denegación para bloquear el tráfico de los siguientes protocolos no compatibles:
ah
,all
,esp
,icmp
,ipip
ysctp
.VPC_CONNECTOR_NETWORK_TAG: Es la etiqueta de red del conector de VPC universal si deseas que la regla se aplique para todos los conectores de VPC existentes y futuros. O bien, es la etiqueta de red del conector de VPC única si deseas controlar un conector específico.
VPC_NETWORK es el nombre de tu red de VPC.
PRIORITY: un número entero entre 0 y 65535. Por ejemplo, 0 establece la prioridad más alta.
Permite el tráfico de salida cuando el destino se encuentra en el rango CIDR al que deseas que acceda tu conector.
Usa las marcas
allow
ydestination-ranges
a fin de crear una regla de firewall que permita el tráfico de salida desde el conector para un rango específico de destinos. Establece el rango de destinos en el rango de CIDR del recurso en tu red de VPC a la que deseas que tu conector pueda acceder. Establece la prioridad para que esta regla sea un valor inferior a la prioridad de la regla que estableciste en el paso anterior.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --destination-ranges=RESOURCE_CIDR_RANGE \ --direction=EGRESS \ --network=VPC_NETWORK \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --priority=PRIORITY
Reemplaza lo siguiente:
RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo,
allow-vpc-connector-for-select-resources
PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son
tcp
oudp
. Por ejemplo,tcp:80,udp
permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marcaallow
.RESOURCE_CIDR_RANGE: El rango de CIDR del conector cuyo acceso estás restringiendo
VPC_NETWORK es el nombre de tu red de VPC.
VPC_CONNECTOR_NETWORK_TAG: Es la etiqueta de red del conector de VPC universal si deseas que la regla se aplique para todos los conectores de VPC existentes y futuros. O bien, es la etiqueta de red del conector de VPC única si deseas controlar un conector específico. Si usaste la etiqueta de red única en el paso anterior, usa la etiqueta de red única.
PRIORITY: un número entero inferior a la prioridad que estableciste en el paso anterior. Por ejemplo, si estableces la prioridad para la regla que creaste en el paso anterior en 990, prueba con 980.
A fin de obtener más información sobre las marcas obligatorias y opcionales para la creación de reglas de firewall, consulta la documentación de gcloud compute firewall-rules create
.
Actualiza un conector
Puedes actualizar y supervisar los siguientes atributos de tu conector a través de la consola de Google Cloud, Google Cloud CLI o la API:
- Tipo de máquina (instancia)
- Cantidad mínima y máxima de instancias
- Capacidad de procesamiento, cantidad de instancias y uso de CPU recientes
Actualizar tipo de máquina
Consola
Dirígete a la página de descripción general de acceso a VPC sin servidores.
Selecciona el conector que quieres editar y haz clic en Editar.
En la lista Tipo de instancia, selecciona el tipo de máquina (instancia) que prefieras. Para obtener información sobre los tipos de máquinas disponibles, consulta la documentación sobre Capacidad de procesamiento y escalamiento.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para actualizar el tipo de máquina del conector, ejecuta el siguiente comando en tu terminal:
gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
Reemplaza lo siguiente:CONNECTOR_NAME
: el nombre del conectorREGION
: el nombre de la región del conectorMACHINE_TYPE
: el tipo de máquina que prefieras. Para obtener información sobre los tipos de máquinas disponibles, consulta la documentación sobre Capacidad de procesamiento y escalamiento.
Disminuye la cantidad mínima y máxima de instancias
Para disminuir la cantidad mínima y máxima de instancias, debes hacer lo siguiente:
- Crea un conector nuevo con tus valores preferidos.
- Actualiza tu servicio o función para usar el conector nuevo.
- Borra el conector anterior cuando hayas movido su tráfico.
Para obtener más información, consulta Crea un conector de acceso a VPC sin servidores.
Aumenta la cantidad mínima y máxima de instancias
Consola
Dirígete a la página de descripción general de acceso a VPC sin servidores.
Selecciona el conector que quieres editar y haz clic en Editar.
En el campo Cantidad mínima de instancias, selecciona la cantidad mínima de instancias que prefieras.
El valor más pequeño posible para este campo es el valor actual. El valor más alto posible para este campo es el valor actual en el campo Cantidad máxima de instancias menos 1. Por ejemplo, si el valor en el campo Cantidad máxima de instancias es 8, el valor más alto posible para el campo Cantidad mínima de instancias es 7.
En el campo Cantidad máxima de instancias, selecciona la cantidad máxima de instancias que prefieras.
El valor más pequeño posible para este campo es el valor actual. El valor más alto posible para este campo es 10.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para aumentar la cantidad mínima o máxima de instancias para el conector, ejecuta el siguiente comando en tu terminal:
gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
Reemplaza lo siguiente:
CONNECTOR_NAME
: el nombre del conectorREGION
: el nombre de la región del conectorMIN_INSTANCES
: la cantidad mínima de instancias que prefieras.- El valor más pequeño posible para este campo es el valor actual de
min_instances
. Para buscar el valor actual, consulta Busca los valores de los atributos actuales. - El valor más alto posible para este campo es el valor
max_instances
actual menos 1, porquemin_instances
debe ser menor quemax_instances
. Por ejemplo, simax_instances
es 8, el valor más alto posible para este campo es 7. Si el conector usa el valor predeterminadomax-instances
de 10, el valor más alto posible de este campo es 9. Para buscar el valor demax-instances
, consulta Busca los valores de los atributos actuales.
- El valor más pequeño posible para este campo es el valor actual de
MAX_INSTANCES
:- El valor más pequeño posible para este campo es el valor actual de
max_instances
. Para buscar el valor actual, consulta Busca los valores de los atributos actuales. - El valor más alto posible para este campo es 10.
Si solo deseas aumentar la cantidad mínima de instancias, pero no la máxima, debes especificar la cantidad máxima de instancias. Por el contrario, si solo deseas actualizar la cantidad máxima de instancias, pero no la mínima, debes especificar la cantidad mínima de instancias. Para mantener la cantidad mínima o máxima de instancias en el valor actual, especifica su valor actual. Para buscar el valor actual, consulta Busca los valores de los atributos actuales.
- El valor más pequeño posible para este campo es el valor actual de
Busca los valores de los atributos actuales
Para buscar los valores de los atributos actuales de tu conector, ejecuta lo siguiente en tu terminal:
gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECTReemplaza lo siguiente:
CONNECTOR_NAME
: el nombre del conectorREGION
: el nombre de la región del conectorPROJECT
: el nombre de tu proyecto de Google Cloud
Supervisa el uso del conector
La supervisión del uso en el tiempo puede ayudarte a determinar cuándo ajustar la configuración de un conector. Por ejemplo, si el uso de CPU aumenta, puedes intentar aumentar la cantidad máxima de instancias para obtener mejores resultados. O si alcanzas el máximo de la capacidad de procesamiento, puedes decidir cambiar a un tipo de máquina más grande.
Para mostrar gráficos de la capacidad de procesamiento del conector, la cantidad de instancias y las métricas de uso de CPU con el tiempo a través de la consola de Google Cloud, haz lo siguiente:
Dirígete a la página de descripción general de Acceso a VPC sin servidores.
Haz clic en el nombre del conector que quieres supervisar.
Selecciona la cantidad de días que deseas mostrar entre 1 y 90 días.
En el gráfico Capacidad de procesamiento, coloca el cursor sobre el gráfico para ver la capacidad de procesamiento reciente del conector.
En el gráfico Cantidad de instancias, coloca el cursor sobre el gráfico para ver la cantidad de instancias que el conector usó recientemente.
En el gráfico Uso de CPU, coloca el cursor sobre el gráfico para ver el uso de CPU reciente del conector. En el gráfico, se muestra el uso de CPU distribuido entre las instancias para los percentiles 50, 95 y 99.
Borra un conector
Antes de borrar un conector, asegúrate de que ningún servicio o trabajo siga conectado a él.
Para los usuarios de VPC compartida que configuraron conectores en el proyecto host de la VPC compartida (ya no se recomienda), puedes usar el comando gcloud compute networks vpc-access connectors describe
para enumerar los proyectos, que son servicios o trabajos que usan un conector determinado.
Para borrar un conector, usa la consola de Google Cloud o la CLI de Google Cloud:
Consola
Ve a la página de descripción general de Acceso a VPC sin servidores en la consola de Google Cloud:
Selecciona el conector que quieres borrar.
Haz clic en Borrar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Usa el siguiente comando de
gcloud
para borrar un conector:gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION
Reemplaza lo siguiente:
- CONNECTOR_NAME es el nombre del conector que quieres borrar.
- REGION es la región donde se encuentra el conector.
Soluciona problemas
Permisos de las cuentas de servicio
Para realizar operaciones en el proyecto de Google Cloud, el servicio de Acceso a VPC sin servidores usa la cuenta de servicio del agente de servicio de Acceso a VPC sin servidores. La dirección de correo electrónico de esta cuenta de servicio tiene el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com
De forma predeterminada, esta cuenta de servicio tiene la función de agente de servicio de Acceso a VPC sin servidores (roles/vpcaccess.serviceAgent
). Las operaciones del Acceso a VPC sin servidores pueden fallar si cambias los permisos de esta cuenta.
Errores
Error de que la cuenta de servicio necesita el rol de agente de servicio
Si usas la restricción de la política de la organización Restringir el uso de servicios del recurso para bloquear Cloud Deployment Manager (deploymentmanager.googleapis.com
), es posible que veas el siguiente mensaje de error:
Serverless VPC Access service account (service-<PROJECT_NUMBER>@gcp-sa-vpcaccess.iam.gserviceaccount.com) needs Serverless VPC Access Service Agent role in the project.
Configura la política de la organización para quitar Deployment Manager de la lista de bloqueo o agregarla a la lista de entidades permitidas.
Error de creación del conector
Si la creación de un conector produce un error, prueba lo siguiente:
- Especifica un rango de IP internas de RFC 1918 que no se superponga con ninguna reserva de dirección IP existente en la red de VPC.
- Otorga al proyecto permiso para usar las imágenes de VM de Compute Engine del proyecto con el ID
serverless-vpc-access-images
. Para obtener más información sobre cómo actualizar las políticas de la organización según corresponda, consulta Configura restricciones de acceso a imágenes.
No se puede acceder a los recursos
Si especificaste un conector, pero aún no puedes acceder a los recursos de la red de VPC, asegúrate de que no haya reglas de firewall en la red de VPC que tengan una prioridad inferior a 1,000 que rechacen la entrada desde el rango de direcciones IP del conector.
Si configuras un conector en un proyecto de servicio de VPC compartida, asegúrate de que las reglas de firewall permitan la entrada de la infraestructura sin servidores al conector.
Error de conexión rechazada
Si recibes errores connection refused
que degradan el rendimiento de la red, es posible que las conexiones crezcan sin límite en las invocaciones de la aplicación sin servidores. Para limitar la cantidad máxima de conexiones de cada instancia, usa una biblioteca cliente que admita grupos de conexiones. Para obtener ejemplos detallados sobre cómo usar los grupos de conexiones, consulta Administra conexiones de bases de datos.
Error de recurso no encontrado
Cuando borres una red de VPC o una regla de firewall, es posible que veas un mensaje similar al siguiente: The resource
"aet-uscentral1-subnet--1-egrfw" was not found.
Para obtener información sobre este error y su solución, consulta Error de recurso no encontrado en la documentación de reglas de firewall de VPC.
Próximos pasos
- Supervisa la actividad del administrador con los registros de auditoría de Acceso a VPC sin servidores.
- Protege los recursos y los datos mediante la creación de un perímetro de servicio con los Controles del servicio de VPC.
- Obtén más información sobre las funciones de la Identity and Access Management (IAM) asociadas con el Acceso a VPC sin servidores. Consulta Funciones de Acceso a VPC sin servidores en la documentación de IAM para obtener una lista de permisos asociados con cada función.
- Obtén más información para conectarte a Memorystore desde el siguiente vínculo: