[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)
# 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 = 10max_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
# Création d'un namespace KVwrangler kv:namespace create "KV_BINDING" --env productionwrangler kv:namespace create "KV_BINDING" --env staging
# Création d'une Queuewrangler queues create queue-name --env productionwrangler queues create queue-name --env staging
# Création d'un bucket R2wrangler r2 bucket create bucket-name --env productionwrangler r2 bucket create bucket-name --env staging4. 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
# Lister les namespaces KVwrangler kv:namespace list
# Lister les buckets R2wrangler r2 bucket list
# Lister les queueswrangler queues list10. 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
- Documentation Cloudflare : Bindings
13. Historique des modifications
| Date | Version | Description | Auteur |
|---|---|---|---|
| YYYY-MM-DD | 1.0 | Création initiale | [Nom] |