Les exemples qui omettent
Sandbox.run(auth=...) utilisent un jeton d’accès à l’API CoreWeave provenant de CWSANDBOX_API_KEY. Pour l’authentification par clé API Forge, suivez Premiers pas et transmettez les AuthHeaders obtenus à l’opération.- HTTPS : la plateforme assure la terminaison TLS en périphérie avec un certificat qu’elle provisionne et renouvelle, puis transmet la requête à votre port en HTTP non chiffré.
- TLS passthrough : la plateforme achemine la connexion vers votre port au moyen de Server Name Indication (SNI), sans la déchiffrer. Votre charge de travail assure elle-même la terminaison TLS et gère ses propres certificats.
Comparer les deux types
Déclarer un point de terminaison
Déclarez les points de terminaison dans la listeservices lors de la création de la sandbox. Les ports restent fixes pendant toute la durée de vie de la sandbox, et aucun appel ne permet d’exposer un port sur une sandbox déjà en cours d’exécution.
Pour attribuer un point de terminaison à un service, définissez sur celui-ci visibility=PUBLIC ainsi qu’une valeur endpoint. Un service sans valeur endpoint écoute sur son port à l’intérieur de la sandbox, mais n’obtient aucune adresse publique.
Pour un point de terminaison HTTPS, définissez kind=EndpointKind.HTTPS et auth=EndpointAuth.OPEN :
kind=EndpointKind.TLS_PASSTHROUGH et laissez auth non défini. La commande que vous exécutez doit assurer elle-même la terminaison TLS sur le port, car la plateforme transfère la connexion sans la déchiffrer :
services :
- Les ports doivent être uniques, tout comme les noms que vous définissez. Les noms correspondent aux noms de ports de conteneur Kubernetes, qui doivent être uniques.
visibilitydoit valoirPUBLIClorsqueendpointest défini, et ne doit pas être défini dans le cas contraire. La visibilité seule ne crée ni point de terminaison ni adresse.protocoldoit valoirTCPou ne pas être défini. La plateforme rejette les points de terminaisonUDPetSCTP.- Omettez
authetrequest_timeout_secondsen mode TLS passthrough. PassezNoneplutôt que0: une valeur0est considérée comme définie, et la plateforme rejette alors l’appel de création. - Le nombre de services qu’une sandbox peut déclarer est plafonné par une limite de la plateforme. Ce plafond est défini par les opérateurs et généralement fixé à cinq dans les déploiements.
Lire l’adresse attribuée
La plateforme attribue l’adresse. Vous ne pouvez pas choisir le nom d’hôte ni fournir votre propre domaine. Récupérez-la depuis la sandbox plutôt que de la construire vous-même, car la zone DNS varie d’un cluster à l’autre et ne fait pas partie du contrat d’API. Les adresses en TLS passthrough sont fournies dansservice_addresses au format host:port, et les URL HTTPS dans service_urls. Les deux listes restent distinctes : un point de terminaison TLS n’apparaît jamais dans service_urls.
8443 et les clients se connectent à 443.
Les deux types d’adresses deviennent lisibles à des moments différents du démarrage de la sandbox :
- Une adresse TLS passthrough est attribuée dès la création de la sandbox : elle figure donc dans la réponse de création et reste disponible tant que la sandbox est en cours de création ou d’exécution.
- Une URL HTTPS reste vide tant que la sandbox n’a pas atteint l’état
RUNNINGet que sa route n’a pas de nom d’hôte. Appelezget_status()en boucle jusqu’à ce que l’URL apparaisse ou que votre propre délai expire. - Dans les deux cas, cela ne signifie pas que l’application est prête à servir. La plateforme n’attend pas que votre processus se lie au port pour signaler que la sandbox est en cours d’exécution : prévoyez donc une nouvelle tentative pour votre première connexion.
Se connecter à un point de terminaison TLS passthrough
Comme la plateforme ne déchiffre pas la connexion, le certificat reçu par un client est celui que présente votre charge de travail. Cela a deux conséquences pour le client :- Envoyez l’hôte du point de terminaison comme nom de serveur SNI. La plateforme achemine le trafic uniquement en fonction du SNI : une connexion qui l’omet, ou qui transmet un autre nom, n’atteint pas votre sandbox.
- Faites confiance au certificat de la charge de travail. Le nom d’hôte du point de terminaison est attribué par la plateforme ; un certificat que vous émettez vous-même ne lui correspond donc pas, sauf si vous l’émettez pour ce nom d’hôte. Configurez le client pour qu’il fasse confiance à votre propre autorité de certification, ou épinglez le certificat.
[ENDPOINT-ADDRESS] par l’adresse lue dans service_addresses, et [PATH-TO-CA-CERT] par le chemin d’accès à l’autorité de certification qui a signé le certificat de votre charge de travail :
Durée de vie du point de terminaison
Un point de terminaison existe aussi longtemps que la sandbox à laquelle il appartient :- Il est lié à la sandbox, et non à un Pod. Si le Pod sous-jacent redémarre, l’adresse ne change pas.
- La suppression de la sandbox entraîne celle du point de terminaison. L’adresse n’est pas transférée vers une autre sandbox, et toute nouvelle sandbox reçoit une nouvelle adresse.
- Rien n’est réservé d’une sandbox à l’autre. Vous ne pouvez pas conserver un nom d’hôte pour le réutiliser.
Résoudre les échecs de création
Si aucun exécuteur de votre flotte ne prend en charge le type de point de terminaison demandé, l’appel de création échoue plutôt que de démarrer une sandbox en abandonnant silencieusement le point de terminaison.Pages connexes
- Configuration du bac à sable : ressources, ports, secrets et délais d’expiration.
- Architecture des sandboxes : interactions entre les exécuteurs, les profils et le plan de contrôle.
- Cycle de vie d’une sandbox : les différents états par lesquels passe une sandbox.