Skip to content

[Nom du Binding Cloudflare]

[Nom du Binding Cloudflare]

Documentation technique

Type de ressource : Binding Cloudflare (KV / Queue / R2 / Service / Secret)
Fichier source : services/[worker-name]/wrangler.toml
Statut : [Actif / Déprécié / En développement]
Slice : [Numéro de la tranche verticale]
Version : 1.0

1. Vue d’ensemble (DOC)

1.1. Description

[Description concise du rôle de ce binding dans l’architecture L3]

1.2. Objectif

  • [Objectif principal : ex. stocker temporairement les soumissions de formulaires en cas de panne CRM]
  • [Bénéfice pour l’architecture : ex. résilience asynchrone sans bloquer l’utilisateur]

1.3. Caractéristiques

Propriété Valeur
Type de binding [KV / Queue / R2 / Service / Secret / D1 / Durable Object]
Nom du binding [BINDING_NAME]
Nom de la ressource [resource-name]
Environnements [Production / Staging / Preview]
Workers consommateurs [Liste des Workers qui utilisent ce binding]

2. Architecture et flux (DOC)

2.1. Diagramme de flux

[Worker Producteur]
│ • Écriture / Envoi
▼
[Binding Cloudflare]
│ • Stockage / File d'attente
▼
[Worker Consommateur]
│ • Lecture / Consommation
▼
[Action / Réponse]

2.2. Composants impliqués

Composant Rôle Type
[Worker producteur] Écriture dans le binding Worker L3
[Binding] Stockage / File d’attente Cloudflare Service
[Worker consommateur] Lecture / Consommation Worker L3

3. Configuration (CODE)

3.1. Configuration Wrangler (wrangler.toml)

services/[worker-name]/wrangler.toml
# Exemple pour KV
[[kv_namespaces]]
binding = "KV_BINDING"
id = "your-kv-namespace-id"
preview_id = "your-preview-kv-namespace-id"
# Exemple pour Queue (producer)
[[queues.producers]]
queue = "queue-name"
binding = "QUEUE_BINDING"
# Exemple pour Queue (consumer)
[[queues.consumers]]
queue = "queue-name"
max_batch_size = 10
max_batch_timeout = 30
# Exemple pour R2
[[r2_buckets]]
binding = "R2_BUCKET"
bucket_name = "bucket-name"
preview_bucket_name = "bucket-name-staging"
# Exemple pour Service Binding
[[services]]
binding = "SERVICE_BINDING"
service = "service-name"
environment = "production"

3.2. Création de la ressource

Terminal window
# Création d'un namespace KV
wrangler kv:namespace create "KV_BINDING" --env production
wrangler kv:namespace create "KV_BINDING" --env staging
# Création d'une Queue
wrangler queues create queue-name --env production
wrangler queues create queue-name --env staging
# Création d'un bucket R2
wrangler r2 bucket create bucket-name --env production
wrangler r2 bucket create bucket-name --env staging

4. Contrats d’Entrée/Sortie (SPEC)

4.1. Inputs (Écriture)

Paramètre Type Validation
key string Non vide
value string / object Sérialisable

4.2. Outputs (Lecture)

Élément Type Description
value string / object Données stockées

5. Tests attendus (TEST)

5.1. Tests unitaires

Scénario Description Résultat attendu
Écriture KV Stockage d’une valeur Valeur stockée
Lecture KV Récupération d’une valeur Valeur retournée

5.2. Tests d’intégration

Scénario Dépendances Description Résultat attendu
Flux producteur-consommateur Workers + Binding Écriture → Lecture Données transmises

6. Intégration (INTÉG)

6.1. Intégration avec les composants

Composant Type Rôle Méthode d’intégration
Worker producteur L3 Écriture Binding dans wrangler.toml
Worker consommateur L3 Lecture Binding dans wrangler.toml

6.2. Points d’attention

  • Les IDs doivent être cohérents entre environnements
  • Les bindings doivent être déclarés dans wrangler.toml
  • Les permissions doivent être configurées correctement

6.3. Vérification de cohérence

  • La ressource est créée dans Cloudflare
  • Les bindings sont accessibles depuis les Workers
  • Les tests passent

7. Sécurité

7.1. Mécanismes de sécurité

  • ✅ Isolation des données par environnement
  • ✅ Permissions granulaires
  • ✅ Chiffrement en transit

7.2. Règles de sécurité

  • ✅ Ne jamais stocker de données sensibles en clair
  • ✅ Utiliser les permissions minimales
  • ✅ Séparer les environnements de production et staging

8. Performance et limites

8.1. Limites par type

Type Limite Stratégie
KV 1 GB par namespace Partitionnement
Queue 100 000 messages par jour Batching
R2 Illimité (facturé à l’usage) Lifecycle rules

9. Débogage et troubleshooting

9.1. Problèmes courants

Symptôme Cause probable Solution
Binding inaccessible ID incorrect Vérifier wrangler.toml
Données perdues TTL expiré Configurer le TTL
Queue pleine Trop de messages Augmenter le batching

9.2. Commandes de debug

Terminal window
# Lister les namespaces KV
wrangler kv:namespace list
# Lister les buckets R2
wrangler r2 bucket list
# Lister les queues
wrangler queues list

10. Bonnes pratiques

10.1. Architecture

  • ✅ Séparer les environnements
  • ✅ Utiliser des noms cohérents
  • ✅ Documenter la structure des données

10.2. Maintenance

  • ✅ Surveiller l’utilisation
  • ✅ Configurer les lifecycle rules
  • ✅ Nettoyer les données obsolètes

11. Évolutions et roadmap

11.1. Améliorations planifiées

  • [Évolution 1]
  • [Évolution 2]

11.2. Limitations connues

  • ❌ [Limitation 1]
  • ❌ [Limitation 2]

12. Ressources liées

13. Historique des modifications

Date Version Description Auteur
YYYY-MM-DD 1.0 Création initiale [Nom]
Switch to normal mode

Contents