amazon-web-services - AWS 基础设施即代码文档
问题描述
最近,在尝试构建 terraform IaC 时,我发现无法让 API Gateway 正确路由到 Lambda。事实证明,在使用控制台时,AWS 会自动为 Lambda 分配网关所需的权限,但对于 terraform 中的 IaC,必须明确分配。
以上是可以理解的,但对于 AWS 和 terraform 的新手来说,会感到困惑。
是否有文档解释了基础设施连接中所需的组件,例如上面的那些?
我知道 AWS 文档和 terraform 文档经过深思熟虑,但没有一个真正解释(据我所见)在任何特定(无论多么常见或晦涩)设置中都需要某种资源。从一般搜索中推断出这些联系并不是一个很好的替代品。
解决方案
我不认为有一个文档在一个页面/区域中列出了“所有必需的组件”。但是你可以从不同的文档中获得不同的信息,正如你提到的,AWS 和 Terraform 在这方面做得很好。
谈到 AWS,就 API 网关中的权限而言,我可以想到两个有用的链接(第一个是从第二个引用的):
我同意这样一个事实,如果你真的不知道你想要实现什么,有时将 AWS 转换为 terraform 会产生很多猜测。通常,当我在 IaC 与 AWS 控制台中“理论上应该有效”的事情上受阻时,我会从问题中退后一步,并尝试找出我真正想在 AWS 世界中将哪种组件粘合在一起。然后通常事情会变得更加明显。
因为在 terraform 中,它实际上是在创建小型独立的基础设施并使它们协同工作。与其他 IaC 相比,根据我的经验,它比 CloudFormation 更精细。
帮助我更快地弄清楚事情的个人实践是阅读我在 Terraform 中工作的组件的每一个介绍文档。例如,如果我在 terraform IaC 中编写 lambda,我会快速阅读所有 lambda_xxxx_yyyy 介绍部分,以减少卡住并在出现故障时更快地做出反应。它通常对我有用。
推荐阅读
- sql - 优化大表上的 SELECT count(*)
- java - 在休眠中自定义列映射
- python - NameError:未定义名称“env”
- c# - 如何在 Blazor(子)组件中引用“@typeparam TModel”字段?
- .net - 每当我在 Visual Studio 2022 中运行任何 Web 应用程序时都会出现证书错误
- c++ - 从 constexpr 数组中获取 constexpr 属性的困难
- java - Ninja Framework:能够将 ArrayList 序列化为 JSON,但为什么不反之呢?
- javascript - 从嵌套对象数组连接字符串
- python - Django:上传的同名文件中没有随机字母
- postgresql - PostgreSQL 更新查询性能问题