【问题标题】:MWAA Webserver IPs on CDKCDK 上的 MWAA 网络服务器 IP
【发布时间】:2023-03-22 11:02:01
【问题描述】:

我正在使用 CDK 创建一个 Amazon Managed Airflow (MWAA),设置为 webserver_access_mode='PRIVATE_ONLY'。在这种模式下,AWS 创建一个 VPC 接口终端节点,并将来自所选 VPC 私有子网的 IP 地址绑定到它们,如下所述:https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html

现在,我想使用这些 IP 将侦听器添加到现有负载平衡器,然后我可以使用它来连接到 VPN,但这似乎不能作为 aws_cdk.aws_mwaa.CfnEnvironment 的输出属性/属性使用:https://docs.aws.amazon.com/cdk/api/v1/python/aws_cdk.aws_mwaa/CfnEnvironment.html#aws_cdk.aws_mwaa.CfnEnvironment.NetworkConfigurationProperty

我的问题是,有没有办法获取与aws_cdk.aws_mwaa.CfnEnvironment 关联的那些 IP?现在我正在使用 CDK 部署并创建侦听器后手动查找结果,但我更愿意在同一个 CDK 结构中完全自动化它。

【问题讨论】:

    标签: python amazon-web-services amazon-vpc aws-cdk mwaa


    【解决方案1】:

    我为同样的问题苦苦挣扎了一段时间。最后,我在我的 CFN 模板中使用了自定义资源,将 MWAA 网络服务器的 URL 传递给它。在与自定义资源 (Lambda) 关联的 Python 代码中,我执行了 socket.gethostbyname_ex() 调用,将 URL 作为参数传递。此调用将返回一个元组,您必须对其进行解析以提取端点地址。

    我很好地利用了 crhelper 库 (https://aws.amazon.com/blogs/infrastructure-and-automation/aws-cloudformation-custom-resource-creation-with-python-aws-lambda-and-crhelper/),这让事情变得容易多了。

    【讨论】:

      【解决方案2】:

      最后,我使用了一个 lambda 函数来解析 webserver URL 并将 IP 地址注册到目标组。以下 AWS 博客文章中描述了该方法:https://aws.amazon.com/blogs/networking-and-content-delivery/hostname-as-target-for-network-load-balancers/

      也可以通过以下 AWS 示例代码实现 lambda 函数:https://github.com/aws-samples/hostname-as-target-for-elastic-load-balancer

      【讨论】:

        猜你喜欢
        • 2014-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-26
        • 1970-01-01
        • 2011-08-03
        • 2011-04-18
        相关资源
        最近更新 更多