[英]MWAA Webserver IPs on CDK
我正在使用 CDK 创建一个 Amazon Managed Airflow (MWAA),设置为webserver_access_mode='PRIVATE_ONLY'
。 在此模式下,AWS 创建一个 VPC 接口端点并将来自所选 VPC 私有 su.net 的 IP 地址绑定到它们,如下所述: https://docs.aws.amazon.com/mwaa/latest/userguide/configuring .networking.html
现在,我想使用这些 IP 将侦听器添加到现有的负载均衡器,然后我可以使用它来连接到 VPN,但这似乎不能作为 aws_cdk.aws_mwaa.CfnEnvironment 的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 构造中完全自动化它。
我为同样的问题苦苦挣扎了一段时间。 最后,我在我的 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/ ) ,这让事情变得容易多了。
最后,我使用了一个lambda function来解析webserver URL,并将IP地址注册到目标群中。 以下 AWS 博客文章中描述了该方法: https://aws.amazon.com/blogs.networking-and-content-delivery/hostname-as-target-for.network-load-balancers/
lambda function 的实现也可以通过以下 AWS 示例代码获得: https://github.com/aws-samples/hostname-as-target-for-elastic-load-balancer
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.