Besom-一根包木缠在棍子上的树枝制成的扫帚。扫帚和贝斯木丝用于保护,防止邪灵以及清洁仪式空间。另外,BESOM是Scala SDK,允许您偶然地在Scala中编写Pulumi程序。
Besom Scala SDK用于PULUMI,可让您使用Scala编程语言利用Pulumi基础架构作为代码平台的全部功能。 Scala支持目前正在公共Beta中。
Pulumi是Pulumi Corporation的注册商标。
开始使用Besom :使用Besom在AWS,Azure,Google Cloud或Kubernetes中部署一个简单的应用程序,以描述使用Scala的所需基础结构。
BESOM文档:了解Besom概念,遵循用户指导,然后咨询参考文档。
示例:在许多云和场景中浏览Scala示例,包括容器,无服务器和基础架构。
安装Pulumi CLI :
要安装最新的Pulumi版本,请运行以下内容(有关其他安装选项,请参见完整的安装说明):
curl -fsSL https://get.pulumi.com/ | sh
安装Scala CLI :
要安装最新的Scala CLI版本,请运行以下内容(有关其他安装选项,请参见安装说明):
curl -sSLf https://scala-cli.virtuslab.org/get | sh
在Pulumi中安装Scala语言插件:
要安装最新的Scala语言插件版本,请运行以下内容:
pulumi plugin install language scala 0.3.2 --server github://api.github.com/VirtusLab/besom
创建一个新项目:
您可以在这一点上开始编写Besom代码,但是为了帮助您设置Besom,请带有Pulumi模板。
您可以开始使用pulumi new
Command:
mkdir besom-demo && cd besom-demo
pulumi new https://github.com/VirtusLab/besom/tree/v0.3.2/templates/aws
部署到云:
运行pulumi up
以使您的代码进入云:
pulumi up
这使所有云资源在您的代码中声明。只需对您的项目进行编辑,然后随后的pulumi up
S将计算最小的差异以部署更改。
使用您的程序:
现在,您的代码已部署,您可以与之进行交互。在上面的示例中,我们可以找到新提供的S3存储桶的名称:
pulumi stack output bucketName
破坏您的资源:
完成后,您可以删除程序创建的所有资源:
pulumi destroy -y
要了解更多信息,请转到firtuslab.github.io/besom获取更多信息,包括教程,示例,架构和编程模型概念。
Pulumi.yaml
是您的主要pulumi文件,此处解释了。
project.scala
是包含Scala-CLI依赖项的文件。
Main.scala
是您作为代码的基础架构的切入点。
Pulumi.run { ... }
块中创建的资源将由Pulumi创建。
使用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
)
}
笔记
请注意您的依赖项,仅使用org.virtuslab::besom-*
而不是com.pulumi:*
。 Besom不取决于Pulumi Java SDK ,这是一个完全独立的实现。
Stack
结构中。Context
。 Context
在Pulumi.run
块中作为给定(隐式)可用,但是您也可以在任何功能中明确要求使用(using Context)
。 Scala CLI是推荐的构建工具,也支持其他工具。 Besom将识别Scala CLI和SBT程序,并在没有任何进一步配置的情况下自动重新编译它们。受支持的版本是:
其他构建工具通过runtime.options.binary
配置选项支持其他构建工具,该选项可以指向Pulumi.yaml
中的预先构建的JAR,例如:
name : myproject
runtime :
name : scala
options :
binary : target/myproject-1.0-SNAPSHOT-jar-with-dependencies.jar
Besom使用Scala-CLI进行项目汇编和执行。
为了在Besom Project Files的目录内执行此命令,为基础架构项目设置IDE支持:
scala-cli setup-ide .
由于此命令,将在项目目录中创建.bsp
目录。
打开时,Intellij Idea和Metals均应自动识别项目并相应地设置IDE。
SBT,Gradle和Maven也受到了接地外的支持,但由于迭代速度较慢而不建议使用。建议使用sbt
, gradle
或mvn
支持,以将托管基础架构添加到现有的现有项目中,该项目使用SBT作为主要的构建工具。
sbt
, gradle
或mvn
的IDE设置会自动与Intellij Idea和Metals一起使用。
工厂尚未得到支持。
请访问贡献.MD,以获取有关从源头构建BESOM或贡献改进的信息。