目前我正在尝试将使用 AWS Api Gateway+Lambda 的基于 Lambda 的服务转换为在 Fargate 中运行的 Docker 版本,现在我对如何处理 AWS 权限感到困惑。对于 lambda,我刚刚分配了一个角色并使用 AWS V3 SDK 来访问(即 S3)。现在的效果是否完全相同?我是否必须关心令牌过期(会话令牌、秘密访问密钥和访问密钥 id),还是这一切都由 sdk 处理?
import { S3Client } from "@aws-sdk/client-s3";
const client = new S3Client({
region: process.env.BUCKET_REGION,
});
您所要做的就是分配一个与ECS任务角色具有相似权限(甚至相同角色)的角色。一旦您这样做,您问题中的代码将完全相同。您不必担心令牌过期。
请注意,所需的ECS 任务执行角色 是 ECS 服务用于部署应用程序的角色。该角色授予它访问 ECR 等内容的权限。可选的“ECS 任务角色”是提供给在 ECS 任务中运行的代码的角色。人们经常将两者混淆。