Wenn Sie Ihren Quellcode in Cloud Run bereitstellen, wird diese Quelle in einem Cloud Storage-Bucket gespeichert. Cloud Build erstellt dann automatisch Ihren Code in einem Container-Image und überträgt dieses Image per Push in eine Image-Registry. Jeder Build wird auf einem eigenen Worker ausgeführt. Cloud Run importiert das erstellte Image bei der Bereitstellung.
Wenn Sie den Build-Worker-Pool anpassen möchten, den Cloud Build für einen mit VPC Service Controls gesicherten Build-Kontext verwendet, können Sie den Worker-Pool anpassen. Diese Seite richtet sich an Plattformentwickler, die von der Quelle in Cloud Run bereitstellen, z. B. beim Bereitstellen einer Funktion und beim Konfigurieren privater Pools, die von Cloud Build verwendet werden.
Hinweise
Aktivieren Sie die Cloud Build API
gcloud services enable cloudbuild.googleapis.com
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Bereitstellen aus der Quelle benötigen:
- Cloud Run Source Developer (
roles/run.sourceDeveloper
) -
Service Account User (
roles/iam.serviceAccountUser
)
Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run Service mit Google Cloud APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.
Build mit privaten Pools sichern
Standardmäßig hat Cloud Build während des Build-Prozesses uneingeschränkten Internetzugriff. Wenn Sie einen VPC Service Controls-Perimeter (VPC SC) eingerichtet haben und den Zugriff des Builds auf Abhängigkeiten beschränken möchten, die im Perimeter gespeichert sind (z. B. npm-Pakete), können Sie die privaten Worker-Pools von Cloud Build verwenden.
Gehen Sie im Allgemeinen so vor, um einen privaten Pool einzurichten:
- Erstellen Sie Ihren privaten Worker-Pool. Siehe Private Pools erstellen und verwalten.
Konfigurieren Sie den VPC Service Controls-Perimeter. Siehe VPC Service Controls verwenden.
Wenn sich Ihr privater Worker-Pool in einem anderen Projekt als Ihr Cloud Run-Dienst befindet, müssen Sie dem Cloud Run-Dienst-Agent (
service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com
) die Rolle Cloud Build WorkerPool-Nutzer (cloudbuild.workerPoolUser
) zuweisen, damit der Cloud Build-Dienst auf den Worker-Pool zugreifen kann.gcloud projects add-iam-policy-binding PRIVATE_POOL_PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com \ --role roles/cloudbuild.workerPoolUser
Ersetzen Sie:
- PROJECT_NUMBER durch die Projektnummer, in der der Dienst ausgeführt wird.
- PRIVATE_POOL_PROJECT_ID durch die ID des Projekts, in dem sich der Worker-Pool befindet. Weitere Informationen finden Sie unter Builds in einem privaten Pool ausführen.
Stellen Sie Ihren Dienst von der Quelle zum Build mit einem privaten Pool bereit:
gcloud
So legen Sie einen privaten Pool fest, der beim Bereitstellen aus Quellcode erstellt werden soll:
gcloud beta run deploy SERVICE \ --source . \ --build-worker-pool WORKER_POOL
Ersetzen Sie:
- SERVICE durch den Namen Ihres Dienstes.
- WORKER_POOL durch den Namen des privaten Pools.
Wenn Sie eine Funktion bereitstellen, fügen Sie das Flag --function
mit dem Einstiegspunkt für die Funktion aus Ihrem Quellcode hinzu.
Build-Worker-Pools löschen
Sie können Build-Worker-Pools für vorhandene Dienste löschen.
gcloud
So löschen Sie den Cloud Build-Worker-Pool für Source-Bereitstellungen:
gcloud beta run deploy SERVICE \ --source . \ --clear-build-worker-pool WORKER_POOL
Ersetzen Sie:
- SERVICE durch den Namen Ihres Dienstes.
- WORKER_POOL durch den Namen des privaten Pools, den Sie löschen möchten.