Fermer

mai 6, 2020

CodeExchange – twilio-dev-container – Blogs Perficient


Twilio a introduit un nouveau programme permettant aux développeurs et partenaires de partager du code appelé CodeExchange . Cela fournit une liste organisée de contenu axé sur Twilio et nous faisons nos premiers pas pour contribuer à la communauté plus large avec des exemples et des outils. Ce message se concentrera sur l'intégration et comment obtenir un environnement de démarrage rapide avec Twilio et Docker.

Prérequis

Pour commencer, prévoyez de compléter les éléments suivants:

Problème

L'intégration des développeurs est un problème éternel. Nous devons nous assurer que les développeurs disposent des logiciels et des outils nécessaires pour réussir au travail et éviter de passer des jours à installer et configurer leurs machines. Il pourrait y avoir un guide complet ou une série de didacticiels vidéo qui fournissent une structure pour les nouveaux développeurs. Chaque projet peut également nécessiter la fourniture d'informations d'identification pour cibler des ressources environnementales spécifiques. Les outils changeront avec le temps, et nous voulons minimiser le temps d'installation rencontré. Comment soutenons-nous les développeurs sur différentes plates-formes et architectures? Pouvons-nous leur fournir un terrain de jeu sûr pour expérimenter les technologies que nous utilisons?

Docker et conteneurs

Si vous êtes nouveau dans Containers ou Docker, je vous suggère de trouver du matériel supplémentaire pour couvrir les avantages et les cas d'utilisation. Pour la portée de cet article, nous nous concentrerons sur l'utilisation de Docker et de conteneurs pour fournir un environnement réutilisable. Les conteneurs nous permettent de définir quels outils seront disponibles et de fournir toute configuration nécessaire de ces outils. À l'aide d'un conteneur, nous pouvons également choisir les fichiers et la configuration autorisés à entrer et à sortir de ce système. Dans cet esprit, nous pouvons mapper des variables d'environnement via des fichiers que nous pourrions mettre à jour à l'extérieur du conteneur et voir ces mises à jour immédiatement dans le conteneur. Nous pouvons également mapper dans les dossiers hôtes et toutes les modifications apportées dans le conteneur sont reflétées, ce qui permet de développer du code dans un outil et de l'exécuter dans le conteneur.

Docker et conteneurs – Google Amazon Microsoft

Environnement Twilio idéal

En nous appuyant sur le concept de conteneurs, nous pouvons commencer à décrire ce qui ferait un environnement Twilio idéal. Nous nous concentrerons sur l'activation de l'accès au Twilio Serverless Toolkit . Cela inclura la possibilité d'utiliser twilio-run et twilio-cli . L'utilisation de twilio-run permettra d'héberger et de déboguer les fonctions Twilio localement et peut être couplé avec ngrok pour se connecter aux webhooks du service Twilio. L'exécution des commandes twilio-cli nous gardera hors de la console Twilio où il est facile d'apporter des modifications sans but. Au sein de notre groupe, nous restons en dehors de la console Twilio autant que possible.

Collecte des informations d'identification

Pour commencer avec ces outils, nous devons rassembler SID DE COMPTE et AUTH TOKEN à partir du Tableau de bord de la console Twilio .

 Tableau de bord de la console Twilio

Dans le tableau de bord ngrok, nous pouvons trouver notre jeton d'authentification via le Authentification-> Votre navigation latérale Authtoken .

 Token d'authentification Ngrok

Nous prendrons les valeurs ci-dessus et les connecterons à la configuration qui sera utilisée dans le conteneur Docker.

 Covid 19

Twilio Dev Container

Pour tout rassembler et regrouper l'environnement souhaité, nous avons créé un conteneur Twilio. Notre groupe dispose désormais d'un GitHub public situé à – github.com/Perficient-CES où nous pouvons héberger du code partageable. Le twilio-dev-container vise à résoudre notre problème d'intégration et à fournir un environnement réutilisable pour le brainstorming Twilio. Une liste restreinte d'outils de nœuds est la suivante:

Le conteneur fournit un projet exécuté par défaut sur twilio dans / src / js / avec quelques scripts npm améliorés:

  • start – twilio-run avec modifications en direct et exécution sur le port 5566
  • remote – start command plus add ngrok tunnel
  • debug – remote command plus enable inspection (debugging) on ​​port 5858

Fonctionnalités supplémentaires:

  • Un exemple de configuration de lancement est fourni pour permettre le débogage de conteneur JS via inspect et Python via ptvsd trouvé dans le dossier .vscode
  • Mappage dans / scratch dossier non connecté à / src et ignoré lors de la validation [19659025] Mappage d'un volume sur / js / node_modules pour éviter que les modules conteneurs ne s'échappent vers le système hôte

Plus d'informations peuvent être trouvées dans le README.md .

sections, nous allons rapidement parcourir la configuration et l'utilisation générale.

Confi guration

Ces informations sont contenues dans le référentiel, mais elles sont toujours utiles pour couvrir les zones du conteneur qui nécessitent une configuration.

ACCOUNT_SID et AUTH_TOKEN

Les ACCOUNT_SID et AUTH_TOKEN de Twilio devra être placé dans deux emplacements:

 .env (ici)
/ src
    / js
        .env (ici) 

Il existe des fichiers .env.sample avec des entrées pour les variables d'environnement. Les noms sont spécifiques à chaque outil et sont utilisés comme suit:

  • twilio-cli
    • TWILIO_ACCOUNT_SID – ACCOUNT_SID
    • TWILIO_AUTH_TOKEN – AUTH_TOKEN
  • twilio-run
    • ACCOUNT_SID – ACCOUNT_SID
    • AUTH_TOKEN – AUTH_TOKEN

Nous devrons créer des fichiers .env aux mêmes emplacements avec les valeurs appropriées. Nous pouvons le faire en dupliquant les fichiers .env.sample et / ou en les renommant en .env.

ngrok

Nous voudrons ajouter une valeur authtoken au niveau supérieur Fichier ngrok.yml .

Utilisation

Il existe un dossier scripts avec des scripts conçus pour faciliter l'exécution du conteneur:

  • * – run – exécute le conteneur spécifique contenu dans le dossier, exposer les ports et plonger dans / bin / bash
  • * – rebuild – reconstruire les couches impliquées avec le conteneur
    • Utile lorsque quelque chose ne va pas et que cela fonctionnait, cela entraînera également la chute des dernières versions d'outils
  • * – delete-volume – supprime les volumes partagés créés par le conteneur

Avec la configuration ajoutée aux fichiers appropriés, nous pouvons démarrer le conteneur en exécutant la commande * -run pour notre plateforme spécifique. Pour les machines Windows, utilisez les fichiers .bat et pour tout autre système, utilisez les fichiers .sh .

 Terminal

Une fois dans le conteneur, nous sommes libre de pirater. Nous pourrions exécuter des commandes twilio-cli ou écrire une fonction Twilio le ciel est la limite. Une fois le conteneur terminé, nous pouvons revenir au terminal hôte en tapant exit .

Réflexions finales

Pour nos développeurs, pouvoir exécuter une seule commande et demander à Docker de rassembler les éléments nécessaires est en passe de faciliter certaines parties de notre processus d'intégration. Nous avons déjà quelques saveurs différentes de ces conteneurs qui se concentrent sur d'autres technologies, et ils font d'excellents terrains de jeux. L'avantage supplémentaire d'un filet de sécurité que si un script ou une commande casse l'environnement que le développeur peut simplement utiliser la même commande de démarrage est la cerise sur le gâteau.






Source link