用Go语言编写的Terraform客户端库



对于Terraform插件,Terraform Core是用Go编程语言编写的静态编译二进制文件。

我的问题是客户端库总是需要用Go编写吗?

如果我们想为目标API创建一个新的提供者,而这个提供者没有Go客户端库,该怎么办?

看起来这篇文章回答了你的问题。关键段落是:

虽然可以编写非go提供程序,但由于Terraform使用gRPC协议,这比乍一看要困难得多。多个包,从编码器和解码器到Terraform的类型系统,都需要用这种新语言重新实现。Plugin SDK也需要重新实现,这不是一个简单的挑战。非go提供商将如何与Registry、terraform init和terraform生态系统的其他部分进行交互尚不清楚。

请注意,这并不一定会阻止这样一个插件的创建,因为你可以在Go中编写一个stub来调用库(CGO,通过RPC等)。

最新更新