Gestire le risorse delle funzioni utilizzando vincoli personalizzati

Questa pagina fornisce informazioni supplementari per l'impostazione di vincoli personalizzati sulle funzioni create utilizzando i comandi gcloud functions o l'API Cloud Functions v2.

Se hai creato o eseguito il deployment di funzioni utilizzando Cloud Run, consulta la guida Gestire i vincoli personalizzati per i progetti di Cloud Run per una descrizione dettagliata di come utilizzare i vincoli personalizzati.

Limitazioni

Le seguenti limitazioni si applicano all'utilizzo dei criteri dell'organizzazione personalizzati per le funzioni dell'API Cloud Functions v2:

  • Non viene applicato per i nomi delle istanze VM quando utilizzi l'API di inserimento collettivo.
  • Viene applicato solo al metodo CREATE per le risorse Compute Engine.
  • Disponibile solo nell'API Cloud Functions v2. Non possono essere applicati alle funzioni Cloud Run (1ª generazione.).
  • Protegge le funzioni solo quando si utilizza l'API Cloud Functions v2. Le funzioni Cloud Run possono essere modificate anche dall'API Cloud Run. Per una maggiore protezione, potresti dover anche applicare vincoli personalizzati su Cloud Run.

Esempi di criteri comuni per le organizzazioni

La seguente tabella fornisce la sintassi di alcuni criteri dell'organizzazione personalizzati che potresti trovare utili:

Descrizione Sintassi dei vincoli
Impedire la creazione di funzioni con un linguaggio specifico
    name: organizations/ORGANIZATION_ID/customConstraints/custom.cloudFunctionRuntimeBlock
    resource_types: cloudfunctions.googleapis.com/Function
    method_types:
      - CREATE
      - UPDATE
    condition: resource.buildConfig.runtime == "python312"
    action_type: DENY
    display_name: Deny functions using Python 3.12
    description: Functions cannot be created with Python 3.12 as the language runtime
Richiedere alle funzioni di utilizzare un pool di worker specifico
    name: organizations/ORGANIZATION_ID/customConstraints/custom.cloudFunctionsWorkerPool
    resource_types: cloudfunctions.googleapis.com/Function
    method_types:
      - CREATE
      - UPDATE
    condition: resource.buildConfig.workerPool == "WORKER_POOL"
    action_type: DENY
    display_name: Require worker pool
    description: Functions must use a worker pool 
Sostituisci WORKER_POOL con il nome del pool di worker di Cloud Build.
Richiedi che le funzioni memorizzino tutte le immagini container in un repository di immagini specifico
    name: organizations/ORGANIZATION_ID/customConstraints/custom.cloudFunctionsRepository
    resource_types: cloudfunctions.googleapis.com/Function
    method_types:
      - CREATE
      - UPDATE
    condition: resource.buildConfig.dockerRepository.startsWith("REPO_PATH")
    action_type: DENY
    display_name: Image repository constraint
    description: Functions must push images to a central image repository under REPO_PATH
Sostituisci REPO_PATH con l'URI dell'URL del repository di immagini in cui vuoi che tutte le funzioni memorizzino le proprie immagini container.

Passaggi successivi