
ChatGPT API 申請與使用全攻略
要在 AWS 上運行 Serverless 應用,首先需要一個項目。在此示例中,我們將使用 NestJS 來創建一個簡單的 Serverless 應用。
> nest new nestjs-serverless-demo
在項目創建后,我們需要安裝一些依賴來支持 Serverless 環境的運行。
pnpm add @vendia/serverless-express aws-lambda
pnpm add -D @types/aws-lambda serverless-offline
配置文件是 Serverless 應用的核心部分之一。我們需要創建一個 serverless.ts
文件來啟動和配置應用。
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import serverlessExpress from '@vendia/serverless-express';
import { Callback, Context, Handler} from 'aws-lambda';
let server: Handler;
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.init();
const expressApp = app.getHttpAdapter().getInstance();
return serverlessExpress({ app: expressApp });
}
export const handler: Handler = async (
event: any,
context: Context,
callback: Callback
) => {
server = server ?? (await bootstrap());
return server(event, context, callback);
};
完成以上配置后,我們可以通過以下命令啟動應用:
> npm i -g serverless
> sls offline
在本地測試成功后,我們可以將應用部署到 AWS。
> sls deploy --stage prod
AWS Lambda 是 Serverless 架構的核心組件之一,它允許用戶只為代碼的實際執行時間付費,同時自動處理所有計算資源的配置和擴展。
AWS Serverless 是一種無需管理服務器的云計算架構,用戶只需專注于應用程序的開發和部署,底層資源由 AWS 自動管理。
AWS Lambda 提供免費層,每月一百萬次調用和 400,000 GB-seconds 的計算時間是免費的,超出后按實際使用量收費。
根據應用的執行需求選擇合適的內存和超時配置,較高的內存配置會提供更多的 CPU 資源。
Serverless 可以減少基礎設施管理的復雜性,降低運營成本,并且提供按需擴展的靈活性。
AWS Lambda 可以與多種 AWS 服務集成,如 S3、DynamoDB、API Gateway 等,用于構建復雜的事件驅動架構。