La CLI scw pilote toutes vos ressources Scaleway depuis le terminal, du simple scw version jusqu'au déploiement d'un cluster. Ce guide s'adresse aux débutants sur Scaleway qui savent déjà utiliser un terminal : en une vingtaine de minutes, vous saurez installer l'outil en vérifiant son intégrité, vous connecter avec une clé API ou par le navigateur, jongler entre plusieurs profils, comprendre qui l'emporte entre une variable d'environnement et le fichier de configuration, et exploiter les sorties JSON. Vous apprendrez aussi une chose que la plupart des guides oublient : une commande peut ne pas exister dans votre version, et comment le savoir avant de perdre une heure.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »Niveau : débutant. Prérequis : un compte Scaleway et un terminal.
À la fin de ce guide, vous saurez :
- Installer
scwen vérifiant l'intégrité du binaire - Vous connecter avec
scw initouscw login, et prouver que la clé fonctionne - Comprendre où vit la configuration et l'ordre de priorité entre ses sources
- Gérer plusieurs profils pour isoler un compte de lab
- Choisir votre région et votre zone par défaut
- Exploiter les sorties JSON et vérifier qu'une commande existe dans votre version
Prérequis
Section intitulée « Prérequis »Avant de commencer, réunissez les éléments suivants :
- Un compte Scaleway actif, connecté à la console.
- Une clé API (couple access key et secret key) créée à la leçon précédente, avec une date d'expiration.
- Un terminal sous Linux, macOS ou Windows.
Comment installer la CLI Scaleway ?
Section intitulée « Comment installer la CLI Scaleway ? »Cette leçon a été validée avec scw 2.62.0, publiée le 1er septembre 2026 ; le dépôt sort une version toutes les deux à trois semaines, et chacune est accompagnée d'un fichier SHA256SUMS. La version courante se lit sur la page des releases du dépôt, jamais ici : une page qui annonce « la dernière version » est périmée dès la publication suivante. Choisissez la méthode adaptée à votre système. Évitez les scripts d'installation « tout-en-un » exécutés à l'aveugle : préférez un gestionnaire de paquets ou un binaire dont vous vérifiez la somme de contrôle.
Téléchargez le binaire, vérifiez sa somme SHA256, puis installez-le. Cette vérification garantit que le fichier n'a pas été altéré pendant le transfert.
# Version cibleVERSION=2.62.0# Binaire Linux amd64 + fichier de sommes de contrôlecurl -fsSLO "https://github.com/scaleway/scaleway-cli/releases/download/v${VERSION}/scaleway-cli_${VERSION}_linux_amd64"curl -fsSLO "https://github.com/scaleway/scaleway-cli/releases/download/v${VERSION}/SHA256SUMS"# Vérifier l'intégrité (la ligne du binaire doit afficher OK)sha256sum --ignore-missing -c SHA256SUMS# Installer dans le PATHsudo install -m 0755 "scaleway-cli_${VERSION}_linux_amd64" /usr/local/bin/scwscw versionLa commande sha256sum -c doit afficher scaleway-cli_2.62.0_linux_amd64: OK. Si elle affiche FAILED, ne l'installez pas et retéléchargez. Reproduit le 2026-09-08 : la vérification passe, et scw version affiche 2.62.0, BuildDate 2026-09-01T09:56:07Z, GoVersion go1.27.0. Un binaire linux_arm64 existe pour les machines ARM.
Avec Homebrew, installez la formule officielle scw. Les mises à jour suivront votre brew upgrade.
brew install scwscw versionSur Windows, installez la CLI via winget, ou téléchargez le binaire .exe depuis les releases GitHub (windows_amd64.exe, windows_arm64.exe) et vérifiez-le avec SHA256SUMS.
winget install scwscw versionComment se connecter : scw init ou scw login ?
Section intitulée « Comment se connecter : scw init ou scw login ? »Deux commandes initialisent le profil actif : scw init, qui demande la clé API au clavier, et scw login, qui ouvre une page web et attend que vous vous y connectiez. Les deux écrivent le même fichier de configuration. scw init vous demande successivement votre secret key, votre access key et votre organisation, vous propose le projet par défaut associé à la clé, puis propose d'activer l'autocomplétion.
scw initCollez la secret key créée dans la console. Avec scw login, aucune saisie : le navigateur s'ouvre, vous vous connectez, et le profil est configuré. Le tableau se lit par la colonne Choix : il dit laquelle des deux commandes convient à votre situation.
| Besoin | Choix | Pourquoi |
|---|---|---|
| Un poste avec navigateur, première connexion | scw login | aucune clé à copier, profil écrit pour vous |
| Un serveur sans navigateur, une session SSH | scw init | la clé se colle au clavier, ou se passe par variables SCW_* |
| Une CI, un conteneur | ni l'un ni l'autre : variables d'environnement SCW_ACCESS_KEY et SCW_SECRET_KEY | pas de fichier à écrire, secrets injectés par la plateforme |
| Un second compte ou un lab isolé | scw init -p lab (profil nommé) | le profil courant reste intact |
À la fin, vérifiez que tout est cohérent :
scw config validateLa sortie doit indiquer que la configuration est valide. Pour confirmer que vos identifiants fonctionnent réellement contre l'API, listez une ressource sans risque :
scw account project listVous devez voir votre projet par défaut. Si la commande renvoie une erreur d'authentification, votre clé API est probablement erronée, expirée ou révoquée : recréez-en une dans la console. C'est la preuve de la connexion ; scw config validate ne vérifie que la forme du fichier, pas la validité de la clé.
Où vit la configuration, et qui l'emporte ?
Section intitulée « Où vit la configuration, et qui l'emporte ? »La configuration provient de trois sources, et l'ordre de priorité est fixe : les variables d'environnement l'emportent sur le profil sélectionné, qui l'emporte sur le profil par défaut du fichier. Ce moteur de configuration est commun à la CLI, au provider Terraform et aux SDK Scaleway : comprendre cet ordre évite les surprises du type « je ne suis pas sur le bon compte » dans les trois outils à la fois.
Le fichier de configuration est recherché dans cet ordre :
$SCW_CONFIG_PATH$XDG_CONFIG_HOME/scw/config.yaml$HOME/.config/scw/config.yaml$USERPROFILE/.config/scw/config.yaml(Windows)
Les variables reconnues les plus utiles :
| Variable | Rôle |
|---|---|
SCW_ACCESS_KEY | La access key de votre clé API |
SCW_SECRET_KEY | La secret key de votre clé API |
SCW_DEFAULT_ORGANIZATION_ID | L'organisation par défaut |
SCW_DEFAULT_PROJECT_ID | Le projet par défaut |
SCW_DEFAULT_REGION | La région par défaut |
SCW_DEFAULT_ZONE | La zone par défaut |
SCW_PROFILE | Le profil à utiliser |
SCW_CONFIG_PATH | L'emplacement du fichier de configuration |
Vous consultez et modifiez ces valeurs avec scw config :
# Lire la région par défaut du profil courantscw config get default-region# Changer la zone par défautscw config set default-zone=fr-par-2scw config get default-zoneLa dernière commande doit renvoyer fr-par-2. Si elle renvoie autre chose, une variable SCW_DEFAULT_ZONE est exportée dans votre shell et écrase le fichier : env | grep SCW_ la montrera. C'est la source numéro un de confusion, et elle se diagnostique en une commande.
Gérer plusieurs profils
Section intitulée « Gérer plusieurs profils »Un profil est un jeu d'identifiants et de réglages par défaut ; les profils sont indispensables pour séparer un compte de lab d'un compte de production, ou travailler sur plusieurs organisations sans mélanger les ressources.
Listez les profils nommés existants :
scw config profile listLa sortie affiche un tableau avec, pour chaque profil, sa zone, sa région, son projet et son organisation par défaut. Vous ciblez un profil pour une commande donnée avec l'option -p, ou pour toute une session avec la variable SCW_PROFILE :
# Une seule commande sur le profil "lab"scw -p lab instance server list# Toute la session sur le profil "lab"export SCW_PROFILE=labChoisir votre région et votre zone
Section intitulée « Choisir votre région et votre zone »Scaleway organise ses ressources par régions (fr-par, nl-ams, pl-waw, it-mil) et par zones de disponibilité (fr-par-1 à fr-par-3, etc.), et fixer les bonnes valeurs par défaut évite l'erreur classique : créer une ressource dans la mauvaise localité.
# Définir Paris comme région et sa première zone par défautscw config set default-region=fr-parscw config set default-zone=fr-par-1Un détail qui compte : la liste des régions et des zones est figée dans le binaire au moment de sa compilation, dans l'aide de chaque commande (scw instance server create -h, ligne zone=). Une version ancienne ne connaîtra pas une zone ouverte après sa sortie, et l'aide peut être en retard sur l'API : le 2026-09-08, scw lb lb create -h n'énumérait pas it-mil-1 en 2.56.3 comme en 2.62.0, alors que scw lb lb-types list zone=it-mil-1 répondait. La leçon Régions et zones détaille ce relevé.
Activer l'autocomplétion
Section intitulée « Activer l'autocomplétion »L'autocomplétion complète les commandes, sous-commandes et arguments avec la touche Tab ; elle réduit fortement les erreurs de frappe sur une CLI de plusieurs centaines de commandes.
# Installe le script d'autocomplétion dans la configuration de votre shellscw autocomplete installRedémarrez votre terminal, puis tapez scw suivi de Tab : les namespaces disponibles (instance, object, k8s, rdb, ...) s'affichent. Si vous préférez inspecter le script avant de l'installer :
scw autocomplete script shell=bashExploiter les sorties JSON
Section intitulée « Exploiter les sorties JSON »Par défaut, scw produit une sortie lisible par un humain (-o human) ; pour scripter ou filtrer, demandez du JSON avec -o json et combinez avec jq ou Python.
# Nom et identifiant de chaque projet, en JSON filtréscw account project list -o json | jq '.[] | {name, id}'La sortie doit afficher un objet par projet avec ses deux champs. Cette approche rend vos commandes reproductibles et exploitables en pipeline CI/CD. Un piège mesuré le 2026-09-08 (2.56.3 et 2.62.0) : la forme du JSON varie d'une commande à l'autre. scw instance security-group create -o json renvoie l'objet enveloppé dans une clé security_group, alors que get et list renvoient l'objet à plat ; un script qui lit .id sur les deux sorties échoue sur l'une. Lisez toujours la sortie d'une commande avant de l'automatiser.
Une commande existe-t-elle dans votre version ?
Section intitulée « Une commande existe-t-elle dans votre version ? »La CLI ajoute des commandes à chaque release, et une commande documentée en ligne peut manquer dans le binaire que votre distribution vous a installé. Deux exemples mesurés le 2026-09-08 sur cette formation :
| Commande | Absente en | Présente à partir de | Origine |
|---|---|---|---|
scw billing budget, budget-alert, budget-alert-notification | 2.56.3 | 2.58.3 (24 juin 2026) | commit « feat(billing): enable budget CLI » du 19 juin 2026 |
scw object bucket-policy, bucket-lifecycle, bucket-cors | 2.56.3 | 2.62.0 (1er septembre 2026) | release notes v2.62.0 |
Le réflexe qui évite l'erreur : --list-sub-commands affiche l'arbre complet d'un namespace tel que votre binaire le connaît.
scw versionscw billing --list-sub-commandsLa seconde commande doit lister budget si votre version est au moins 2.58.3, et seulement charge, consumption, discount, invoice sinon. Toute page de cette formation qui utilise une commande récente indique la version à partir de laquelle elle existe.
Limites, quotas et plafonds
Section intitulée « Limites, quotas et plafonds »Ces valeurs cadrent l'outil lui-même, pas le compte ; elles viennent des releases GitHub, de la doc de référence de la CLI et du relevé du 2026-09-08.
| Plafond | Valeur | Source |
|---|---|---|
| Dernière version stable | 2.62.0, publiée le 1er septembre 2026 | releases GitHub |
| Rythme de sortie | 8 versions entre le 25 mai et le 1er septembre 2026, soit une toutes les deux semaines environ | releases GitHub |
| Sources de configuration, par priorité | variables d'environnement, puis profil SCW_PROFILE ou -p, puis profil par défaut du fichier | doc de référence de la CLI |
| Emplacements du fichier, par priorité | SCW_CONFIG_PATH, XDG_CONFIG_HOME, HOME/.config/scw/config.yaml | doc de référence de la CLI |
| Formats de sortie | human, json (scw help output pour les variantes) | aide de la CLI |
| Régions et zones connues | figées dans le binaire, lisibles dans scw <cmd> -h | relevé du 2026-09-08 |
Version minimale pour billing budget | 2.58.3 | dépôt scaleway-cli |
Version minimale pour object bucket-policy | 2.62.0 | release notes v2.62.0 |
Antipatterns à éviter
Section intitulée « Antipatterns à éviter »Ces erreurs ont un point commun : elles font agir la CLI sur un autre compte, une autre région ou une autre version que celle qu'on croit, sans message d'erreur.
| Antipattern | Conséquence | Discipline |
|---|---|---|
Installer par un script curl redirigé vers sh, sans vérification | binaire non contrôlé, exécuté avec vos droits | binaire + SHA256SUMS, ou gestionnaire de paquets |
Exporter SCW_SECRET_KEY dans ~/.bashrc « pour aller vite » | la variable écrase tous les profils, pour toujours, et finit dans un historique | profils dans config.yaml, variables réservées à la CI |
| Un seul profil pour le lab et la production | une commande de nettoyage lancée sur la prod | profil lab sur un projet dédié, -p lab ou SCW_PROFILE |
| Recopier une commande d'un blog sans vérifier sa version | unknown command, une heure perdue à chercher une faute de frappe | scw version puis --list-sub-commands |
Automatiser sur la sortie human | colonnes qui bougent d'une version à l'autre | -o json, et lire la forme réelle de chaque commande |
| Laisser la CLI vieillir dans une distribution | zones et commandes inconnues, aide en retard sur l'API | mise à jour à chaque release utile, vérifiée par SHA256 |
La CLI sous l'angle Well-Architected
Section intitulée « La CLI sous l'angle Well-Architected »Operational Excellence : une commande vaut une preuve
Section intitulée « Operational Excellence : une commande vaut une preuve »Pouvez-vous rejouer ce que vous avez fait ? Oui, si chaque action est une commande scw avec -o json, et si sa sortie a été lue. La discipline est de travailler en profil nommé, de vérifier la version au début de chaque session, et d'écrire les scripts contre le JSON, jamais contre le tableau lisible.
Security : la clé ne se copie qu'une fois
Section intitulée « Security : la clé ne se copie qu'une fois »Où vit votre secret key en ce moment ? Dans le fichier config.yaml du profil (permissions 600), ou dans le coffre de la CI, jamais dans un .bashrc ni dans un dépôt. La discipline est scw login ou scw init pour les humains, une application IAM avec sa propre clé pour les robots, et un binaire vérifié par somme de contrôle, parce qu'une CLI compromise voit passer toutes vos clés.
Pièges courants
Section intitulée « Pièges courants »Ces pièges reviennent souvent chez les débutants ; les deux premiers viennent d'issues du dépôt et ont été reproduits.
| Symptôme | Cause | Solution |
|---|---|---|
scw init ignore vos réponses ou utilise un mauvais compte | une variable SCW_ACCESS_KEY (ou SCW_SECRET_KEY) est exportée dans le shell et écrase le fichier (issue #1914) | unset SCW_ACCESS_KEY SCW_SECRET_KEY avant scw init, ou assumez l'usage des variables |
scw config set échoue au premier usage | aucun fichier config.yaml n'existe encore (issue #4661) | lancez d'abord scw init ou scw login, qui crée le fichier, puis scw config set |
| Une commande cible la mauvaise localité | région ou zone par défaut non fixée ou héritée d'une variable | scw config get default-region, puis env filtré sur SCW_, et fixer la bonne valeur |
unknown command sur une commande documentée | binaire antérieur à l'ajout de la commande | scw version, --list-sub-commands, mettre à jour |
scw config validate passe mais l'API refuse | la clé est expirée ou révoquée ; validate ne teste pas l'API | scw account project list, recréer la clé si besoin |
KeyError dans un script sur .id | forme JSON enveloppée sur create, à plat sur get | lire la sortie réelle, traiter les deux formes |
sha256sum: FAILED | binaire altéré ou téléchargement interrompu | retélécharger, ne jamais installer un binaire en échec |
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »scwpilote tout Scaleway depuis le terminal, avec un moteur de configuration commun à Terraform et aux SDK ; version courante 2.62.0 (1er septembre 2026).- Installez un binaire vérifié (
sha256sum --ignore-missing -c SHA256SUMSdoit répondreOK) ou passez par Homebrew ou winget. scw init(clé au clavier) ouscw login(navigateur) initialisent le profil ;scw account project listprouve que la clé fonctionne,scw config validatene vérifie que le fichier.- Ordre de priorité : variables d'environnement > profil
-pouSCW_PROFILE> profil par défaut du fichier ;env | grep SCW_diagnostique la plupart des confusions de compte. - Un profil dédié au lab (
-p lab), sur un projet dédié avec un budget plafonné, protège vos comptes importants. - Fixez région et zone par défaut ; les zones connues sont figées dans le binaire, l'API peut en servir davantage.
-o jsonrend vos commandes scriptables, mais la forme du JSON varie :security-group createenveloppe,getnon.scw <ns> --list-sub-commandsdit si une commande existe dans votre version :billing budgetdès 2.58.3,object bucket-policydès 2.62.0.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Régions et zones : Le relevé complet de ce que l'aide de chaque commande énumère, et ce que l'API sert réellement.
- Créer votre première Instance : La première commande de création, sa sortie JSON, et le teardown vérifié.
- Facturation, quotas et budget : Les commandes
scw billing, dont celles qui n'existent qu'à partir de la 2.58.3.
Ressources externes
Section intitulée « Ressources externes »Les pages officielles sur lesquelles cette leçon s'appuie, avec ce qu'on y cherche ; leur champ de validation date chaque fait cité.
- Releases de
scaleway/scaleway-cli: binaires,SHA256SUMSet notes de version de chaque release. - Scaleway CLI, environment variables : la liste des variables réservées et leur ordre de priorité.
- Scaleway CLI, configuration file : la structure du fichier
config.yamlet des profils. - Documentation des commandes
scw: la référence générée de chaque namespace, à jour de la branche principale.