云提供商变得越来越重要,即使是基本的熟悉度也是一个显着的优势。本文探讨了 SST,这是一种通过 AWS CDK 提供简化抽象的工具,可将代码转换为 CloudFormation 模板。
虽然深入研究 CloudFormation 不是重点,但了解其目的是关键:AWS CloudFormation 可自动执行 AWS 资源预置和配置,从而节省时间和精力。您可以在模板中定义所需的资源(例如 EC2 实例、RDS 数据库),CloudFormation 会处理其余部分,包括依赖关系管理。然而,创建 CloudFormation 模板可能违反直觉,这突显了 SST 等更高级别抽象的价值。
让我们使用 Next.js 来演示 SST 的强大功能及其与 CDK/CloudFormation 的交互。
创建 Next.js 应用程序:
<code class="language-bash">npx create-next-app@latest aws-nextjs cd aws-nextjs</code>
初始化 SST:
<code class="language-bash">npx sst@latest init</code>
SST 生成一个配置文件。 对于我们的例子:
<code class="language-javascript">const bucket = new sst.aws.Bucket("MyBucket", { access: "public" });</code>
这会在 CloudFormation 模板编译后创建一个名为“MyBucket”的可公开访问的 S3 存储桶。
配置 Next.js 以使用存储桶:
<code class="language-javascript">new sst.aws.Nextjs("MyWeb", { link: [bucket] })</code>
这将存储桶简洁地集成到 Next.js 部署中,管理底层基础设施细节。 源代码揭示了自动处理的更多基础设施组件:
AWS Lambda 函数是短暂的、事件驱动的函数。 CDK 提供了多种部署方法,但 SST 进一步简化了这一点:
https://www.php.cn/link/07d34e2419c61216a85a2156b2cf8ae4
SST 使用 esbuild 为 Node.js 配置、版本控制和捆绑选项提供抽象:
https://www.php.cn/link/07d34e2419c61216a85a2156b2cf8ae4#L717-L720
最终,这简化了部署:
<code class="language-javascript">return new lambda.Function( transformed[0], { ...transformed[1], ...(dev ? { description: transformed[1].description ? output(transformed[1].description).apply( (v) => `${v.substring(0, 240)} (live)`, ) : "live", runtime: "provided.al2023", architectures: ["x86_64"], } : {}), }, transformed[2], );</code>
SST 的抽象显着简化了流程,使基础设施管理更加高效。
以上是SST - 基础设施中可能合法的部分的详细内容。更多信息请关注PHP中文网其他相关文章!