【问题标题】:Serverless Deploy to Different AWS Accounts无服务器部署到不同的 AWS 账户
【发布时间】:2020-04-10 02:10:04
【问题描述】:

我有一堆 terraform 资源创建的无服务器项目。 我想在一个 AWS 账户中部署 Lambda 函数,作为无服务器部署的一部分,它可以创建 API Gateway 端点(指向 lambda 函数)。

我想在另一个 AWS 账户中创建 API Gateway。是否可以纯粹在无服务器中进行。如果不是,有什么选择?

【问题讨论】:

  • 听起来,您应该将资源创建拆分为两个脚本。每个脚本都必须在专用 AWS 账户(--profile )下执行。 Lambda ARN 可用于配置 API 网关。
  • 无服务器项目中的脚本是什么意思?你能解释一下吗
  • 我的意思是,您需要注册两个提供商,其中将第一个 AWS acc 设置为一个提供商的配置文件,将第二个 AWS acc 设置为第二个提供商。 (terraform.io/docs/configuration/…) 然后你需要设置在资源/模块中必须使用哪个提供者。 (资源 Lambda - 具有第一个 AWS 账户的提供商,资源 API - 具有第二个 ASW 账户的提供商)
  • 为什么要在两个不同的区域拥有 Lambda 和 API Gateway?你想达到什么目的。这听起来真的像一个反模式!
  • 是要求

标签: terraform serverless-framework serverless aws-serverless


【解决方案1】:

尝试使用 EventBridge 方法。您应该能够安全地访问功能,而无需创建复杂的双账户 ARN、策略脚本和权限:

const AWS = require('aws-sdk');

function notifyMarketingTeam(email) {
 const eventBridge = new AWS.EventBridge({key:XXXXX,secret:XXXX region: 'us-east-1' }); 

 return eventBridge.putEvents({
   Entries: [
     {
       EventBusName: 'marketing',
       Source: 'acme.newsletter.campaign',
       DetailType: 'UserSignUp',
       Detail: `{ "E-Mail": "${email}" }`,
   },
   ]
 }).promise()
}

【讨论】:

    猜你喜欢
    • 2019-10-17
    • 2019-06-05
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 2020-08-20
    • 1970-01-01
    相关资源
    最近更新 更多