Leitfaden zur Infrastruktureinrichtung für ImgStudio
0 Erhalten Sie Zugriff auf Imagen-Modelle
- Generell gilt für Vertex: in der Konsole (neu!)
- Gehen Sie zu
Vertex AI
> Enable all recommended APIs
- Dazu gehören: Vertex AI API, Cloud Storage API
- Für die Imagen-Generierung: Wenden Sie sich an Ihre Google Cloud-Kontakte, um Zugriff auf die Imagen 3-Bearbeitungsmodelle zu erhalten – Imagen 3 Generate (imagen-3.0-generate-001) und Imagen 3 Generate Fast (imagen-3.0-fast-generate-001).
- Für die Bildbearbeitung : Wenden Sie sich an Ihre Google Cloud-Kontakte, um Zugriff auf die Vorschau zu erhalten, oder lassen Sie sich benachrichtigen, wenn es GA ist
- Für die Scheitelpunktsegmentierung : Sie benötigen auch Zugriff auf dieses neue Modell, wenn Sie die Bearbeitung verwenden
1 Erstellen Sie Cloud Storage- Buckets
- Spezifikationen: Regional in Ihrer gewünschten Region (z. B.
europe-west9
in Paris) - Erstellen Sie 3 Eimer
- Roh generierter Ausgabeinhalt :
YOUR_COMPANY-imgstudio-output
- Geteilter Inhalt :
YOUR_COMPANY-imgstudio-library
- Konfigurationsdatei-Bucket :
YOUR_COMPANY-imgstudio-export-config
- Laden Sie hier
export-fields-options.json
eine für Ihre Verwendung spezifische Konfigurationsdatei hoch, von der Sie ein Beispiel im Repository finden. Ihr Zweck besteht darin, die gewünschten Metadaten einzurichten, die Sie für Ihren generierten Inhalt festlegen möchten - In dieser Datei können Sie für jedes Feld (z. B. contextAuthorTeam, contextTargetPlatform, contextAssociatedBrand, contextCollection) nur die ID des Felds (z. B.
“contextAuthorTeam”
) und seine Bezeichnung (z. B. “In which team are you?”
) ändern. , sein Name (z. B. “Associated team(s)”
), sein Tag isMandatory (z. B. true
) und schließlich seine Optionen - Aufmerksamkeit! Die ID und die Werte der Optionen dürfen nur aus Buchstaben, ohne Leerzeichen und ohne Sonderzeichen bestehen und mit einem Kleinbuchstaben beginnen
2 Richten Sie den Cloud Build- Trigger ein
- Name:
YOUR_COMPANY-imgstudio
- Ereignis:
Manual invocation
- Quelle:
- Gehen Sie zum öffentlichen Repository https://github.com/aduboue/img-studio
- Überwachen Sie neue Veröffentlichungen , um auf dem neuesten Stand zu bleiben: Klicken Sie auf
Watch
> Custom
> Releases
> „Übernehmen“. - Verwenden Sie die Schaltfläche oben rechts, um einen GitHub-Fork aus dem Repository einzurichten, der ein Kopie-Repository in Ihrem eigenen GitHub-Konto erstellt
- Melden Sie sich in Cloud Build bei Ihrem GitHub-Konto an und wählen Sie dann das neu erstellte Repository aus
- Konfiguration:
Cloud Build configuration file (yaml or json)
- Speicherort der Cloud Build-Konfigurationsdatei:
/cloudbuild.yaml
- Geben Sie 7 Substitutionsvariablen ein:
-
_NEXT_PUBLIC_EXPORT_FIELDS_OPTIONS_URI
- Der URI der Konfigurations-JSON-Datei in ihrem Bucket
- Beispiel:
gs://YOUR_COMPANY-imgstudio-export-config/export-fields-options.json
-
_NEXT_PUBLIC_GCS_BUCKET_LOCATION
- Die für Ihre GCS-Buckets ausgewählte Region
- Bsp.:
europe-west9
-
_NEXT_PUBLIC_VERTEX_API_LOCATION
- Die Region, die Sie für VertexAI-APIs verwenden möchten
- Bsp.:
europe-west9
-
_NEXT_PUBLIC_GEMINI_MODEL
= gemini-1.5-flash-001
-
_NEXT_PUBLIC_OUTPUT_BUCKET
- Der Name des rohgenerierten Ausgabeinhalts-Buckets
- Beispiel:
YOUR_COMPANY-imgstudio-output
-
_NEXT_PUBLIC_TEAM_BUCKET
- Der Name des freigegebenen Inhalts-Buckets
- Beispiel:
YOUR_COMPANY-imgstudio-library
-
_NEXT_PUBLIC_PRINCIPAL_TO_USER_FILTERS
- Die durch Kommas getrennten Abschnitte der E-Mail-Adresse Ihrer Benutzer, die für die Anmeldung über IAP verwendet werden und entfernt werden müssen, um ihre Benutzer-ID zu erhalten
- Beispiel: Meine E-Mail-Adresse lautet „[email protected]“. Der festzulegende Wert wäre
admin-,@company.com
damit die Benutzer-ID jdupont extrahiert werden kann
-
_NEXT_PUBLIC_EDIT_ENABLED
(neu!)- Erlauben, um Bearbeitungsfunktionen zu aktivieren, setzen Sie es auf „
false
“, wenn Sie noch keinen Zugriff haben
-
_NEXT_PUBLIC_EDIT_MODEL
(neu!)- Nur obligatorisch, wenn Bearbeiten aktiviert ist
- Dienstname für das Bearbeitungsmodell, wenn Sie Zugriff darauf erhalten
-
_NEXT_PUBLIC_SEG_MODEL
(neu!)- Nur obligatorisch, wenn Bearbeiten aktiviert ist
- Dienstname für das Vertex-Segmentierungsmodell, wenn Sie Zugriff darauf erhalten
- Dienstkonto: Wählen Sie das standardmäßig bereits vorhandene Cloud Build-Dienstkonto
[email protected]
aus- Möglicherweise möchten Sie in IAM überprüfen, ob es die Rollen
Artifact Registry Writer
und Logs Writer
hat
- > Speichern
- Führen Sie Ihren ersten Build manuell aus!
3 IAP aktivieren und oAuth-Zustimmungsbildschirm konfigurieren
- Gehen Sie zu Sicherheit > Identity Aware Proxy und aktivieren Sie die API
- > Einwilligungsbildschirm konfigurieren (oAuth)
- Der Benutzertyp kann einer von beiden sein
-
Internal
wenn Sie IAP-Benutzer auf Ihre GCP-Organisationsdomäne beschränken möchten -
External
wenn Sie einige Benutzer in einer anderen Domäne als der Ihrer GCP-Organisation haben
- > Erstellen
- Ausfüllen
- App-Name:
YOUR_COMPANY-imgstudio
- Benutzer-Support-E-Mail
- Autorisierte Domäne:
YOUR_COMPANY_DOMAIN
- Kontakt-E-Mail des Entwicklers
- > Speichern und fortfahren
- Fügen Sie alle benötigten Bereiche hinzu oder > Speichern und fortfahren
- Sehen Sie sich die Zusammenfassung an
- > Zurück zum Dashboard
4 Erstellen Sie ein Anwendungsdienstkonto
- Gehen Sie zu IAM > Dienstkonten > Dienstkonto erstellen
- Geben Sie den Namen an:
YOUR_COMPANY-imgstudio-sa
- Rollen vergeben:
-
Cloud Datastore User
-
Logs Writer
-
Secret Manager Secret Accessor
-
Service Account Token Creator
-
Storage Object Creator
-
Storage Object Viewer
-
Vertex AI User
5 Stellen Sie den Cloud Run- Dienst bereit
- Container bereitstellen > Dienst
-
Deploy one revision from an existing container image
- Container-Image > Wählen Sie aus der Artifact-Registrierung das
latest
Image aus, das Sie gerade in Cloud Build erstellt haben - Name:
YOUR_COMPANY-imgstudio-app
- Legen Sie Ihre Region fest (z. B.
europe-west9
) - Authentifizierung : Authentifizierung erforderlich
- Eingangskontrolle >
Internal
> Allow traffic from external Application Load Balancers
- Container(s) > Containerhafen:
3000
- Sicherheit > Dienstkonto:
YOUR_COMPANY-imgstudio-sa
- > Erstellen
- Hinweis: Wenn Sie versuchen, auf die veröffentlichte URL für den neuen Dienst zuzugreifen, sollten Sie die Fehlermeldung „Fehler: Seite nicht gefunden“ erhalten. Dies liegt daran, dass wir nur den Eingang für externen Datenverkehr von einem Load Balancer zulassen
6 Gewähren Sie IAP- Berechtigungen für den Cloud Run-Dienst
- Erstellen Sie die Adresse des IAP-Dienstkontos
- Gehen Sie oben rechts in der Konsole auf das Shell-Symbol „Cloud Shell aktivieren“.
- Warten Sie, bis die Maschine eingerichtet ist
- Verwenden Sie im Terminal diesen Befehl und kopieren Sie die Adresse des Ausgabedienstkontos
-
gcloud beta services identity create --service=iap.googleapis.com --project=PROJECT_ID
- Das Format der Ausgabe, die Sie kopieren können, sollte
[email protected]
sein
- Gehen Sie zu Cloud Run und aktivieren Sie in der Liste „Dienste“ das Kontrollkästchen neben dem Namen Ihres Dienstes
- Klicken Sie auf Berechtigungen > Prinzipal hinzufügen
- Weisen Sie dem zuvor erstellten/abgerufenen IAP-Dienstkonto die Rolle
Cloud Run Invoker
zu
7 DNS-Zone erstellen
- Netzwerkdienst > Cloud DNS
- > Zone erstellen
- Füllen Sie das Formular aus
- Zonenname:
imgstudio
- DNS-Name :
imgstudio.YOUR_COMPANY_DOMAIN
- DNSSEC:
Off
- Cloud-Protokollierung:
Off
- Sobald die DNS-Weitergabe abgeschlossen ist, überprüfen Sie die Nameserver der DNS-verwalteten Zone mit dem folgenden Befehl (der Abschluss kann mehrere Stunden dauern).
-
dig imgstudio.YOUR_COMPANY_DOMAIN NS +short
8 Erstellen Sie einen Load Balancer und ein SSL-Zertifikat
- Netzwerkdienst > Lastausgleich
- > Load Balancer erstellen
- Wählen:
- Typ des Load Balancers :
Application Load Balancer (HTTP/HTTPS)
- Öffentlich zugänglich oder intern :
Public Facing (external)
- Global oder einzelne Region :
Global
- Load Balancer-Generierung :
Global external Application Load Balancer
- > Konfigurieren
- Load-Balancer-Name:
YOUR_COMPANY-imgstudio-lb
- Frontend-Konfiguration:
- Protokoll :
HTTPS
- Die IP-Adresse kann
Ephemeral
bleiben (Sie können auch eine statische IP konfigurieren) - Dropdown-Liste „Zertifikat“ > Neues Zertifikat erstellen
- Name:
YOUR_COMPANY-imgstudio-cert
- > Erstellen Sie ein von Google verwaltetes Zertifikat
- Domäne 1 :
imgstudio.YOUR_COMPANY_DOMAIN
- > Erstellen
- > Fertig
- Backend-Konfiguration
- Backend-Dienste und Backend-Buckets > Erstellen Sie einen Backend-Dienst
- Name:
YOUR_COMPANY-imgstudio-back
- Backend-Typ :
Serverless Network Endpoint Group
> Fertig - Backends > Neues Backend > Dropdown-Liste „Serverlose Netzwerk-Endpunktgruppen“ > Serverlose Netzwerk-Endpunktgruppe erstellen
- Name:
YOUR_COMPANY-imgstudio-neg
- Region: die Region, in der der Cloud Run-Dienst bereitgestellt wurde (z. B.
europe-west9
) - Endpunktgruppentyp des serverlosen Netzwerks > Cloud Run > Dienst auswählen >
YOUR_COMPANY-imgstudio-app
> Erstellen - Cloud CDN aktivieren >
Off
- > Erstellen
- Überprüfen Sie die Load Balancer-Konfiguration
- > Erstellen
9 Erstellen Sie einen DNS-Eintrag für das Load Balancer-Frontend
- Netzwerkdienste > Lastenausgleich, wählen Sie Ihren Lastenausgleich
YOUR_COMPANY-imgstudio-lb
aus - Details > Frontend > IP-Port
- Notieren Sie sich die IP-Adresse
- Netzwerkdienste > Cloud DNS, wählen Sie Ihre DNS-Zone
imgstudio
aus - Datensatzsätze > Standard hinzufügen
- Datensatzsatz erstellen
- DNS-Name:
imgstudio.YOUR_COMPANY_DOMAIN
- IPv4-Adresse : Ihre Load-Balancer-IP-Adresse
- > Erstellen
10 IAP aktivieren und Benutzerzugriff gewähren
- Sicherheit > Identitätsbewusster Proxy
- Aktivieren Sie IAP für Ihren Backend-Dienst
YOUR_COMPANY-imgstudio-back
- Aktivieren Sie das Kontrollkästchen neben Ihrem Dienst und dann > Prinzipal hinzufügen
- Geben Sie die Adresse des Benutzers ( oder der Gruppe ) ein, dem Sie Zugriff auf imgstudio gewähren möchten
- Weisen Sie die Rolle
IAP-secured Web App User
zu, > Speichern
11 Firestore- Datenbankerstellung
- Firestore > Datenbank erstellen
- Firestore- Modus :
Native mode
, > Weiter - Datenbank- ID :
(default)
( es ist sehr wichtig, dass dies so bleibt ) - Standorttyp:
Region
- Region: Ihre gewünschte Region (z. B.
europe-west9
in Paris) - Sichere Regeln:
Production rules
- Firestore > Indizes > Zusammengesetzte Indizes > Index erstellen
- Sammlungs-ID :
metadata
- Zu indizierende Felder
- Feldpfad 1:
combinedFilters
, Indexoptionen 1: Array contains
- Feldpfad 2:
timestamp
, Indexoptionen 2: Descending
- Feldpfad 3:
__name__
, Indexoptionen 3: Descending
- Abfragebereich :
Collection
- > Erstellen
- Warten Sie, bis der Index erfolgreich erstellt wurde!
- Lassen Sie uns Sicherheitsregeln für Ihre Datenbank einrichten und nur Ihrem Cloud Run-Dienstkonto den Zugriff darauf erlauben
- Gehen Sie in einem neuen Tab zu
-
https://console.firebase.google.com/project/PROJECT_ID/firestore/databases/-default-/rules
- Befolgen Sie bei Bedarf die Schritte zum Einrichten Ihres Firebase-Projekts
- Gehen Sie unter Firestore-Datenbank > Regeln zum Editor für Sicherheitsregeln
- Schreiben Sie den folgenden Inhalt. Vergessen Sie nicht,
YOUR_COMPANY
und PROJECT_ID
im Cloud Run-Dienstkonto zu ersetzen. 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;
}}}
- > Veröffentlichen