Administrar unidades de usuario

En esta página, se muestra cómo administrar unidades de usuario para tu servicio. Una unidad de usuario es un recurso básico que representa la relación entre un consumidor de servicios y un servicio administrado. Cada consumidor de servicios puede tener solamente una unidad de inquilino activa para un servicio administrado. Esta es una característica que proporciona Service Infrastructure.

El nombre del recurso de una unidad de usuario tiene el siguiente formato:

services/{your service name}/projects/{consumer project number}/tenancyUnits/{id}

El ID de una unidad de usuario se genera automáticamente cuando la creas. También puedes proporcionar el ID cuando llamas al método services.tenancyUnits.create. Si proporcionas un ID, este debe ser único a nivel global dentro del alcance de tu servicio administrado para todos los consumidores de servicios.

En los ejemplos de esta página, se usan llamadas directas a la API de REST de la Administración de consumidores de servicios. Para el uso en producción, te recomendamos que uses las bibliotecas cliente que proporciona Google a fin de obtener una mejor usabilidad y confiabilidad.

Antes de comenzar

  • La API de Administración de consumidores de servicios está diseñada para utilizarse con servicios administrados y proyectos del productor de servicios. Deberá tener un proyecto de Google Cloud y un servicio administrado (como un servicio creado mediante Cloud Endpoints) en ese proyecto.
  • Para utilizar las unidades de inquilino, la API de Service Consumer Management debe crear proyectos de inquilino en la organización del productor de servicios. Asegúrate de tener suficiente cuota para la cantidad necesaria de proyectos de usuarios para los consumidores de tu servicio.
  • Cada proyecto de usuario creado en una unidad de usuario también debe estar en una carpeta que especifiques como parte de la configuración del proyecto de usuario. Debido a esto, necesitas contar con una Organización para utilizar las unidades de usuario.

Autenticación

Las API de Cloud, como la API de Service Consumer Management, solo aceptan llamadas autenticadas. Si aún no tienes una, conoce cómo crear una cuenta de servicio y obtener una clave JSON para autenticar las API de Cloud en Comienza a usar la autenticación. Si utilizas una biblioteca cliente de Google, puedes configurar el entorno para que utilice las credenciales de la cuenta de servicio de forma predeterminada. Para las llamadas directas a la API de REST, tendrás que proporcionar un token de acceso en cada encabezado, como se muestra en el siguiente ejemplo:

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" --header 'Content-Type: application/json' --data '{"tag":"tag1", "project_config":{"folder":"folders/9876543210", "tenant_project_policy": {"policy_bindings":{"role":"roles/owner", "members":"user:user1@company.com"}}, "billing_config":{"billing_account":"billingAccounts/123456-472F22-28F9AA"}}}' -X POST "https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/consumers/12345678901/tenancyUnits/tu-hello:addProject"

Para crear y borrar unidades de inquilino, debes seguir las instrucciones de configuración iniciales en Comienza a usar la API de Service Consumer Management.

Crea una unidad de usuario

Por lo general, se crean unidades de usuario y los proyectos de usuarios cuando se crean recursos en tu propio servicio que dependen de recursos adicionales de Google Cloud para que los aprovisionen para los clientes.

Una unidad de inquilino se crea de la siguiente manera:

POST https://serviceconsumermanagement.googleapis.com/v1/services/service.example.com/projects/12345678901/tenancyUnits

Aquí, “projects/12345678901” representa el consumidor del servicio y service.example.com es el nombre de tu servicio.

La estructura de datos que se muestra tiene el nombre de la unidad de inquilino con un ID único que puede utilizarse para el acceso. En este ejemplo, el nombre generado es services/your-service.example.com/projects/12345678901/tenancyUnits/absdef.

Agrega un proyecto de inquilino

Ahora puedes agregar un proyecto para el usuario. Para agregar un proyecto de inquilino nuevo a la unidad de inquilino creada en el paso anterior, llama al siguiente método:

POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:addProject

con los siguientes datos:

{"tag":"tag1", "project_config":{"folder":"folders/9876543210", "tenant_project_policy":{"policy_bindings":{"role":"roles/owner", "members":"user:bob@example.com"}}, "billing_config":{"billing_account":"billingAccounts/123456-472F22-28F9AA"}}}

El valor tag es un identificador que proporciona para el proyecto dentro de la unidad de usuario: puede ser cualquier cosa que desee (aquí es tag1), como una región, una red de consumidores o simplemente un ID de cadena.

Esta llamada muestra una operación de larga duración que puedes consultar para encontrar si la creación del proyecto se realizó de forma correcta.

Si necesitas aplicar una configuración diferente, por ejemplo, para agregar servicios administrados nuevos, puedes llamar al método services.tenancyUnits.applyProjectConfig.

Busca unidades de usuario

Encuentra una unidad de usuario para un consumidor de servicios

A fin de buscar una unidad de usuario para un consumidor de servicios en particular, utilice el método services.tenancyUnits.ListTenancyUnits y especifique su número de proyecto de consumidor de servicios:

GET https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits

Busca unidades de usuario

Puede usar el método services.tenancyUnits.SearchTenancyUnits a fin de buscar unidades de usuario definidas para su servicio. Por ejemplo, la siguiente consulta mostrará todas las unidades que contengan un proyecto con la etiqueta 'tag1':

GET https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com:search?query=tenant_resources.tag=tag1

Limpia las unidades de usuario

Cuando un consumidor de servicios deja de usar el servicio, debes quitar su unidad de usuario para liberar recursos y garantizar que se borren los datos del usuario.

Quita los proyectos de inquilino

Debes borrar todos los proyectos de usuario antes de borrar la unidad de usuario asociada. Debes usar el método services.tenancyUnits.removeProject para borrar un proyecto de usuario y todos sus recursos:

POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:removeProject

Borra una unidad de usuario

Después de borrar todos los proyectos de usuario en una unidad de usuario, o todos en el estado DELETED, puedes borrar la unidad de usuario:

DELETE https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef