Besom - un balai fait de brindilles attachées autour d'un bâton. Les balais et les besoms sont utilisés pour la protection, pour éloigner les mauvais esprits et le nettoyage des espaces rituels. De plus, Besom est Scala SDK qui vous permet d'écrire des programmes Pulumi à Scala, d'ailleurs.

Besom Scala SDK pour Pulumi vous permet de tirer parti de la pleine puissance de l'infrastructure Pulumi comme plate-forme de code à l'aide du langage de programmation Scala. Scala Support est actuellement en version bêta publique .
Pulumi est une marque déposée de Pulumi Corporation.
Commencez avec Besom : Déployez une application simple dans AWS, Azure, Google Cloud ou Kubernetes à l'aide de Besom pour décrire l'infrastructure souhaitée à l'aide de Scala.
Besom Docs : Renseignez-vous sur les concepts Besom, suivez les guides d'utilisateur et consultez la documentation de référence.
Exemples : parcourez des exemples de Scala dans de nombreux nuages et scénarios, y compris des conteneurs, des serveurs et des infrastructures.
Installer Pulumi CLI :
Pour installer la dernière version de Pulumi, exécutez ce qui suit (voir les instructions d'installation complètes pour des options d'installation supplémentaires):
curl -fsSL https://get.pulumi.com/ | shInstallez Scala CLI :
Pour installer la dernière version de Scala CLI, exécutez ce qui suit (voir Instructions d'installation pour des options d'installation supplémentaires):
curl -sSLf https://scala-cli.virtuslab.org/get | shInstallez le plugin de langue Scala dans Pulumi :
Pour installer la dernière version du plugin de langue Scala, exécutez ce qui suit:
pulumi plugin install language scala 0.3.2 --server github://api.github.com/VirtusLab/besomCréer un nouveau projet :
Vous pouvez commencer à écrire votre code Besom à ce stade, mais pour vous aider à configurer Besom est livré avec des modèles Pulumi.
Vous pouvez commencer avec la pulumi new :
mkdir besom-demo && cd besom-demopulumi new https://github.com/VirtusLab/besom/tree/v0.3.2/templates/awsDéployer dans le cloud :
Exécutez pulumi up pour amener votre code au cloud:
pulumi up Cela rend toutes les ressources cloud déclarées dans votre code. Faites simplement des modifications à votre projet, et pulumi up ultime calculera le DIFF minimal pour déployer vos modifications.
Utilisez votre programme :
Maintenant que votre code est déployé, vous pouvez interagir avec lui. Dans l'exemple ci-dessus, nous pouvons trouver le nom du seau S3 nouvellement provisionné:
pulumi stack output bucketNameDétruisez vos ressources :
Une fois que vous avez terminé, vous pouvez supprimer toutes les ressources créées par votre programme:
pulumi destroy -yPour en savoir plus, rendez-vous sur virtuslab.github.io/besom pour beaucoup plus d'informations, y compris le tutoriel, les exemples et les concepts d'architecture et de programmation.
Pulumi.yaml est votre principal fichier Pulumi, expliqué ici.
project.scala est le fichier contenant vos dépendances pour Scala-Cli.
Main.scala est le point d'entrée de votre infrastructure sous forme de code.
Les ressources créées dans Pulumi.run { ... } Block seront créées par Pulumi.
Un exemple simple utilisant Scala CLI:
//> using scala " 3.3.1 "
//> using plugin " org.virtuslab::besom-compiler-plugin:0.3.2 "
//> using dep " org.virtuslab::besom-core:0.3.2 "
//> using dep " org.virtuslab::besom-aws:6.31.0-core.0.3 "
import besom . *
import besom . api . aws
@ main def run = Pulumi .run {
val bucket = aws.s3. Bucket ( " my-bucket " )
Stack .exports(
bucketName = bucket.bucket
)
}Note
Veuillez faire attention à vos dépendances, utiliser uniquement org.virtuslab::besom-* et non com.pulumi:* . Besom ne dépend pas du SDK Java Pulumi , il s'agit d'une implémentation complètement distincte.
Stack finale de votre programme.Context . Context est disponible en tant que présent (implicitement) dans le bloc Pulumi.run , mais vous pouvez également l'exiger explicitement dans l'une de vos fonctions avec (using Context) . Scala CLI est l'outil de construction recommandé, d'autres outils sont également pris en charge. Besom reconnaîtra les programmes Scala CLI et SBT et les recompilera automatiquement sans autre configuration. Les versions prises en charge sont:
D'autres outils de construction sont pris en charge via l'option de configuration runtime.options.binary qui peut pointer vers un pot pré-construit dans Pulumi.yaml , par exemple:
name : myproject
runtime :
name : scala
options :
binary : target/myproject-1.0-SNAPSHOT-jar-with-dependencies.jar Besom utilise Scala-CLI pour la compilation et l'exécution du projet.
Pour configurer la prise en charge de l'IDE pour un projet d'infrastructure à l'aide de Besom, exécutez cette commande dans le répertoire dans lequel les fichiers de projet Besom existent:
scala-cli setup-ide . À la suite de cette commande, un répertoire .bsp sera créé dans le répertoire du projet.
Lorsqu'ils sont ouverts, Intellij Idea et Metals devraient reconnaître automatiquement le projet et configurer l'IDE en conséquence.
SBT, Gradle et Maven sont également pris en charge à l'extérieur de la boîte, mais ne sont pas recommandés en raison d'une vitesse d'itération plus lente. L'utilisation du support sbt , gradle ou mvn est suggérée pour des situations où l'infrastructure gérée est ajoutée à un projet déjà existant qui utilise SBT comme outil de construction principal.
La configuration IDE pour sbt , gradle ou mvn fonctionne automatiquement avec IntelliJ Idea et Metals.
L'usine n'est pas encore soutenue.
Visitez contribution.md pour plus d'informations sur la construction de Besom à partir de la source ou des améliorations contribuant.