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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

现在,您可以使用来自其他 Amazon 账户的 Amazon Lambda 函数作为 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 下,选择 Build (生成)。当 Create Example API (创建示例 API) 弹出框出现时,选择 OK (确定)

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

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

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

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

  6. 选择创建 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 的区域。

创建 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. 选择 Permissions

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