Panduan pengaturan infrastruktur untuk ImgStudio
0 Dapatkan akses ke model Imagen
- Secara umum, untuk Vertex: di konsol (baru!)
- Buka
Vertex AI
> Enable all recommended APIs
- Ini harus mencakup: Vertex AI API, Cloud Storage API
- Untuk Imagen Generation: hubungi kontak Google Cloud Anda untuk mendapatkan akses ke model pengeditan Imagen 3 - Imagen 3 Generate (imagen-3.0-generate-001) dan Imagen 3 Generate Fast (imagen-3.0-fast-generate-001)
- Untuk Pengeditan Gambar : hubungi kontak Google Cloud Anda untuk meminta akses Pratinjau, atau dapatkan pemberitahuan jika ini adalah GA
- Untuk Segmentasi Vertex : Anda juga memerlukan akses ke model baru ini saat menggunakan pengeditan
1 Buat bucket Cloud Storage
- Spesifikasi: Regional di wilayah yang Anda inginkan (misal:
europe-west9
di Paris) - Buat 3 ember
- Konten keluaran mentah yang dihasilkan :
YOUR_COMPANY-imgstudio-output
- Konten yang dibagikan :
YOUR_COMPANY-imgstudio-library
- Keranjang file konfigurasi :
YOUR_COMPANY-imgstudio-export-config
- Di sini unggah
export-fields-options.json
file konfigurasi khusus untuk penggunaan Anda yang dapat Anda temukan contohnya di repositori, tujuannya adalah untuk mengatur metadata yang diinginkan yang ingin Anda atur untuk konten yang Anda hasilkan - Dalam file ini, untuk setiap bidang (misal: konteksAuthorTeam, konteksTargetPlatform, konteksAssociatedBrand, konteksCollection), Anda hanya dapat mengubah ID bidang tersebut (misal:
“contextAuthorTeam”
), labelnya (misal: “In which team are you?”
) , namanya (misal: “Associated team(s)”
), tagnya isMandatory (misal: true
) dan terakhir opsinya - Perhatian! ID dan nilai opsi hanya boleh berupa huruf, tanpa spasi, tanpa karakter khusus, dimulai dengan huruf kecil
2 Siapkan pemicu Cloud Build
- Nama:
YOUR_COMPANY-imgstudio
- Acara:
Manual invocation
- Sumber:
- Buka repositori publik https://github.com/aduboue/img-studio
- Pantau rilis baru agar tetap up-to-date: klik
Watch
> Custom
> Releases
> Terapkan - Gunakan tombol kanan atas untuk menyiapkan garpu GitHub dari repositori, yang akan membuat salinan repositori di akun GitHub Anda sendiri
- Kembali ke Cloud Build, masuk ke akun GitHub Anda , lalu pilih repositori yang baru dibuat
- Konfigurasi:
Cloud Build configuration file (yaml or json)
- Lokasi file konfigurasi Cloud Build:
/cloudbuild.yaml
- Masukkan 7 variabel substitusi:
-
_NEXT_PUBLIC_EXPORT_FIELDS_OPTIONS_URI
- URI file JSON konfigurasi di bucketnya
- Contoh:
gs://YOUR_COMPANY-imgstudio-export-config/export-fields-options.json
-
_NEXT_PUBLIC_GCS_BUCKET_LOCATION
- Wilayah yang dipilih untuk bucket GCS Anda
- Contoh:
europe-west9
-
_NEXT_PUBLIC_VERTEX_API_LOCATION
- Wilayah yang ingin Anda gunakan untuk API VertexAI
- Contoh:
europe-west9
-
_NEXT_PUBLIC_GEMINI_MODEL
= gemini-1.5-flash-001
-
_NEXT_PUBLIC_OUTPUT_BUCKET
- Nama keranjang konten keluaran mentah yang dihasilkan
- Contoh:
YOUR_COMPANY-imgstudio-output
-
_NEXT_PUBLIC_TEAM_BUCKET
- Nama keranjang konten yang dibagikan
- Contoh:
YOUR_COMPANY-imgstudio-library
-
_NEXT_PUBLIC_PRINCIPAL_TO_USER_FILTERS
- Bagian alamat email pengguna Anda yang digunakan untuk masuk melalui IAP yang perlu dihapus untuk mendapatkan ID pengguna mereka, dipisahkan dengan koma
- Contoh: alamat email saya adalah '[email protected]', nilai yang akan ditetapkan adalah
admin-,@company.com
sehingga ID pengguna jdupont dapat diekstraksi
-
_NEXT_PUBLIC_EDIT_ENABLED
(baru!)- Izinkan untuk mengaktifkan fitur edit, setel ke '
false
' jika Anda belum memiliki akses
-
_NEXT_PUBLIC_EDIT_MODEL
(baru!)- Hanya wajib jika Edit diaktifkan
- Nama layanan untuk model edit, saat Anda mendapatkan akses ke sana
-
_NEXT_PUBLIC_SEG_MODEL
(baru!)- Hanya wajib jika Edit diaktifkan
- Nama layanan untuk model Segmentasi Vertex, saat Anda mendapatkan akses ke sana
- Akun layanan: pilih akun layanan Cloud Build default yang sudah ada
[email protected]
- Anda mungkin ingin memeriksa di IAM bahwa ia memiliki peran :
Artifact Registry Writer
dan Logs Writer
- > Simpan
- Jalankan build pertama Anda secara manual!
3 Aktifkan IAP & konfigurasikan Layar Persetujuan oAuth
- Buka Keamanan > Proksi Sadar Identitas dan aktifkan API
- > Konfigurasikan layar persetujuan (oAuth)
- Tipe pengguna bisa berupa apa saja
-
Internal
jika Anda ingin membatasi pengguna IAP ke domain organisasi GCP Anda -
External
jika Anda memiliki beberapa pengguna di domain yang berbeda dari domain GCP Anda
- > Buat
- Mengisi
- Nama Aplikasi:
YOUR_COMPANY-imgstudio
- Email Dukungan Pengguna
- Domain Resmi:
YOUR_COMPANY_DOMAIN
- Email Kontak Pengembang
- > Simpan dan Lanjutkan
- Tambahkan cakupan yang diperlukan atau > Simpan dan Lanjutkan
- Tinjau Ringkasannya
- > Kembali ke Dasbor
4 Buat Akun Layanan aplikasi
- Buka IAM > Akun Layanan > Buat Akun Layanan
- Berikan nama:
YOUR_COMPANY-imgstudio-sa
- Berikan peran :
-
Cloud Datastore User
-
Logs Writer
-
Secret Manager Secret Accessor
-
Service Account Token Creator
-
Storage Object Creator
-
Storage Object Viewer
-
Vertex AI User
5 Terapkan layanan Cloud Run
- Terapkan kontainer > Layanan
-
Deploy one revision from an existing container image
- Gambar kontainer > Pilih dari registri Artifact, gambar
latest
yang baru saja Anda buat di Cloud Build - Nama:
YOUR_COMPANY-imgstudio-app
- Tetapkan wilayah Anda (misal:
europe-west9
) - Otentikasi : Memerlukan otentikasi
- Kontrol Ingress >
Internal
> Allow traffic from external Application Load Balancers
- Kontainer > Pelabuhan kontainer:
3000
- Keamanan > Akun layanan:
YOUR_COMPANY-imgstudio-sa
- > Buat
- Catatan: jika Anda mencoba mengakses URL yang dipublikasikan untuk layanan baru, Anda akan menerima pesan kesalahan yang menyatakan "Kesalahan: Halaman Tidak Ditemukan", hal ini disebabkan oleh fakta bahwa kami hanya mengizinkan masuknya lalu lintas eksternal dari Load Balancer
6 Berikan Izin IAP pada layanan Cloud Run
- Buat alamat akun layanan IAP
- Buka kanan atas konsol > Ikon Shell “Aktifkan Cloud Shell”
- Tunggu hingga mesin melakukan pengaturan
- Di terminal, gunakan perintah ini dan salin alamat akun layanan keluaran
-
gcloud beta services identity create --service=iap.googleapis.com --project=PROJECT_ID
- Format keluaran yang dapat Anda salin haruslah
[email protected]
- Buka Cloud Run, di daftar Layanan, pilih kotak centang di samping nama layanan Anda
- Klik Izin > Tambahkan Kepala Sekolah
- Memberikan peran
Cloud Run Invoker
ke akun layanan IAP yang dibuat sebelumnya/diambil
7 Buat Zona DNS
- Layanan Jaringan > Cloud DNS
- > Buat zona
- Lengkapi formulirnya
- Nama Zona:
imgstudio
- Nama DNS :
imgstudio.YOUR_COMPANY_DOMAIN
- DNSSEC:
Off
- Pencatatan Awan:
Off
- Setelah propagasi DNS selesai, verifikasi server nama zona terkelola DNS menggunakan perintah di bawah ini (mungkin memerlukan waktu beberapa jam untuk menyelesaikannya)
-
dig imgstudio.YOUR_COMPANY_DOMAIN NS +short
8 Buat Penyeimbang Beban & Sertifikat SSL
- Layanan Jaringan > Penyeimbangan Beban
- > Buat Penyeimbang Beban
- Memilih:
- Jenis Penyeimbang Beban :
Application Load Balancer (HTTP/HTTPS)
- Public Facing atau Internal :
Public Facing (external)
- Wilayah global atau tunggal :
Global
- Pembuatan Load Balancer :
Global external Application Load Balancer
- > Konfigurasi
- Nama penyeimbang beban:
YOUR_COMPANY-imgstudio-lb
- Konfigurasi bagian depan:
- Protokol :
HTTPS
- Alamat IP dapat dibiarkan
Ephemeral
(Anda juga dapat mengkonfigurasi IP statis) - Tarik-turun sertifikat > Buat Sertifikat Baru
- Nama:
YOUR_COMPANY-imgstudio-cert
- > Buat sertifikat yang dikelola Google
- Domain 1 :
imgstudio.YOUR_COMPANY_DOMAIN
- > Buat
- > Selesai
- Konfigurasi Backend
- Layanan Backend & Bucket Backend > Buat Layanan Backend
- Nama:
YOUR_COMPANY-imgstudio-back
- Jenis backend :
Serverless Network Endpoint Group
> Selesai - Backend > Backend baru > Dropdown Grup Titik Akhir Jaringan Tanpa Server > Buat Grup Titik Akhir Jaringan Tanpa Server
- Nama:
YOUR_COMPANY-imgstudio-neg
- Wilayah: wilayah tempat layanan Cloud Run di-deploy (misal:
europe-west9
) - Jenis grup titik akhir jaringan tanpa server > Cloud Run > Pilih layanan >
YOUR_COMPANY-imgstudio-app
> Buat - Aktifkan Cloud CDN >
Off
- > Buat
- Tinjau konfigurasi Load Balancer
- > Buat
9 Buat Catatan DNS untuk frontend Load Balancer
- Layanan Jaringan > Penyeimbangan Beban, pilih penyeimbang beban
YOUR_COMPANY-imgstudio-lb
- Detail > Frontend > IP-Port
- Catat alamat IP
- Layanan Jaringan > Cloud DNS, pilih
imgstudio
Zona DNS Anda - Kumpulan Rekaman > Tambahkan Standar
- Buat kumpulan rekor
- Nama DNS:
imgstudio.YOUR_COMPANY_DOMAIN
- Alamat IPv4 : Alamat IP penyeimbang beban Anda
- > Buat
10 Aktifkan IAP & berikan akses pengguna
- Keamanan > Proksi Sadar Identitas
- Aktifkan IAP untuk layanan backend Anda
YOUR_COMPANY-imgstudio-back
- Pilih kotak centang di samping layanan Anda, lalu > Tambahkan Kepala Sekolah
- Masukkan alamat pengguna ( atau grup ) yang ingin Anda izinkan aksesnya ke imgstudio
- Tetapkan peran
IAP-secured Web App User
, > Simpan
11 Pembuatan Basis Data Firestore
- Firestore > Buat basis data
- Mode Firestore :
Native mode
, > Lanjutkan - ID Basis Data:
(default)
( sangat penting Anda tetap seperti itu ) - Jenis lokasi:
Region
- Wilayah: wilayah yang Anda inginkan (misal:
europe-west9
di Paris) - Aturan aman:
Production rules
- Firestore > Indeks > Indeks komposit > Buat Indeks
- ID Koleksi :
metadata
- Bidang yang akan diindeks
- Jalur bidang 1:
combinedFilters
, Opsi indeks 1: Array contains
- Jalur bidang 2:
timestamp
, Opsi indeks 2: Descending
- Jalur bidang 3:
__name__
, Opsi indeks 3: Descending
- Cakupan kueri :
Collection
- > Buat
- Tunggu hingga indeks berhasil dibuat!
- Mari siapkan aturan keamanan di database Anda , dan hanya izinkan akun layanan Cloud Run Anda yang mengaksesnya
- Di tab baru, buka
-
https://console.firebase.google.com/project/PROJECT_ID/firestore/databases/-default-/rules
- Jika perlu, ikuti langkah-langkah untuk menyiapkan proyek Firebase Anda
- Setelah berada di Firestore Database > Rules, buka editor aturan keamanan
- Tulis konten berikut, jangan lupa ganti
YOUR_COMPANY
& PROJECT_ID
di akun layanan Cloud Run rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, get, list, create, update: if get(/databases/$(database)/documents/request.auth.uid).data.serviceAccount == 'YOUR_COMPANY-imgstudio-sa@PROJECT_ID.iam.gserviceaccount.com';
allow delete: if false;
}}}
- > Publikasikan