Halaman ini menunjukkan cara mengelola unit tenancy untuk layanan Anda. Unit tenancy adalah resource ringan yang mewakili hubungan antara konsumen layanan dan layanan terkelola. Setiap konsumen layanan hanya dapat memiliki satu unit tenant aktif untuk layanan terkelola. Ini adalah fitur yang disediakan oleh Service Infrastructure.
Nama resource unit tenancy memiliki format berikut:
services/{your service name}/projects/{consumer project number}/tenancyUnits/{id}
ID unit tenancy dibuat secara otomatis saat Anda membuatnya. Anda juga dapat
memberikan ID saat memanggil
metode
services.tenancyUnits.create
. Jika Anda memberikan ID, ID tersebut harus unik secara global dalam cakupan
layanan terkelola Anda di semua konsumen layanan.
Contoh di halaman ini menggunakan panggilan langsung ke REST API Service Consumer Management. Untuk penggunaan produksi, sebaiknya gunakan library klien yang disediakan Google untuk mendapatkan kegunaan dan keandalan yang lebih baik.
Sebelum memulai
- Service Consumer Management API ditujukan untuk digunakan dengan project layanan terkelola dan produsen layanan. Anda harus sudah memiliki project Google Cloud dan layanan terkelola (seperti layanan yang dibuat menggunakan Cloud Endpoints) dalam project tersebut.
- Untuk menggunakan unit tenancy, Service Consumer Management API perlu membuat project tenant di organisasi produsen layanan Anda. Pastikan Anda memiliki kuota yang cukup untuk jumlah project tenant yang diperlukan untuk konsumen layanan Anda.
- Setiap project tenant yang dibuat dalam unit tenant juga harus berada di folder yang Anda tentukan sebagai bagian dari konfigurasi project tenant. Oleh karena itu, Anda memerlukan Organization untuk menggunakan unit tenancy.
Authentication
Cloud API seperti Service Consumer Management API hanya menerima panggilan yang diautentikasi. Jika Anda belum memilikinya, cari tahu cara membuat akun layanan dan dapatkan kunci JSON untuk mengautentikasi ke Cloud API di bagian Mulai Menggunakan Authentication. Jika menggunakan library klien Google, Anda dapat menyiapkan lingkungan agar menggunakan kredensial akun layanan Anda secara default. Untuk panggilan langsung ke REST API, Anda harus menyediakan token akses di setiap header, seperti pada contoh berikut:
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"
Untuk membuat dan menghapus unit tenancy, Anda harus mengikuti petunjuk penyiapan awal di bagian Mulai Menggunakan Service Consumer Management API.
Membuat unit tenancy
Unit tenant dan project tenant di dalamnya biasanya dibuat ketika resource di layanan Anda sendiri dibuat, yang bergantung pada resource Google Cloud tambahan yang akan disediakan untuk konsumen.
Anda membuat unit tenancy sebagai berikut:
POST https://serviceconsumermanagement.googleapis.com/v1/services/service.example.com/projects/12345678901/tenancyUnits
Di sini, 'projects/12345678901' mewakili konsumen layanan, dan
service.example.com
adalah nama layanan Anda.
Struktur data yang ditampilkan memiliki nama unit tenancy, dengan ID unik yang dihasilkan yang dapat digunakan untuk mengaksesnya. Dalam contoh ini, nama yang dihasilkan adalah
services/your-service.example.com/projects/12345678901/tenancyUnits/absdef
.
Menambahkan project tenant
Sekarang, Anda dapat menambahkan project untuk pengguna. Untuk menambahkan project tenant baru ke unit tenancy yang dibuat di langkah sebelumnya, panggil metode berikut:
POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:addProject
dengan data berikut:
{"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"}}}
Nilai tag
adalah ID yang Anda berikan untuk project dalam unit
tenancy: ini bisa berupa apa pun yang Anda inginkan (ini adalah tag1
), seperti region, jaringan konsumen, atau hanya ID string.
Panggilan ini menampilkan operasi yang berjalan lama yang dapat Anda kueri untuk mengetahui apakah pembuatan project berhasil.
Jika Anda perlu menerapkan konfigurasi lain, misalnya untuk menambahkan layanan terkelola
baru, Anda dapat memanggil
metode
services.tenancyUnits.applyProjectConfig
.
Menelusuri unit tenancy Anda
Menemukan unit tenancy untuk konsumen layanan
Untuk menemukan unit tenancy bagi konsumen layanan tertentu, gunakan
metode services.tenancyUnits.ListTenancyUnits
, dengan menentukan
nomor project konsumen layanan mereka:
GET https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits
Telusuri unit tenancy
Anda dapat menggunakan metode services.tenancyUnits.SearchTenancyUnits
untuk menelusuri unit tenancy yang ditentukan untuk layanan Anda. Misalnya, kueri berikut akan menampilkan semua unit yang berisi project dengan tag 'tag1':
GET https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com:search?query=tenant_resources.tag=tag1
Membersihkan unit tenancy
Saat konsumen layanan berhenti menggunakan layanan Anda, Anda perlu menghapus unit tenancy untuk mengosongkan resource dan memastikan data pengguna dihapus.
Menghapus project tenant
Anda perlu menghapus semua project tenant sebelum menghapus unit tenant yang sesuai. Anda harus menggunakan metode services.tenancyUnits.removeProject
untuk menghapus project tenant dan semua resource di dalamnya:
POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:removeProject
Menghapus unit tenancy
Setelah menghapus semua project tenant dalam unit tenancy, atau semuanya berada dalam status DELETED
, Anda dapat menghapus unit tenancy:
DELETE https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef