如何使用适用于 Python 的 AWS CDK 通过 ARN 查找现有的经典负载均衡器 (CLB)?
Posted
技术标签:
【中文标题】如何使用适用于 Python 的 AWS CDK 通过 ARN 查找现有的经典负载均衡器 (CLB)?【英文标题】:How can I lookup an existing classic load balancer (CLB) via the ARN with the AWS CDK for Python? 【发布时间】:2021-12-11 08:19:56 【问题描述】:@aws-cdk/aws-elasticloadbalancingv2
有various from*
lookup methods,但我在@aws-cdk/aws-elasticloadbalancing
中没有看到类似的东西。我只是错过了它,还是这真的是一个缺失的功能?
谢谢!
编辑:为了记录,听起来这是一个不受支持的功能。我已经向上游提交了https://github.com/aws/aws-cdk/issues/18141,希望能够实现这一点。
【问题讨论】:
旁注,但您为什么使用经典负载均衡器?它们几乎已被弃用 @ErmiyaEskandary 作为记录,我并不是说这是一个特定于 Python 的问题。如果可能的话,我很乐意学习如何在打字稿中做到这一点 至于我们使用经典负载均衡器的原因:我们没有创建新的经典 ELB,但我们采取的立场是,我们希望所有新的基础设施都通过 CDK 进行管理,并且有时这需要参考手工创建的现有基础设施。这就是我在这里尝试做的事情:在 Route 53 中设置一个新的 CNAME 以指向现有的(非常旧的)经典 ELB。 嗯,有道理 - 我已经回答了这个问题,但可能值得为特定的 Route 53 用例创建一个新问题,并指出无法查找。我猜它只是无法通过 CDK 实现,但之前可能有人遇到过同样的问题。对不起! 【参考方案1】:这是一个缺失的功能。
其他工具如 Pulumi(基于 Terraform)已经能够做到这一点via the ARN of the CLB。
Terraform 本身可以做到via the name of the CLB。
文档应该全面相似,但只是为了仔细检查这一点,CDK API docs for ELB v2 表明您可以查找应用程序负载平衡器 (ALB) 和网络负载平衡器 (NLB),正如您所提到的。
同样(为了删除可能的特定语言 CDK 实现),我查看了整个 CDK API docs for ELB v1,它指的是经典负载平衡器 (CLB)。没有查找方法。
考虑到 Terraform 已经做到了这一点,这意味着它必须有一个 AWS API - 也许尝试看看您是否可以使用 AwsSdkCall
进行自定义调用并获取所需的数据。
【讨论】:
感谢Ermiya的详细回复!这值得在 GitHub 上提交问题以寻求支持吗? 是的!这绝对是可能的,所以 CDK 有一个我们错过的未记录方法,或者他们没有实现它:) 不客气。 我已经向上游提交了github.com/aws/aws-cdk/issues/18141。我们会看看我们是否得到任何爱? @jfly @ me 当你有任何具体的更新时请在这里:) 为了记录,我们得到了回复:github.com/aws/aws-cdk/issues/18141#issuecomment-1003060592。这听起来不像是故意遗漏,因为 CLB 已被弃用,听起来这只是他们鼓励您解决的疏忽。以上是关于如何使用适用于 Python 的 AWS CDK 通过 ARN 查找现有的经典负载均衡器 (CLB)?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AWS CDK Pipelines 构建不同语言的 lambda
使用 AWS CDK 在 AWS Codepipeline 中部署 Python Lambda 函数
如何使用 aws-cdk 从 AWS Secrets Manager 导入 EKS 密钥?