第 1 步:使用模板创建远程服务(AWS Lambda 函数)和代理服务 (API Gateway)

本主题详细说明了如何使用 Snowflake 提供的 AWS CloudFormation 模板。该模板简化了为外部函数创建 AWS Lambda 函数(用作远程服务)和 Amazon API Gateway(用作代理服务)的任务。

本文档展示了如何使用 CloudFormation 模板在 AWS 上创建示例外部函数。

Snowflake 提供了一个模板,您可以从它开始。此模板隐藏了创建过程的一些细节,并对一些名称(例如暂存区名称)和功能进行了硬编码。在准备好创建自己的自定义外部函数后,您可以自定义模板的副本,也可以按照 在 AWS 上创建外部函数 中更灵活的说明进行操作。

如果您想自定义模板,可以了解有关 AWS CloudFormation (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html) 的更多信息。

备注

这些说明假定您已经熟悉 AWS 管理。这些说明描述了您需要执行的一般步骤,但没有详细描述用户界面,因为界面可能会更改。

上一步

规划用于 AWS 的外部函数

上传模板

  1. 返回 AWS 管理控制台。

  2. 在顶部搜索栏中,搜索 CloudFormation。

  3. 在“服务”下,点击 CloudFormation。

  4. 点击 Create stack。

    如果要在 With new resources (standard) 或 With existing resources (import resources) 之间进行选择,请选择 With new resources (standard)。

  5. 在 Create stack 页面的 Prepare template 下,选择 Template is ready。

  6. 选择 Upload a template file。

  7. 选择 Choose file。

  8. 导航到包含模板副本的目录,然后选择模板。

  9. 点击 Next 进入要在其中输入角色名称等信息的页面。

    备注

    模板对某些资源使用默认名称。您可以对这些名称进行更改。

配置您的选项

模板中包含大多数字段的默认值。但是,您还需要输入一些值,例如您需要区域端点还是专用端点。

  1. 输入堆栈的名称。

  2. 输入您要使用的端点类型:“REGIONAL”或“PRIVATE”。

    如果您不确定要使用哪种类型,请选择“REGIONAL”。

    如果您选择“PRIVATE”,需更新 VPC ID (在模板中标记为“sourceVpcId”)。(有关查找 VPC ID 的说明,请参阅 规划用于 AWS 的外部函数。)

    有关端点的更多信息,包括不同类型端点的描述,请参阅 AWS 端点 (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-basic-concept.html) 和 选择端点类型:区域端点与专用端点。

  3. 为 API Gateway IAM 角色(参数 apiGatewayIAMRoleName)输入名称。这是 Snowflake 为 API Gateway 进行授权时所承担的角色。确保该角色尚不存在,因为如果存在,模板将尝试更新该角色。

    在标题为 New IAM Role Name 的跟踪工作表字段中记录角色名称。

  4. 输入 Lambda 执行角色的名称(参数 lambdaExecutionRoleName)。Lambda 服务使用此角色来添加 CloudWatch 日志。确保该角色尚不存在,因为如果存在,模板将尝试更新该角色。

  5. 点击 Next。

    此页面有一些用于模板部署的高级选项。

    1. (可选)设置高级选项,例如堆栈策略。(使用 Snowflake 提供的模板创建示例函数时不需要这些。但是,如果您对自定义的函数使用基于模板的部署,那么此时您可能需要自定义高级选项。)

    2. 点击 Next。

  6. 在审查页面上,向下滚动到页面底部,并确认 CloudFormation 模板可能会创建具有自定义名称的 IAM 资源。之所以需要这样做,是因为该模板在部署过程中会创建两个 IAM 角色。

  7. 点击 Create stack。

部署将需要几秒钟。部署完成后,您应该位于新创建的堆栈的 Events 选项卡上。创建的资源将列在 Resources 选项卡下。

后续步骤

第 2 步:记录 Amazon API Gateway URL 和新 IAM 角色 ARN