教程:利用跨账户 Lambda 代理集成创建 REST API - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

教程:利用跨账户 Lambda 代理集成创建 REST API

您现在可以使用其他 Amazon Lambda 账户中的 Amazon 函数作为 API 集成后端。每个账户都可以位于 Amazon API Gateway 可用的任何区域中。这样便可轻松地跨多个 API 集中管理和共享 Lambda 后端函数。

在本节中,我们将介绍如何使用 Amazon API Gateway 控制台配置跨账户 Lambda 代理集成。

为 API Gateway 跨账户 Lambda 集成创建 API

创建 API
  1. 通过以下网址登录到 API Gateway 控制台:https://console.aws.amazon.com/apigateway

  2. 如果您是第一次使用 API Gateway,您会看到一个介绍服务特征的页面。在 REST API 下,选择生成。当创建示例 API 弹出框出现时,选择确定

    如果这不是您首次使用 API Gateway,请选择创建 API。在 REST API 下,选择生成

  3. 对于 API 名称,请输入 CrossAccountLambdaAPI

  4. (可选)对于描述,输入描述。

  5. API 端点类型设置保留为区域

  6. 选择创建 API

在另一个账户中创建 Lambda 集成函数

现在,您将在与创建示例 API 不同的账户中创建 Lambda 函数。

在另一个账户中创建 Lambda 函数
  1. 从与创建 API Gateway API 不同的账户登录 Lambda 控制台。

  2. 选择创建函数

  3. 选择从头开始创作

  4. 从头开始创作下,执行以下操作:

    1. 对于函数名称,输入一个名称。

    2. 运行时下拉列表中,选择受支持的 Node.js 运行时。

    3. 权限下,展开选择或创建执行角色。您可以创建角色或选择现有角色。

    4. 选择创建函数以继续。

  5. 向下滚动到函数代码窗格。

  6. 输入来自 教程:利用 Lambda 代理集成创建 REST API 的 Node.js 函数实现。

  7. 选择部署

  8. 记下函数的完整 ARN(位于 Lambda 函数窗格的右上角)。当您创建跨账户 Lambda 集成时,将需要此信息。

配置跨账户 Lambda 集成

一旦您在其他账户中拥有 Lambda 集成函数,就可以使用 API Gateway 控制台将其添加到第一个账户中的 API。

注意

如果要配置跨区域、跨账户授权方,则添加到目标函数的 sourceArn 应使用此函数的区域,而不是 API 的区域。

创建 API 后,您将创建一个资源。通常情况下,根据应用程序逻辑将 API 资源组织成资源树形式。在本示例中,您将创建一个 /helloworld 资源。

创建资源
  1. 选择 / 资源,然后选择创建资源

  2. 代理资源保持为关闭状态。

  3. 资源路径保持为 /

  4. 对于资源名称,输入 helloworld

  5. CORS(跨源资源共享)保持为关闭状态。

  6. 选择创建资源

创建资源后,您将创建一个 GET 方法。您将此 GET 方法与另一个账户中的 Lambda 函数集成。

创建 GET 方法
  1. 选择 /helloworld 资源,然后选择创建方法

  2. 对于方法类型,选择 GET

  3. 对于集成类型,选择 Lambda 函数

  4. 打开 Lambda 代理集成

  5. 对于 Lambda 函数,输入步骤 1 中您的 Lambda 函数的完整 ARN。

    在 Lambda 控制台中,您可以在控制台窗口的右上角找到函数的 ARN。

  6. 当您输入 ARN 时,将出现一个 aws lambda add-permission 命令字符串。此策略将向您的第一个账户授予对第二个账户的 Lambda 函数的访问权限。将 aws lambda add-permission 命令字符串复制粘贴到为您的第二个账户配置的 Amazon CLI 窗口中。

  7. 选择创建方法

您可以在 Lambda 控制台中查看您的函数更新后的策略。

(可选)查看更新后的策略
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Lambda 控制台:https://console.aws.amazon.com/lambda/

  2. 选择您的 Lambda 函数。

  3. 选择权限

    您应该看到具有 Allow 子句的 Condition 策略,其中 AWS:SourceArn 是您 API 的 GET 方法的 ARN。