【问题标题】:Run computation on user AWS account在用户 AWS 账户上运行计算
【发布时间】:2025-12-23 14:50:07
【问题描述】:

我有一个 Node.js 和 Vue.js 项目,用户将在其中提供他的 AWS 凭证、指向某些在线资源(存储大量数据)的指针,以及对这些数据的一些算法将在他/她提供的用户 AWS 账户上运行。

为此,我有两个困难,我想寻求一些帮助。

首先,我想在云中部署一些简单的 javascript 代码,以测试一切正常。最简单的方法是什么? npm 包 aws-sdkaws-lambda 如何帮助我?我是否必须提供我的借记卡详细信息才能使用 AWS 来进行快速测试?

第二件事是,是否有 AWS 提供的授权库/工具,例如 Facebook,因此用户只需在窗口中输入他/她的用户名和密码,他/她就会自动获得授权(使用 OAuth ,可能这就是他们正在使用的)。

此外,如果我能就如何解决这个问题提供任何一般性建议,我将不胜感激,我如何在云用户帐户的大量数据上运行代码?也许另一个云平台更合适?谢谢!

【问题讨论】:

  • 关于他们提供的所有 AWS 功能的文档太多了,我似乎有点迷失了。
  • 我相信你的问题更适合serverfault.com

标签: javascript node.js amazon-web-services cloud


【解决方案1】:

这是一个大问题。因此,我将为您提供一些建议以供您进一步阅读:

  • 首先,决定您的 Web 应用是基于服务器(EC2、Node.js 和 Express)还是无服务器(CloudFront、API Gateway、Lambda 和 S3)
  • 了解如何使用 Cognito 获取与社交提供商登录(例如 Facebook 或 Google)关联的 AWS 凭证
  • 要在其他用户的 AWS 账户中操作,您应该利用跨账户 IAM 角色(他们创建一个角色并授予您代入该角色的权限)
  • 关于针对大量数据运行代码的问题,该数据的存储库通常是 S3 或在某些情况下可能是 Redshift,计算环境可以是 Lambda(短生命周期、无服务器)、EMR(集群 Hadoop、Spark 等)、EC2(普通 VM)、Athena(对 S3 中的内容进行 SQL 查询)或 ECS(容器)。您没有提供足够的信息来帮助决定哪个可能更合适。

最简单的测试选项可能是 S3(用于存储)和 EC2(在免费层中使用 t2.micro 实例,就像在任何其他 Linux 环境中一样部署您的 Web 应用程序)。

是的,要使用 AWS,您需要一个帐户,而要获得一个帐户,您需要提供一张信用卡。但是,在您的第一年会有大量的Free Tier

【讨论】:

  • 我认为我们这里没有足够的信息来回答任何一种方式。如果您真的想抽象出这些平台,那么请考虑他们的 PaaS 产品(AWS Elastic Beanstalk 或 Google App Engine),或者更好的是容器和 Kubernetes。
  • 好的,我决定坚持使用 AWS。我提供了我的卡详细信息,现在我正在尝试做一件事:在 Lambda 上运行一段随机代码,只提供云帐户所有者的用户名和密码。你知道怎么做吗 ?感谢您的时间和回答! :)
  • 您的客户不应与您共享其 AWS 登录凭证。要访问他们账户中的 AWS 资源,您需要 API 凭证(这是访问密钥、秘密密钥和会话令牌的元组)。获得这些的方法是为您的 Lambda 函数配置一个 IAM 角色,该角色允许它在您的客户的 AWS 账户中担任 IAM 角色。此时,我强烈建议您从这里开始:docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html。然后了解 IAM 角色和跨账户角色。但您需要先从 IAM 的绝对基础开始。