View a markdown version of this page

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

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

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

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

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

创建 API
  1. 通过以下网址登录到 Amazon 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. 为 IP 地址类型选择 IPv4。

  7. 选择创建 API。

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

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

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

  2. 选择创建函数。

  3. 选择从头开始创作。

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

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

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

    3. 对于架构,请保留默认设置。

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

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

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

  6. 输入来自 教程:利用 Lambda 代理集成创建 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 命令字符串复制粘贴到为您的第二个账户配置的 AWS CLI 窗口中。

  7. 选择创建方法。

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

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

  2. 选择您的 Lambda 函数。

  3. 选择权限。

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