首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS CDK雅典娜数据源

AWS CDK雅典娜数据源
EN

Stack Overflow用户
提问于 2021-10-29 20:36:26
回答 1查看 1.2K关注 0票数 1

如何在AWS中创建雅典娜数据源,这是使用MySQL连接到AthenaJdbcConnector数据库的JDBC。

我相信我可以使用aws-samCfnApplication来创建AthenaJdbcConnector Lambda,但是我如何将它与雅典娜连接起来呢?

我注意到很多CDK中的Glue支持,这将转移到雅典娜(数据目录),并且在其他模块中有几种CfnDataSource类型,比如QuickSight,但是我在CDK中看不到雅典娜下的任何东西。

见下面的图片和参考资料。

参考文献:

EN

回答 1

Stack Overflow用户

发布于 2021-11-09 13:58:21

我一直在玩同样的问题。下面是我为联邦查询(类型记录)创建Lambda所做的工作:

代码语言:javascript
复制
    const vpc = ec2.Vpc.fromLookup(this, 'my-project-vpc', {
        vpcId: props.vpcId
    });

    const cluster = new rds.ServerlessCluster(this, 'AuroraCluster', {
        engine: rds.DatabaseClusterEngine.AURORA_POSTGRESQL,
        parameterGroup: rds.ParameterGroup.fromParameterGroupName(this, 'ParameterGroup', 'default.aurora-postgresql10'),
        defaultDatabaseName: 'MyDB',
        vpc,
        vpcSubnets: {
            onePerAz: true
        },
        scaling: {autoPause: cdk.Duration.seconds(0)} // Optional. If not set, then instance will pause after 5 minutes
    });

    let password = cluster.secret!.secretValueFromJson('password').toString()

    let spillBucket = new Bucket(this, "AthenaFederatedSpill")


    let lambdaApp = new CfnApplication(this, "MyDB", {
        location: {
            applicationId: "arn:aws:serverlessrepo:us-east-1:292517598671:applications/AthenaJdbcConnector",
            semanticVersion: "2021.42.1"
        },
        parameters: {
            DefaultConnectionString: `postgres://jdbc:postgresql://${cluster.clusterEndpoint.hostname}/MyDB?user=postgres&password=${password}`,
            LambdaFunctionName: "crossref_federation",
            SecretNamePrefix: `${cluster.secret?.secretName}`,
            SecurityGroupIds: `${cluster.connections.securityGroups.map(value => value.securityGroupId).join(",")}`,
            SpillBucket: spillBucket.bucketName,
            SubnetIds: vpc.privateSubnets[0].subnetId
        }
    })

如果您使用雅典娜中的AWS控制台向导连接到DataSource,这将创建具有默认连接字符串的lambda。不幸的是,无法通过CDK添加雅典娜目录特定的连接字符串。它应该被设置为Lambda上的一个环境变量,而我没有办法做到这一点。应用程序模板根本不允许这样做,因此这是一个手工处理后的过程。如果他们有解决办法的话,我当然想听听任何人的意见!

还请注意,我直接在jdbc中添加了用户/密码。我想使用SecretsManager,但是因为Lambda部署在VPC中,所以它拒绝连接到秘密管理器。我认为可以通过在SSM中添加一个私有VPN连接来解决这个问题。再一次-我想听到有人尝试过。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69774525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档