Module terraform de création de ressources Google Cloud Function pour injection de données dans BigQuery
- Compte de service avec les bons rôles
- Bucket de transfert intermédiaire
- Dataset BigQuery
- TODO: Cloud Function V2
Le service account créé est de la forme sa-${var.project_name} et doit matcher : ^[a-z](?:[-a-z0-9]***4,28***[a-z0-9])$
- Authentification OIDC : Migrer vers Workload Identity Federation pour GitHub Actions afin d'éliminer le stockage des clés de compte de service (
GCP_CREDENTIALS). - Labels Standardisés : Injecter des labels par défaut sur toutes les ressources pour faciliter le suivi analytique du Billing Google Cloud.
No requirements.
| Name | Version |
|---|---|
| github | 6.3.1 |
| 5.44.2 | |
| google-beta | 5.44.2 |
| Name | Source | Version |
|---|---|---|
| google_cloud_run | git::https://github.com/GoogleCloudPlatform/cloud-foundation-fabric//modules/cloud-run-v2 | v44.1.0 |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| bucket_lifecycle_rules | Liste des règles de cycle de vie pour le bucket | list(object({ |
[] |
no |
| bucket_versioning_enabled | Active le versionnement sur le bucket | bool |
false |
no |
| cpu_limits | cpu maximal alloué au container https://cloud.google.com/run/docs/configuring/cpu?hl=fr | string |
"1000m" |
no |
| create_bucket | Création ou non d'un bucket associé au projet | bool |
true |
no |
| direction | direction du projet | string |
n/a | yes |
| env | Variables d'environnement pour Cloud Run | map(string) |
null |
no |
| env_from_key | Variables venant de secret d'environnement pour Cloud Run. La valeur est une map où la clé est le nom du secret. | map(object({ |
{} |
no |
| external_secret_project_id | ID du projet contenant les secrets externes. Requis si env_from_key est utilisé. | string |
"prj-dinum-p-secret-mgnt-aaf4" |
no |
| function_runtime | Runtime associé à la google cloud function | string |
"python311" |
no |
| group_name | Google groupe associé au projet | string |
null |
no |
| image | Image Cloud Run à déployer, si présent les ressources github ne sont pas créées | string |
null |
no |
| image_tag | Tag de l'image Cloud Run à déployer | string |
"latest" |
no |
| ip_fixe | Setup an ip fix for the function | bool |
false |
no |
| job_config | Cloud Run Job specific configuration. | object({ |
{} |
no |
| maintainers | List of maintainers for the GH repo | list(string) |
null |
no |
| memory_limits | Mémoire maximale allouée au container https://cloud.google.com/run/docs/configuring/memory-limits?hl=fr#terraform | string |
"512Mi" |
no |
| notification_channels | canal de notification pour les alertes sur cloud run | list(string) |
n/a | yes |
| project_id | id du projet | string |
n/a | yes |
| project_name | nom du projet | string |
n/a | yes |
| region | n/a | string |
"europe-west1" |
no |
| schedule | expression cron de schedule du job | string |
null |
no |
| service_config | Cloud Run service specific configuration options. | object({ |
{} |
no |
| storage_folders | Liste des dossiers (préfixes) à créer dans le bucket (uniquement si create_bucket est true) | list(string) |
[] |
no |
| timeout_seconds | timeout d'execution de la fonction | number |
300 |
no |
| type | Deploiement en mode service ou job (par défaut) | string |
"JOB" |
no |
| vpc | Utilise un vpc existant via un vpc connector serverless (ipfixe non supporté) | any |
null |
no |
| Name | Description |
|---|---|
| function_name | n/a |
| function_sa_email | n/a |
| ip | n/a |
| run_url | n/a |
| vpc_network_name | n/a |