Activation Fastly Domain-v1 pour les services Compute
Problème
Après création d'un domaine personnalisé avec fastly domain-v1 create --fqdn example.com --service-id XXX,
le domaine retourne une erreur 500 : « Fastly error: unknown domain: example.com. Please check that
this domain has been added to a service. » L'URL edgecompute.app fonctionne correctement.
Contexte / Conditions de déclenchement
- L'API des domaines classiques retourne : « The classic domains APIs are deprecated. Please use the domain management API »
fastly domain-v1 createréussit avec domain-id et service-id- La requête HTTP au domaine personnalisé retourne 500 « Domain Not Found »
- La vérification du domaine via API affiche
"activated": false, "verified": false - Le domaine edgecompute.app généré automatiquement fonctionne correctement
Solution
Étape 1 : Créer le domaine (s'il n'existe pas déjà)
fastly domain-v1 create --fqdn example.com --service-id YOUR_SERVICE_ID
Étape 2 : Créer une souscription TLS pour HTTPS
fastly tls-subscription create --domain example.com
Étape 3 : Obtenir les exigences de configuration DNS
curl -s -H "Fastly-Key: $(fastly profile token)" \
"https://api.fastly.com/tls/subscriptions/SUBSCRIPTION_ID?include=tls_authorizations" | jq
Recherchez le tableau challenges dans la réponse. Vous verrez des options comme :
managed-http-a: Enregistrements A pointant vers les IPs Fastly (utilisez pour les domaines apex)managed-http-cname: CNAME versx.sni.global.fastly.net(utilisez pour les sous-domaines)managed-dns: CNAME du défi ACME pour_acme-challenge.example.com
Étape 4 : Configurer DNS
Pour les domaines apex, ajoutez des enregistrements A :
example.com → 151.101.1.242
example.com → 151.101.65.242
example.com → 151.101.129.242
example.com → 151.101.193.242
Pour les sous-domaines, utilisez CNAME :
www.example.com → x.sni.global.fastly.net
Étape 5 : Attendre l'activation automatique
Une fois la propagation DNS effectuée, Fastly active automatiquement :
- Vérifie la propriété du domaine via défi HTTP
- Définit
verified: true - Définit
activated: true - Émet le certificat TLS (l'état passe de « pending » à « issued »)
Cela se produit généralement entre 1 et 5 minutes après la propagation DNS.
Étape 6 : Vérifier le statut d'activation
# Vérifier le statut du domaine
curl -s -H "Fastly-Key: $(fastly profile token)" \
"https://api.fastly.com/domain-management/v1/domains/DOMAIN_ID" | jq
# Doit afficher :
# "activated": true,
# "verified": true
# Vérifier le statut TLS
fastly tls-subscription describe --id SUBSCRIPTION_ID
# L'état doit être « issued »
Vérification
# Tester HTTP (doit rediriger vers HTTPS)
curl -I http://example.com
# Attendu : 308 Permanent Redirect vers https://
# Tester HTTPS
curl -s https://example.com | head -20
# Attendu : Votre contenu du site
Exemple
# 1. Créer un magasin KV et le lier au service
fastly kv-store create --name my-content
fastly resource-link create --resource-id KV_STORE_ID --service-id SERVICE_ID --version latest --autoclone
# 2. Compiler et déployer
fastly compute publish
# 3. Ajouter un domaine personnalisé
fastly domain-v1 create --fqdn mysite.com --service-id SERVICE_ID
# Résultat : Created domain 'mysite.com' (domain-id: ABC123, service-id: XYZ789)
# 4. Configurer TLS
fastly tls-subscription create --domain mysite.com
# Résultat : Created TLS Subscription 'SUB123' (Authority: certainly, Common Name: mysite.com)
# 5. Configurer DNS avec des enregistrements A (apex) ou CNAME (sous-domaine)
# 6. Attendre ~2-5 minutes pour la vérification
# 7. Le site est en ligne à https://mysite.com
Remarques
- Post-septembre 2025 : La commande
fastly domain create(API classique) est dépréciée. Utilisezfastly domain-v1à la place. - Pas d'activation manuelle : Contrairement aux domaines classiques, les domaines domain-v1 s'activent automatiquement après vérification DNS. Il n'y a pas d'appel API « activate » explicite.
- Indépendance de la version du service : Domain-v1 crée des « domaines sans version » qui ne sont pas liés à une version de service spécifique. Vous n'avez pas besoin de cloner/activer des versions pour ajouter des domaines.
- TLS est séparé : La création du domaine et la gestion du certificat TLS sont des opérations distinctes. Vous pouvez avoir un domaine sans TLS (HTTP uniquement) mais la plupart des configurations veulent les deux.
- Les IPs Fastly sont globales : Les IPs d'enregistrement A (151.101.x.242) sont les adresses anycast de Fastly et routent vers le nœud edge le plus proche.