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

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

您现在可以使用其他 Amazon Lambda 账户中的 Amazon 函数作为 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. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway

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

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

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

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

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

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

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

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

  2. 选择创建函数

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

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

    1. 对于 Function name (函数名称),输入一个名称。

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

    3. Permissions (权限) 下,展开 Choose or create an execution role (选择或创建执行角色)。您可以创建角色或选择现有角色。

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

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

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

  7. 选择 Deploy (部署)

  8. 记下函数的完整 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. 对于集成类型,选择 Lambda 函数

  6. 选中使用 Lambda 代理集成

  7. Lambda 区域保留设置为您的账户区域。

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

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

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

  11. 在上一步的弹出窗口中,选择确定

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

    1. 选择您的集成函数。

    2. 选择 Permissions

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