gpt4 book ai didi

aws-sdk - AWS SDK 与 AWS CLI - AWS 云形成 - Terraform

转载 作者:行者123 更新时间:2023-12-03 07:29:37 27 4
gpt4 key购买 nike

对于在 AWS 云中配置基础设施,我们目前使用从 ansible 角色调用的云形成模板,但我们发现在增加基础设施的规模后,此代码在 GitHub 中变得非结构化或未模块化

Github上有意大利面条式的代码,结构不正确,可读性较差,新手不易挑选

特别是对于配置基础设施,我发现维护用特定于领域的语言(如 ansible、terraform、cloudformation 等)编写的代码...对于 GitHub 中的代码的长期维护来说并不是一个好主意,因为为了实现完全自动化,您可以结合使用这些技术。

理念是,aws sdk 代码在 GitHub 中看起来更加结构化,因为它提供了很多隐藏实现细节的抽象。

当然,配置代码与在配置的基础设施上运行的功能代码同样重要。

我们有信心,在从 Azure 迁移后,我们将坚持使用 AWS 云


领域特定语言与编程语言,

aws sdk 方法可以解决此问题吗?我们更喜欢 GoLang aws sdk,这样任何 GoLang 程序员都可以使用它..

最佳答案

如果我正确理解您的问题,您的意思是,由于您的 Cloud Formation 代码大小增加,已经变得难以管理,并且现在有兴趣使用 AWS SDK 定义它,以便您可以使用软件最佳实践来使代码更易于管理可维护。

与声明性语言相比,AWS SDK 的缺点是,现在您有责任确保当您单击“运行”时,它不仅仅会创建一个新实例。例如。当我通过 AWS SDK 部署 ec2 机器时,下次运行该代码时,它将部署一台新的 ec2 机器。 Cloud Formation 维护已部署内容的状态,因此可以更轻松地将增量更改部署到基础架构并恢复更改。

我建议您查看的是新的 AWS-CDK它允许您定义最终通过 Cloud Formation 运行的代码。它允许您编写 OO 风格的对象:

const vpc = new Vpc(this, 'vpc', {
cidr: '10.150.0.0/16',
natGateways: 2,
subnetConfiguration: [
{
name: 'Public',
subnetType: SubnetType.Public,
cidrMask: 20
},
{
name: 'Private',
subnetType: SubnetType.Private,
cidrMask: 22
},
{
name: 'Isolated',
subnetType: SubnetType.Isolated,
cidrMask: 22
}
]
});

遗憾的是,尚不支持 Golang。

关于aws-sdk - AWS SDK 与 AWS CLI - AWS 云形成 - Terraform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56702735/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com