You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将基于AWS SDK v2的SES工具TypeScript函数迁移至v3求助

AWS SDK v2 转 v3:SES 邮件工具手动迁移方案

以下是完成迁移后的完整代码,同时说明关键改动点:

迁移后代码

import { SESClient, SendEmailCommand } from "@aws-sdk/client-ses";
require('dotenv').config();

// 初始化SES v3客户端
const sesClient = new SESClient({
  region: process.env.AWS_REGION,
  credentials: {
    accessKeyId: process.env.AWS_ACCESS_KEY_ID!,
    secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY!
  }
});

interface EmailParams {
  Source: string;
  Destination: {
    ToAddresses: string[];
  };
  Message: {
    Subject: { Data: string };
    Body: { Html: { Data: string } };
  };
}

const sendEmail = async (params: EmailParams): Promise<void> => {
  // 构造SendEmail命令
  const sendEmailCommand = new SendEmailCommand(params);
  // 调用API,直接使用Promise异步逻辑
  await sesClient.send(sendEmailCommand);
};

export { sendEmail };

关键改动说明

  • 移除v2依赖:删掉了import AWS from 'aws-sdk'和全局配置AWS.config.update,v3不需要全局配置,客户端参数直接传入构造函数
  • 客户端替换:用SESClient替代v2的SES类,这是v3标准的客户端实例方式
  • 命令模式调用:v3所有API调用都需要构造对应的Command对象(这里是SendEmailCommand),再通过客户端的send()方法执行
  • 简化异步逻辑:client.send()本身返回Promise,不需要手动封装Promise回调,直接用await处理即可
  • 类型处理:环境变量后的!是TypeScript非空断言,确保类型安全,实际项目中可以添加环境变量存在性校验(比如判断变量是否为空,抛出错误)

内容的提问来源于stack exchange,提问作者mind3d

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:32:51