从 CloudFormation 启用 Aurora 数据 API

Posted

技术标签:

【中文标题】从 CloudFormation 启用 Aurora 数据 API【英文标题】:Enable Aurora Data Api from CloudFormation 【发布时间】:2019-07-22 17:08:23 【问题描述】:

我有一个 CloudFormation 模板,它使用 aurora serverless 创建我的 RDS 集群。我希望在启用数据 API 的情况下创建集群。

该选项存在于 Web 控制台上: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html

但我在 CloudFormation 文档中找不到它。 如何从模板中打开此选项?

【问题讨论】:

在“路线图”github.com/aws-cloudformation/… 【参考方案1】:

将the EnableHttpEndpoint property 设置为true,例如:

AWSTemplateFormatVersion: '2010-09-09'
Description: Aurora PostgreSQL Serverless Cluster
Resources:
  ServerlessWithDataAPI:
    Type: AWS::RDS::DBCluster
    Properties:
      Engine: aurora-postgresql
      EngineMode: serverless
      EnableHttpEndpoint: true
      ScalingConfiguration:
        ...

【讨论】:

【参考方案2】:

您可以通过创建自定义资源支持的 lambda 从 CloudFormation 启用数据 API,并使用任何可用的 SDK 启用它。

我使用 boto3 (python),所以 lambda 的代码类似于以下:

import boto3

client = boto3.client('rds')

response = client.modify_db_cluster(
    DBClusterIdentifier='string',
    EnableHttpEndpoint=True|False
) 

显然,您需要处理不同的自定义资源请求类型,并从 lambda 成功或失败返回。但要回答您的问题,这是目前通过 CloudFormation 设置数据 API 的最佳方式,恕我直言。

更多关于函数(Boto3)的信息: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.modify_db_cluster

【讨论】:

【参考方案3】:

目前只能在网络控制台中启用数据 API。此功能仍处于测试阶段,因此 CloudFormation 支持和 us-east-1 之外的可用性等问题仍待定,在生产中使用数据 API 时应谨慎,因为它可能仍会发生变化。

【讨论】:

自 2019 年 12 月起可通过 CloudFormation 启用 - 请参阅答案 ***.com/a/58759313/1373514

以上是关于从 CloudFormation 启用 Aurora 数据 API的主要内容,如果未能解决你的问题,请参考以下文章

AWS Cloudformation 启用 Performance Insights

如何在 CloudFormation 中启用 VirtualMFADevice?

使用 cloudformation 为 S3 存储桶启用 Lambda 函数

带有 cloudformation 的 AWS EMR 集群:如何启用调试

在 Cloudformation 模板中为 API 网关启用 CORS DEFAULT 4XX/5XX

如何使用 CloudFormation 为 Amazon OpenSearch 设置兼容模式?