Integrar el backend de tu app

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

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

Si deseas ver un ejemplo de integración de una aplicación básica con Google Cloud Marketplace y una explicación del código de muestra, consulta el 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 esta cuenta de servicio para interactuar con las API de socios de Google Cloud Marketplace y obtener información sobre las compras de los usuarios.

Usa Producer Portal para crear y vincular tus cuentas de servicio. Si deseas obtener instrucciones detalladas 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 a fin de integrar el backend de tu app con Google Cloud Marketplace desde una ubicación, como tus cuentas de servicio y los identificadores de nivel del plan, puedes usar la sección del Producer Portal INTEGRACIÓN DE FACTURACIÓN.

El vínculo directo al 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:

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

  2. En laDescripción general de tu producto, dirígete aIntegración técnica y haz clic enINTEGRACIÓN DE FACTURACIÓN.

Crea y vincula cuentas de servicio en Producer Portal

Puedes usar la sección INFORMACIÓN DE FACTURACIÓN en el portal productor y crear y vincular las cuentas de servicio que usas para interactuar con las API de Partner y obtener información sobre las compras de los usuarios.

El vínculo directo al Portal para socios 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 su nombre en el campo Nombre de la cuenta de servicio y su ID 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 laDescripción general de tu producto, dirígete aIntegración técnica y haz clic enINTEGRACIÓN DE FACTURACIÓN.

  3. Para integrarla a la API de Partner Procurement, en Vincular una cuenta de 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 integrar en Pub/Sub, en Vincular una cuenta de servicio para suscribirse a un 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 integrarla a la API de Control de servicios, en Agregar roles/servicemanagement.serviceController a una cuenta de servicio, haz clic en AGREGAR 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 Google Cloud Marketplace, como registrarse para obtener tu producto.

  2. Google Cloud Marketplace envía una notificación a tu aplicación 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 por primera vez el producto, Google 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 que creó Google Cloud Marketplace y YOUR_PARTNER_ID es el ID que se te asigna cuando el Ingeniero socio 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.

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'}

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.

Administra autorizaciones

Cuando los clientes eligen un plan de precios para el software, Google crea una autorización, que indica que el cliente compró el producto en Google 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 detalles sobre la administración de derechos, visita la documentación de referencia.

Aprueba o rechaza una autorización

Cuando un cliente elige un plan de precios, Google 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 Google Cloud Marketplace. Si la oferta tiene una duración específica, se indica en años y meses. Si la oferta tiene una fecha de finalización específica, 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 dar un motivo para rechazar la autorización en el cuerpo de la solicitud, usa el siguiente formato:

{
  "reason": "..."
}

Cambia el plan de autorización

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, se indica en años y meses. Si la oferta tiene una fecha de finalización específica, 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",
  ...
}

Envía un mensaje de estado a los usuarios

Si el tiempo entre que un usuario elige un plan de precios y que el backend aprueba la autorización es de unas horas o mayor, recomendamos que envíes un mensaje de estado a los usuarios. En el mensaje, indica el progreso de la aprobación y, si está disponible, cuándo esperas que se complete.

Para proporcionar un mensaje de estado, realiza la siguiente solicitud HTTP POST a la API de Procurement:

POST v1/providers/your-partner-id/entitlements/entitlement_id:updateUserMessage

En el cuerpo de la solicitud, proporciona el texto del mensaje, similar al siguiente ejemplo:

{
  "message": "Approval expected in 2 days"
}

Cancela autorizaciones

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",
    "cancellationDate": "...",
    "updateTime": "..."
  },
}

Borra una autorización

Si un usuario realiza una solicitud directa al equipo de Atención al cliente de Google o si abandona la plataforma de Google, sus derechos se cancelan de inmediato y se borran sus derechos y cuentas 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_REQUESTEDFunciones obsoletas
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_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 volvió 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 para otro período. No es necesario que realice ninguna acción para completar la renovación.
ENTITLEMENT_OFFER_ENDEDIndica que finalizó la oferta privada de un cliente. Si se cancela el derecho del cliente, se activa un evento ENTITLEMENT_CANCELLED independiente. Si el derecho del cliente sigue activo, su plan se revertirá a un precio sin descuento.
ENTITLEMENT_DELETEDIndica que la información sobre el plan de un cliente se borró de Google 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 a fin de crear una cuenta de servicio en Producer Portal para usarla con el Control de servicios.

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. Debes usar el mismo operationId para las operaciones check y report.

  • consumerId es lo mismo que usageReportingId del derecho.

  • startTime y endTime representan las horas de inicio y finalización del intervalo 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 la 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 intervalos de tiempo intermedios y los valores de métrica actualizados correspondientes. Tú defines las métricas de tu servicio cuando eliges y envías el modelo de precios.

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

  • userLabels son etiquetas creadas por el usuario, definidas como strings de clave-valor que siguen requisitos de sintaxis específicos. Estas etiquetas se reenvían a las herramientas de administración de costos de la Facturación de Cloud para la atribución. A fin de obtener convenciones de etiquetado recomendadas, 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

Recomendaciones para los informes de uso

Cuando informes el uso, por ejemplo, la operación del usuario o el uso de recursos, ten en cuenta la siguiente información para asegurarte de que a tus clientes se les facture correctamente.

Cómo informar el uso en el momento del caso

Las demoras en los informes de uso degradan la experiencia de administración de costos de tus clientes y es posible que no se reflejen en los informes de socios. Los proveedores de servicios deben informar el uso en el plazo de una hora a partir de la generación.

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

Cómo informar el uso después de que se cancela una autorización

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

Informar el uso al final del mes

El período de informe de una hora se aplica a la fecha límite 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, 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 en el 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 uso de informes en el momento del caso

Si no puedes informar el uso, o si el servicio o la facturación están inhabilitados por un período prolongado, te recomendamos que le proporciones un período de gracia al cliente para restablecer el servicio. Le recomendamos que no supere los 30 días. Durante este período de gracia, considera hacer lo siguiente:

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

  • Continúa recopilando el registro de uso mientras el servicio esté inhabilitado. Recomendamos recopilar el uso con el desglose de cargos, como máximo, una ventana de 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 el servicio estaba inhabilitado como uso real con el momento en que se recopilaron los datos. También debes reanudar tus informes de uso normales.

En el caso de las apps de Kubernetes, si fallan los informes de uso durante el inicio de la app, te recomendamos que esta se detenga para que los clientes reciban comentarios inmediatos y puedan 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 que especifica el campo usageReportingId. En algunos casos, un producto de SaaS podría compartirse ampliamente dentro de la organización de un cliente y utilizarse en muchos proyectos de clientes. Para admitir una atribución de costos más específica, recomendamos que los productos de SaaS basados en el uso incluyan el campo opcional userLabels en la operación del informe de uso.

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

Google Cloud Marketplace reserva las siguientes etiquetas. Puedes usar estas etiquetas a fin de identificar contexto adicional para el uso dentro de tu plataforma de servicio nativa. 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 las herramientas de administración de costos de la Facturación de Cloud, incluidos los informes de costos y las 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, Carlos, compró la oferta de almacenamiento para su proyecto de Google Cloud e-commerce-website a fin de 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 Carlos vende en su sitio.

Si deseas proporcionarle a Carlos un desglose detallado del costo de su uso, puedes usar 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 uso del almacenamiento products_db de Carl, puedes enviar el siguiente informe, que indica que el almacenamiento products_db de Carl les 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()

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

Integra los informes en la nube privada virtual (VPC) (opcional)

Si quieres usar la nube privada virtual (VPC) en el entorno en el que se ejecuta el servicio de tu producto, debes completar los siguientes pasos para integrar los informes de Google Cloud Marketplace en la VPC. De forma predeterminada, las VM de Compute Engine en la VPC solo pueden comunicarse de forma interna. Debes configurar una de las VM para que se comunique de forma externa a fin de que el resto de las VM de tu VPC puedan usarla en los 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. Para obtener más información sobre cómo configurar el acceso privado a Google, consulta Cómo configurar el acceso privado a Google.

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

  2. Configura el DNS para resolver solicitudes a private.googleapis.com.

  3. Crea una ruta personalizada para las API 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 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 API 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, en Etiquetas de destino, especifica google-apis-services.

    • En el Filtro de destino, selecciona IPv4 ranges y, en Rangos de IPv4 de destino, especifica 199.36.153.8/30.

    • En Protocolos y puertos, selecciona Allow all.

  5. En Google Cloud Console, selecciona la VM que deseas usar para informar el uso de tu producto. En Etiquetas de red, agrega google-apis-services y haz clic en GUARDAR.

  6. En Interfaces de red, busca la interfaz de red de VPC.

  7. En la columna Subred, haga clic en el vínculo de la subred. En la página Detalles de la subred, haz clic en EDITAR y establece el Acceso privado a Google en Activado.

  8. Haga clic en GUARDAR.

Integra los informes con los Controles del servicio de VPC (opcional)

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

  1. Configura la implementación preferida de los Controles del servicio de VPC en el entorno de servicio. Para obtener más información sobre cómo configurar los Controles del servicio de VPC, visita Configura un perímetro de servicio mediante los Controles del servicio de VPC.

  2. Asegúrate de que el servicio servicecontrol.googleapis.com en la implementación de los Controles del servicio de VPC no esté restringido.