创建 Oracle Cloud Infrastructure API 网关

您需要设置 API 网关并为其配置动态组和策略。

创建 Oracle Cloud Infrastructure API 网关

创建 API 网关以处理 REST API 流量。

您可以在 Oracle Cloud Infrastructure 中创建网关。请注意,在部署函数之前,无法部署 API 部署文件(API 网关使用名为 API 部署的 JSON 文件定义其 API),因为您将需要该函数的 OCID。仅在部署函数后,该函数才可用,对于重新部署则保持不变。

在云控制台中创建 API 网关时,确保将其创建为公共网关并与 VCN 关联。例如:



  1. Oracle Cloud Infrastructure 控制台中,确认您正在查看包含要向其添加 API 网关的 VCN 的区间。
  2. 打开导航菜单。在开发人员服务下,单击 API 网关
  3. 列表范围下,单击划分列表以选择要在其中创建网关的划分。
  4. 单击创建网关
  5. 输入值:名称、类型公共)、验证区间、在区间中选择 VCN、区间中的子网,还可以选择性地应用任何标记。
  6. 单击创建
    然后,将创建 API 网关并将其显示在您选择的区间中的 API 网关页上。默认情况下,网关允许通过流量传递。
  7. 验证您的子网是否允许端口 443 (SSL):
    1. 在“网关详细信息”页的“网关信息”选项卡中,单击子网名称。
    2. 子网详细信息页面上,单击 VCN 的安全列表。
    3. 查看入站规则。验证或添加允许 TCP 流量访问端口 443 的规则。
尚不在 API 网关中创建部署。

创建动态组

API 网关需要动态组。

使用动态组可以将 Oracle Cloud Infrastructure 计算机实例分组为“主用户”操作者(类似于用户组)。然后,您可以创建策略以允许实例对 Oracle Cloud Infrastructure 服务进行 API 调用。创建动态组时,不是明确向组添加成员,而是定义一组匹配规则来定义组成员。例如,规则可以指定特定区间中的所有实例都是动态组的成员。成员可以动态更改,因为实例在该区间中启动并终止。

  1. Oracle Cloud Infrastructure 控制台中,导航到监管和管理部分下的左侧图标,单击身份,然后选择动态组
  2. 选择创建动态组
  3. 输入动态组的名称。记录名称以供将来使用。该名称在租户的所有组中必须唯一。以后不能更改此名称。
  4. 输入说明。以后无法使用控制台更改说明,但可以使用 API 进行更改。
  5. 匹配规则部分的文本框中手动输入规则,或选择启动规则生成器以定义匹配规则。例如:
    ANY {resource.type = 'ApiGateway', resource.compartment.id = '<Compartment_OCID>'}
    您可以通过选择 +Additional 规则根据需要输入其他规则
  6. 选择创建动态组
    验证匹配规则语法,但是不验证 Ocid。确保您输入的 Ocid 正确。

在区间中创建策略

在您编写至少一个为该动态组提供租户或区间动态组权限的策略之前,动态组没有权限。

策略是一种 Oracle Cloud Infrastructure Identity and Access Management (IAM)文档,用于指定谁有权访问您的资源。写入策略时,可以使用唯一名称或动态组的 OCID 来指定动态组。但是,即使在策略中指定动态组名,IAM 仍会在内部使用 OCID 确定动态组。

  1. Oracle Cloud Infrastructure 控制台中,打开导航菜单。在监管和管理下,转到身份并单击策略
    此时将显示您正在查看的区间中的策略列表。
  2. 如果要将策略附加到除您所查看的区间之外的区间,请从左侧的列表中选择所需的区间。附加策略的位置控制以后可以修改或删除策略的人员。
  3. 选择创建策略
  4. 请输入以下信息:
    • 名称:策略的唯一名称。租户中的名称在所有策略中必须唯一。以后无法更改。
    • 说明:友好的说明。您可以在以后根据需要更改此项。
    • 策略版本化:如果希望策略保持最新状态并且对服务动词和资源定义的任何未来更改,请选择保持策略不变。或者,如果希望根据特定日期的当前定义来限制访问权限,请选择使用版本日期并以 YYYY-MM-DD 格式输入该日期。
    • 句:添加以下语句:
    allow dynamic-group <apgw-group> to use virtual-network-family in compartment <CompartmentName>
    allow dynamic-group <apgw-group> to manage public-ips in compartment <CompartmentName>
    allow dynamic-group <apgw-group> to use functions-family in compartment <CompartmentName>
  5. 选择创建