雲端供應商變得越來越重要,即使是基本的熟悉度也是一個顯著的優勢。本文探討了 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中文網其他相關文章!