Gérer les ressources de fonction à l'aide de contraintes personnalisées

Cette page fournit des informations supplémentaires pour définir des contraintes personnalisées sur les fonctions créées à l'aide de l'API Cloud Functions v2, par exemple à l'aide des commandes gcloud functions.

Limites

Les limites suivantes s'appliquent à l'utilisation de règles d'administration personnalisées pour les fonctions de l'API Cloud Functions v2 :

  • Disponibles uniquement sur l'API Cloud Functions v2.
  • Elles ne s'appliqueront pas à Cloud Run Functions (1re génération).
  • Elles ne protègent les fonctions que lorsque vous utilisez l'API Cloud Functions v2. Vous pouvez également modifier les fonctions Cloud Run à partir de l'API Cloud Run. Pour une protection supplémentaire, vous devrez peut-être également appliquer des contraintes personnalisées sur Cloud Run.

Exemples courants de règles d'administration

Le tableau suivant fournit la syntaxe de certaines règles d'administration personnalisées qui pourraient vous être utiles :

Description Syntaxe de la contrainte
Empêcher la création de fonctions dans une langue spécifique
    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
Exiger que les fonctions utilisent un pool de nœuds de calcul spécifique
    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
Remplacer WORKER_POOL par le nom de votre pool de nœuds de calcul Cloud Build.
Exiger que les fonctions stockent toutes les images de conteneur dans un dépôt d'images spécifique
    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
Remplacer REPO_PATH par l'URI de l'URL du dépôt d'images dans lequel vous souhaitez que toutes les fonctions stockent leurs images de conteneur.

Étapes suivantes