Integrar el backend de tu app

En esta sección, se describen los pasos para integrar el backend de tu app en Cloud Marketplace Con esta integración, puedes administrar las contraseñas cuentas y derechos, que indican que los usuarios compraron tu producto en Cloud Marketplace Si eliges un modelo de precios basado en el uso, también integras tu backend para informar el uso a Google.

Puedes ver un ejemplo de integración de una app básica en Cloud Marketplace y una del código de muestra, consulta la codelab para integrar un servicio administrado.

Para ver el código de muestra que se usa en el codelab, consulta el repositorio de GitHub.

Antes de comenzar

  • Configura el acceso a la API de Partner Procurement de Cloud Commerce, como se describe en Integra tu aplicación: configuración.
  • Si eliges un esquema de precios basado en el uso, verifica que tu Ingeniero socio haya creado un servicio en el que puedas informar el uso. Este servicio se muestra en el campo Dominio de servicio de la sección de integración de facturación de Producer Portal.

Crea una cuenta de servicio

Para integrar tu producto a Google Cloud, debes crear una cuenta de servicio en el proyecto que usas para tu producto. Tu app usa este de servicio para interactuar con las APIs de Cloud Marketplace Partner y obtener información sobre las campañas compras.

Usa Producer Portal para crear y vincular tus cuentas de servicio. Si quieres conocer los pasos detallados para crear una cuenta de servicio, consulta Crea y administra cuentas de servicio.

Usa Producer Portal para integrar el backend de tu app

Para acceder a toda la información que necesitas para integrar el backend de tu app con Cloud Marketplace desde una sola ubicación, como tus cuentas de servicio y tu plan nivel de identificadores, puedes usar la sección Integración de facturación de Producer Portal

El vínculo directo a Producer Portal es el siguiente:

https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID

Para acceder a la sección Integración de facturación, haz lo siguiente:

  1. En la lista de productos, haz clic en el nombre del producto.

  2. En la página Descripción general de tu producto, ve a la Integración técnica. y haz clic en Integración de facturación.

Crea y vincula cuentas de servicio en Producer Portal

Puedes usar la sección Integración de facturación en el portal productor para crear y vincular las cuentas de servicio que usas para interactuar con las APIs de Partner y obtener información sobre las compras de los usuarios.

El vínculo directo a Producer Portal es el siguiente:

https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID

En los pasos siguientes, puedes usar cuentas de servicio existentes o crear cuentas de servicio nuevas. Si creas una cuenta de servicio nueva, especifica el nombre de la cuenta de servicio en el campo Nombre de la cuenta de servicio en el campo ID de cuenta de servicio y, luego, haz clic en Crear y vincular.

Para vincular tus cuentas de servicio, sigue estos pasos:

  1. En la lista de productos, haz clic en el nombre del producto.

  2. En la página Descripción general de tu producto, ve a Integración técnica. y haz clic en Integración de facturación.

  3. Para realizar la integración en la API de Partner Procurement, en Vincular un servicio para llamar a la API de Procurement, haz clic en Agregar cuenta de servicio. Puedes ingresar una cuenta de servicio existente en el campo o crear una cuenta de servicio nueva.

  4. Para realizar la integración con Pub/Sub, en Vincula una cuenta de servicio a suscribirte al tema de Pub/Sub, haz clic en Agregar cuenta de servicio. Puedes ingresar una cuenta de servicio existente en el campo o crear una cuenta de servicio nueva.

  5. Para realizar la integración con la API de Service Control, en Agregar roles/servicemanagement.serviceController a una cuenta de servicio, haz clic en Agrega una cuenta de servicio. Puedes ingresar una cuenta de servicio existente en el campo o crear una cuenta de servicio nueva.

Tareas de cuenta de usuario

En un nivel alto, la aplicación debe controlar la siguiente situación:

  1. Un usuario realiza una solicitud o un cambio en Cloud Marketplace, como una firma para tu producto.

  2. Cloud Marketplace envía una notificación a tu app a través de Pub/Sub, que contiene información sobre la solicitud en el campo eventType. Por ejemplo, si un usuario cambia su autorización, la eventType es ENTITLEMENT_PLAN_CHANGED.

    Consulta la lista completa de eventType posibles.

  3. Para aprobar la solicitud, tu aplicación envía una solicitud HTTP POST a la API de Partner Procurement.

En las secciones siguientes, se describen los tipos de solicitudes que pueden realizar los usuarios y que debe hacer la aplicación para controlar las solicitudes.

Para las llamadas a la API que se describen en esta sección, usa el siguiente extremo:

https://cloudcommerceprocurement.googleapis.com/

Crea una cuenta para un usuario nuevo

Cuando un usuario compra tu producto por primera vez, Cloud Marketplace crea un recurso de cuenta que realiza un seguimiento de la relación del usuario contigo. Cuando se crea el recurso de cuenta, recibes una notificación a través del tema de Pub/Sub que se creó para ti. El mensaje de Pub/Sub tiene el siguiente formato:

{
  "eventId": "...",
  "providerId": "YOUR_PARTNER_ID",
  "account": {
    "id": "USER_ACCOUNT_ID",
    "updateTime": "..."
  }
}

En el ejemplo anterior, USER_ACCOUNT_ID es el ID de la cuenta creado por Cloud Marketplace y YOUR_PARTNER_ID es un ID que se te asigna cuando tu socio Engineer habilita el acceso a la API de Partner Procurement.

Al mismo tiempo, se dirige al usuario a la página de registro, en la que crea una cuenta en tu sistema. Para obtener información sobre la creación de la página de registro, consulta Integra el frontend de la aplicación.

Aprobar la cuenta de un usuario

Después de que el usuario se registró con éxito, la aplicación debe llamar a la API de Partner para indicar que la cuenta se aprobó. Las cuentas se crean con el estado ACCOUNT_ACTIVE, pero tienen una entrada PENDING en el campo approvals llamada signup, lo que indica que el usuario aún no se registró. Para aprobar la cuenta después de que el usuario se registró, usa la siguiente solicitud HTTP POST:

POST v1/providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID:approve {'approvalName': 'signup'}

Cómo verificar el estado de la cuenta de un usuario

Para verificar el estado de una cuenta vinculada, usa la siguiente solicitud HTTP GET:

GET v1/providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID

La respuesta está en el siguiente formato:

{
  "name": "providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID",
  "provider": "acme-services",
  "state": "ACCOUNT_ACTIVE",
  "approvals": [{
    "name": "signup",
    "state": "APPROVED",
    "updateTime": "...",
  }],
  "updateTime": "...",
  "createTime": "..."
}

Para obtener una lista de posibles estados de cuenta, consulta la referencia de la API de providers.accounts.

Cómo administrar derechos

Cuando los clientes eligen un plan de precios para tu software, Google crea derecho, que indica que el cliente compró el producto en Cloud Marketplace En esta sección, se explica cómo crear y administrar autorizaciones para tus clientes con la API de Partner Procurement.

Para obtener más información sobre la administración de derechos, visita documentación de referencia.

Si habilitaste varios pedidos del mismo producto, la API de Partner Procurement puede enviar múltiples eventos con el tipo de evento ENTITLEMENT_ACTIVE para el mismo ACCOUNT_ID, cada uno con un ENTITLEMENT_ID único para ofertas diferentes. En este caso, asegúrate de modificar la lógica de control de eventos para tu aplicación de modo que responda a ENTITLEMENT_ID en lugar de a ACCOUNT_ID o PRODUCT_ID.

También debes realizar cambios en tu integración de frontend para controlar el nuevo objeto orders que se envía en la carga útil de JWT. Para obtener más información, consulta Integrar el frontend de tu app

Si quieres obtener más información para habilitar varios pedidos del mismo producto, consulta Cómo activar varios pedidos del mismo producto.

Cómo aprobar o rechazar un derecho

Cuando un cliente elige un plan de precios, Cloud Marketplace crea una autorización y envía el siguiente mensaje de Pub/Sub a tu app:

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_CREATION_REQUESTED",
  "providerId": "YOUR_PARTNER_ID",
  "entitlement": {
    "id": "ENTITLEMENT_ID",
    "updateTime": "...",
    "newOfferDuration": "P2Y3M",   // Contract duration for offer-based entitlements
  },
}

En el ejemplo anterior, ENTITLEMENT_ID es un ID creado por Cloud Marketplace. Si la oferta tiene una duración específica, esta se proporciona en años y meses. Si la oferta tiene una fecha de finalización especificada, en lugar de una duración, el campo que indica la duración está vacío.

En tu sistema, actualiza la cuenta del usuario para reflejar que compró un plan. Luego, para aprobar la autorización, realiza una solicitud HTTP POST a la API de Partner Procurement y envía el ENTITLEMENT_ID que aprobaste:

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approve

Para rechazar una autorización, usa el método reject en tu solicitud HTTP POST:

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:reject

Para justificar el rechazo del derecho en el cuerpo de la solicitud, usa la con el siguiente formato:

{
  "reason": "..."
}

Cómo cambiar un plan de derechos

De acuerdo con la manera en que configures los planes de precios, los clientes podrían cambiar sus planes. Si un cliente selecciona un plan de precios nuevo, recibirás un mensaje de Pub/Sub en el siguiente formato:

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_PLAN_CHANGE_REQUESTED",
  "providerId": "YOUR_PARTNER_ID",
  "entitlement": {
    "id": "ENTITLEMENT_ID",
    "newPlan": "ultimate",   // New plan
    "updateTime": "...",
    "newOfferDuration": "P2Y3M",   // Contract duration for the new offer, for offer-based entitlements
  },
}

Si la oferta tiene una duración específica, esta se proporciona en años y meses. Si la oferta tiene una fecha de finalización especificada, en lugar de una duración, el campo que indica la duración está vacío.

Para aprobar el cambio de plan, realiza la siguiente solicitud HTTP POST a la API de socio:

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approvePlanChange

El cuerpo de la solicitud debe contar con el plan que se aprueba:

{
  "pendingPlanName": PLAN_NAME
}

Después de que se apruebe el cambio, recibirás otro mensaje de Pub/Sub cuando entre en vigencia. En el mensaje, el campo eventType cambia a ENTITLEMENT_PLAN_CHANGED. Para verificar el estado de un plan, realiza la siguiente solicitud HTTP GET a la API de Partner Procurement.

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

La respuesta es similar a la siguiente, el campo state indica si el plan nuevo está activo o si el cambio del plan todavía está pendiente.

{
  "name": "providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID",
  "provider": "YOUR_PARTNER_ID",
  "account": "USER_ACCOUNT_ID",
  "product": "example-server",
  "plan": "pro",
  "state": "ENTITLEMENT_PENDING_PLAN_CHANGE",
  "newPendingPlan": "ultimate",
  ...
}

Cancela un derecho

Si un usuario decide cancelar la autorización, recibirás una notificación de Pub/Sub. De igual manera que cuando se cambia un plan, la cancelación se efectuará al final del ciclo de facturación actual.

La notificación está en el siguiente formato:

{
  "eventId": "...",
  // If the entitlement is canceled at the end of the month,
  // eventType is ENTITLEMENT_PENDING_CANCELLATION
  "eventType": "ENTITLEMENT_CANCELLED",
  "providerId": "YOUR_PARTNER_ID",
  "entitlement": {
    "id": "ENTITLEMENT_ID",
    "updateTime": "..."
  },
}

Borra una autorización

Si un usuario realiza una solicitud directa a Atención al cliente de Google o si abandona la plataforma de Google, su los derechos se cancelan de inmediato y sus derechos y cuentas se borran después de un período de gracia de 60 días. Para proteger la privacidad del usuario, debes borrar sus datos de los servidores cuando recibes la notificación.

Cuando se cancelan las autorizaciones y se borra la cuenta, recibirás notificaciones similares a las que se muestran a continuación:

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_DELETED",
  "providerId": "YOUR_PARTNER_ID",
  "entitlement": {
    "id": "ENTITLEMENT_ID",
    "updateTime": "...",
  },
}
{
  "eventId": "...",
  "eventType": "ACCOUNT_DELETED",
  "providerId": "YOUR_PARTNER_ID",
  "account": {
    "id": "USER_ACCOUNT_ID",
    "updateTime": "...",
  },
}

Lista de tipos de eventos para tareas de la cuenta

A continuación, se muestra una lista de los eventType que tu app podría recibir en mensajes de Pub/Sub:

eventTypeDescripción
ACCOUNT_CREATION_REQUESTEDObsoleta
ACCOUNT_ACTIVEIndica que se creó la cuenta del cliente.
ACCOUNT_DELETEDIndica que la cuenta del cliente se borró de los sistemas de Google Cloud.
ENTITLEMENT_CREATION_REQUESTEDIndica que un cliente seleccionó uno de sus planes de precios.
ENTITLEMENT_OFFER_ACCEPTEDIndica que un cliente aceptó una oferta. Incluye la hora de inicio programada de la oferta, si la hay. Este evento se envía para las ofertas privadas y las ofertas estándar (compras públicas).
ENTITLEMENT_ACTIVEIndica que el plan elegido de un cliente ahora está activo.
ENTITLEMENT_PLAN_CHANGE_REQUESTEDIndica que un cliente eligió un plan nuevo.
ENTITLEMENT_PLAN_CHANGEDIndica que el cambio de plan del cliente está aprobado y que los cambios entraron en vigencia.
ENTITLEMENT_PLAN_CHANGE_CANCELLEDIndica que se canceló el cambio de plan de un cliente, ya sea porque no se aprobó o porque cambió al plan anterior.
ENTITLEMENT_PENDING_CANCELLATIONIndica que un cliente canceló su plan y la cancelación está pendiente hasta el final del ciclo de facturación.
ENTITLEMENT_CANCELLATION_REVERTEDIndica que se revocó la cancelación pendiente de un cliente. Ten en cuenta que las cancelaciones no se pueden revertir después de su finalización.
ENTITLEMENT_CANCELLEDIndica que se canceló el plan de un cliente.
ENTITLEMENT_CANCELLINGIndica que el plan del cliente está en proceso de cancelación.
ENTITLEMENT_RENEWEDIndica que se renovó el derecho de un cliente por otro período. No es necesario que realices ninguna acción para completar la renovación.
ENTITLEMENT_OFFER_ENDEDIndica que finalizó la oferta privada de un cliente. Si se canceló el derecho del cliente, se activa un evento ENTITLEMENT_CANCELLED independiente. Si el derecho del cliente sigue activo, su plan volverá a tener el precio sin descuento.
ENTITLEMENT_DELETEDIndica que se borró la información sobre el plan de un cliente de Cloud Marketplace.

Informa el uso a Google (para precios basados en el uso)

Si eliges precios basados en el uso para tu producto, debes informar el uso de la aplicación a la API de Service Control.

Para obtener más información sobre Control de servicios, consulta la guía de introducción.

Te recomendamos que uses Producer Portal para crear una cuenta de servicio en Producer Portal para usarla con Service Control.

Cuando se crea una autorización, debes llamar a la API de Partner Procurement para recuperar un usageReportingId mediante la siguiente solicitud HTTP GET:

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

La respuesta contiene información sobre la autorización, en el siguiente formato:

{
  "name": "providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID",
  "provider": "YOUR_PARTNER_ID",
  "account": "USER_ACCOUNT_ID",
  "product": "example-messaging-service",
  "plan": "pro",
  "usageReportingId": "USAGE_REPORTING_ID",
  "state": "ENTITLEMENT_ACTIVATION_REQUESTED",
  "updateTime": "...",
  "createTime": "..."
}

Para informar el uso, primero debes realizar una llamada a la API de services.check a fin de verificar la configuración del servicio. En la respuesta, si el objeto checkErrors[] está vacío, realiza una llamada a la API de services.report para enviar el informe de uso.

El informe de uso es una API de Service Control Operation. El siguiente es un ejemplo de un informe de uso de example-messaging-service que envía información sobre el almacenamiento que usa el cliente:

POST https://servicecontrol.googleapis.com/v1/services/example-messaging-service.gcpmarketplace.example.com:report
{
  "operations": [{
    "operationId": "1234-example-operation-id-4567",
    "operationName": "Hourly Usage Report",
    "consumerId": "USAGE_REPORTING_ID",
    "startTime": "2019-02-06T12:00:00Z",
    "endTime": "2019-02-06T13:00:00Z",
    "metricValueSets": [{
      "metricName": "example-messaging-service/UsageInGiB",
      "metricValues": [{ "int64Value": "150" }]
    }],
    "userLabels": {
      "cloudmarketplace.googleapis.com/resource_name": "order_history_cache",
      "cloudmarketplace.googleapis.com/container_name": "storefront_prod",
      "environment": "prod",
      "region": "us-west2"
    }
  }]
}

Donde:

  • operationId es una string única que genera la instancia de servicio. Tú debes usar el mismo operationId para tu check y report las operaciones.

  • consumerId es el mismo que el usageReportingId del derecho.

  • startTime y endTime representan las horas de inicio y finalización del total para la operación report. En la mayoría de los casos, el startTime de una operación report debe tener el mismo valor que el endTime de la operación report anterior.

    Si se inhabilita el servicio de un cliente antes del startTime de una operación report, la llamada a la API de services.check envía un error en el objeto checkErrors[] y no se cobra al cliente por el intervalo correspondiente.

  • MetricValueSet contiene uno o más intervalos de tiempo intermedios y los valores de métrica actualizados correspondientes. Define las métricas de tu servicio cuando eliges y envías tu modelo de precios.

    Puedes ver los identificadores de tus métricas y hacer referencia a ellos en la Sección Integración técnica de Producer Portal.

  • userLabels son etiquetas creadas por el usuario, definidas como cadenas de par clave-valor que siguen específico requisitos de sintaxis. Estas etiquetas se reenvían a Facturación de Cloud administración de costos para la atribución. Para recomendaciones convenciones de etiquetado, consulta Prácticas recomendadas para el etiquetado de uso.

Si la API services.check muestra uno o más de los siguientes errores, te recomendamos que dejes de proporcionar tu servicio al cliente hasta que se resuelva el error:

  • SERVICE_NOT_ACTIVATED
  • BILLING_DISABLED
  • PROJECT_DELETED

Prácticas recomendadas para los informes de uso

Cuando informas el uso, por ejemplo, las operaciones del usuario o el uso de recursos, ten en cuenta la siguiente información para garantizar la correcta facturación de tus clientes.

Cómo informar el uso en el momento en que se produce

Los retrasos en los informes de uso degradan de administración de costos y es posible que no se reflejen en los informes de los socios. Los proveedores de servicios deben informar el uso en el plazo de una hora desde que se genera el uso.

Si necesitas más tiempo para informar el uso, comunícate con tu ingeniero asociado.

Informa sobre el uso después de que se cancela un derecho

Si tienes un uso no informado después de que se cancela un derecho, aún puedes informarlo con una marca de tiempo que refleje la hora real en la que el uso de la app. La marca de tiempo debe ser anterior a la cancelación del derecho. Informa este uso en un plazo de una hora. No debes informar ningún uso como uso nuevo después de que finalice el derecho.

Informes de uso al final del mes

El período de informes de una hora se aplica al plazo límite de corte de fin de mes. Para garantizar que el uso se informe en la factura del mes actual, informa el uso antes de la 1 a.m., hora del Pacífico de EE.UU. y Canadá (UTC-7 o UTC-8) al día siguiente.

Por ejemplo, para una factura de septiembre, informa el uso antes del 1 de octubre a la 1 a.m. Hora del Pacífico de EE.UU. y Canadá (UTC-7 o UTC-8)

Si el uso se informa más tarde ese día, es posible que no se incluya en la factura del mes actual.

Solución para las acciones de los clientes que impiden el registro del uso en el momento de su ocurrencia

Si no puedes informar el uso o si el servicio o la facturación están inhabilitados para una tiempo prolongado, recomendamos que le otorgues al cliente un período de gracia restablecer el servicio. Te recomendamos que no excedas los 30 días. Durante ese período de gracia, considera hacer lo siguiente: lo siguiente:

  • Degrada el servicio proporcionado. Por ejemplo, cambiar el cliente a un nivel gratuito o empezar a rechazar llamadas.

  • Continúa recopilando el registro de uso mientras el servicio está inhabilitado. Te recomendamos que recopiles el uso con el desglose de cargos en un período de, como máximo, una hora para que se pueda volver a reproducir después de que se habilite el servicio.

Cuando el servicio está habilitado, debes informar el uso recopilado mientras se se inhabilitó el servicio por uso real con el momento en que se recopilaron los datos. También debes reanudar los informes de uso normales.

En el caso de las apps de Kubernetes, si los informes de uso fallan durante el inicio, recomendar que la app se detenga sola, para que los clientes puedan acceder a ella comentarios y puede resolver el problema.

Prácticas recomendadas para el etiquetado de uso

Para los productos de SaaS basados en el uso, el uso se atribuye a un solo proyecto especificadas por el campo usageReportingId. En algunos casos, un producto de SaaS podría compartirse ampliamente en la organización de un cliente y se usan en muchos proyectos de clientes. Para habilitar la compatibilidad con una atribución de costos más específica, recomendamos que la atribución Los productos de SaaS incluyen el campo opcional userLabels en su informe de uso operación.

Si tu servicio admite de forma nativa un concepto de etiquetas de recursos, recomendamos que reenvíes las etiquetas a tus informes de uso. Las etiquetas deben cumplir con la requisitos de sintaxis.

Cloud Marketplace reserva las siguientes etiquetas. Puedes usar estas etiquetas para identificar contexto adicional de uso dentro de su plataforma de servicios nativa. Mié te recomendamos que incluyas estas etiquetas en tus informes de uso de forma predeterminada.

Clave de etiquetaValor de etiquetaDescription>
cloudmarketplace.googleapis.com/resource_name USER_SUPPLIED El nombre del recurso asociado con una métrica de uso.
cloudmarketplace.googleapis.com/container_name USER_SUPPLIED El nombre de un contenedor de recursos.

Las etiquetas se reenvían a la administración de costos de Facturación de Cloud incluidos los informes de costos y exportaciones de facturación.

Ejemplo de etiquetado de uso

Para este ejemplo, imagina que tu organización ofrece un producto de almacenamiento llamado Soluciones de almacenamiento de SaaS.

Un cliente, Carl, compró tu oferta de almacenamiento para su proyecto de Google Cloud e-commerce-website, para alojar las bases de datos user_profiles_db y products_db de su sitio web de comercio electrónico:

  • user_profiles_db contiene información sobre los usuarios que visitan el sitio de Carlos.
  • products_db contiene información sobre los productos que Carl vende en su sitio.

Si quieres brindarle a Carlos un desglose detallado del costo de su uso, puedes usa el par clave-valor userLabels para informar el costo de uso de cada base de datos por separado.

Por ejemplo, para informar el costo atribuido al almacenamiento de products_db de Carlos. puedes enviar el siguiente informe, en el que se indica que El almacenamiento de products_db le cuesta 100 unidades:

operation = {
  'operationId': '<UUID>',
  'operationName': 'db-total-storage',
  'consumerId': 'project:carl_website',
  'startTime': '<Timestamp>',
  'endTime': '<Timestamp>',
  'metricValues': [{
      'int64Value': 100,
  }],
  'userLabels': {
    'cloudmarketplace.googleapis.com/container_name': 'e-commerce-website',
    'cloudmarketplace.googleapis.com/resource_name': 'products_db'
  }
}

service.services().report(
  serviceName=service_name, body={
    'operations': [operation]
}).execute()

En este ejemplo, service_name es el ID del proyecto de Google Cloud de Carlos. en un proyecto final.

Para obtener un ejemplo más detallado del uso de userLabels, puedes consultar la Codelab de SaaS.

(Opcional) Integra tus informes en la nube privada virtual (VPC)

Si quieres usar una nube privada virtual (VPC) en el entorno en el servicio de tu producto, debes completar los siguientes pasos para e integrar informes de Google Cloud Marketplace en VPC. De forma predeterminada, el Las VMs de Compute Engine en tu VPC solo se pueden comunicar de forma interna. Debes configurar una de las VMs para que se comunique de forma externa, de modo que el resto de las VMs de tu VPC puedan usarla para generar informes.

Antes de comenzar

Configura el Acceso privado a Google

Para permitir que las máquinas virtuales (VM) de Compute Engine de tu producto se comuniquen de forma externa con fines de generación de informes, debes configurar el acceso privado a Google. Más información sobre la configuración del Acceso privado a Google, consulta Configura el Acceso privado a Google.

  1. Habilita el Acceso privado a Google para tu entorno de servicio.

  2. Configurar DNS para resuelve las solicitudes a private.googleapis.com.

  3. Crea una ruta personalizada para las APIs de Google:

    • En Nombre, especifica route-google-apis-services.

    • En Red, selecciona tu VPC.

    • En Rango de IP de destino, especifica 199.36.153.8/30.

    • En Prioridad, especifica 0.

    • En Etiquetas de la instancia, especifica google-apis-services.

    • En Siguiente salto, selecciona Puerta de enlace de Internet predeterminada.

  4. Crea una regla de firewall de VPC para permitir que tu producto se comunique con las APIs de Google:

    • En Nombre, especifica google-apis-services.

    • En Descripción, especifica Allow egress traffic to Google APIs and services.

    • Habilita el registro de reglas de firewall.

    • En Red, selecciona tu VPC.

    • En Dirección del tráfico, selecciona Salida.

    • En Acción en caso de coincidencia, selecciona Permitir.

    • En Nombre, especifica google-apis-services.

    • En Destinos, selecciona Specified target tags y, luego, Destino rótulos identificadores, especifica google-apis-services.

    • En el filtro de destino, selecciona IPv4 ranges y, en los rangos de IPv4 de destino, especifica 199.36.153.8/30.

    • En Protocolos y puertos, selecciona Allow all.

  5. En la consola de Google Cloud, selecciona la VM que quieres usar para informar tu el uso del producto. En Etiquetas de red, agrega google-apis-services. Haz clic en GUARDAR.

  6. En Interfaces de red, ubica la red de VPC. interfaz de usuario.

  7. En la columna Subred, haz clic en el vínculo de la subred. Desde la subred detalles, haz clic en EDITAR y configura el Acceso privado a Google como Activado.

  8. Haz clic en GUARDAR.

(Opcional) Integra tus informes en los Controles del servicio de VPC

Si quieres usar los Controles del servicio de VPC en la entorno en el que se ejecuta el servicio de tu producto, debes completar el sigue estos pasos para integrar los informes de Google Cloud Marketplace en los Controles del servicio de VPC:

  1. Configura tu implementación preferida de los Controles del servicio de VPC en tu servicio en un entorno de nube. Si quieres obtener más información para configurar los Controles del servicio de VPC, visita Configura un perímetro de servicio con los Controles del servicio de VPC.

  2. Asegúrate de que el servicio servicecontrol.googleapis.com de tu la implementación de Controles del servicio de VPC.