Amazon API Gateway
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

教程:使用跨账户 Lambda 代理集成构建 API Gateway API

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

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

首先,我们从一个账户中的 教程:通过导入示例创建 REST API 创建示例 API。然后,我们在另一个账户中创建 Lambda 函数。最后,我们使用跨账户 Lambda 集成允许示例 API 使用我们在第二个账户中创建的 Lambda 函数。

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

首先,您将按 教程:通过导入示例创建 REST API 中所述创建示例 API。

创建示例 API

  1. 登录到 API Gateway 控制台。

  2. 从 API Gateway APIs 主页中,选择 Create API (创建 API)

  3. Create new API (新建 API) 下,选择 Examples API (示例 API)

  4. 对于 Endpoint Type (终端节点类型),选择 Edge optimized (边缘优化)

  5. 选择 Import (导入) 创建示例 API。

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

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

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

  1. 从与创建 API Gateway API 不同的账户登录 Lambda 控制台。

  2. 选择 Create function (创建函数)

  3. 选择 Author from scratch (从头开始创作)

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

    1. 名称输入字段中,键入函数名称。

    2. Runtime (运行时) 下拉列表中,选择受支持的运行时。在本示例中,我们使用 Node.js 8.10

    3. 角色下拉列表中,选择选择现有角色从模板创建新角色创建自定义角色。然后,按照此选择随后的说明操作。

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

      在本示例中,我们将跳过 Designer 部分,进入下一个函数代码部分。

  5. 向下滚动到 Function code (函数代码) 窗格。

  6. 教程:使用 Lambda 代理集成构建 Hello World API 复制并粘贴 Node.js 函数实现。

  7. Runtime (运行时) 下拉菜单中,选择 Node.js 8.10

  8. 选择 Save (保存)

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

配置跨账户 Lambda 集成

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

注意

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

配置跨账户 Lambda 集成

  1. 在 API Gateway 控制台中,选择您的 API。

  2. 选择 Resources (资源)

  3. 资源窗格中,选择顶级 GET 方法。

  4. Method Execution (方法执行) 窗格中,选择 Integration Request (集成请求)

  5. 对于 Integration type (集成类型),选择 Lambda Function (&LAM; 函数)

  6. 选中 Use Lambda Proxy integration (使用 &LAM 代理集成)

  7. Lambda Region (&LAM; 区域) 保留设置为您的账户区域。

  8. 对于 Lambda Function (&LAM; 函数),复制/粘贴您在第二个账户中创建的 Lambda 函数的完整 ARN,然后选择对勾。

  9. 您将看到一个弹出窗口,显示 Add Permission to Lambda Function: You have selected a Lambda function from another account (将权限添加到 &LAM; 函数: 您已从另一个帐户中选择了 &LAM; 函数)。请确保为此函数设置了适当的函数策略。为此,您可以从账户 123456789012: 运行以下 AWS CLI 命令,后跟 aws lambda add-permission 命令字符串。

  10. aws lambda add-permission 命令字符串复制粘贴到为您的第二个账户配置的 AWS CLI 窗口中。这将向您的第一个账户授予对第二个账户的 Lambda 函数的访问权限。

  11. 在 Lambda 控制台上一步的弹出窗口中,选择 OK (确定)

  12. 在 Lambda 控制台中查看您的函数的更新策略

    1. 选择您的集成函数。

    2. Designer 窗格中,选择密钥图标。

    Function policy (函数策略) 窗格中,您现在应该看到具有 Condition 子句的 Allow 策略,其中 AWS:SourceArn 是您 API GET 方法的 ARN。