gpt4 book ai didi

amazon-elastic-beanstalk - AWS CDK : Get LoadBalancer ARN of ElasticBeanstalk Environment for ApiGateway VPC Link

转载 作者:行者123 更新时间:2023-12-04 17:27:58 25 4
gpt4 key购买 nike

我正在使用 AWS CDK 创建带有网络负载均衡器的 Elastic Beanstalk 环境。

Elastic Beanstalk 应用程序和负载均衡器都位于 VPC 的私有(private)子网中。
我想将 API 网关与使用网络负载均衡器的 VPC 链接一起使用。

在我的 CDK 应用程序中,我正在创建一个 elasticbeanstalk.CfnEnvironment。对于我的 ApiGateway,我有一个这样的 VPC 链接:

const env: elasticbeanstalk.CfnEnvironment = this.createElasticBeanstalkEnvironment();
const loadBalancer = elbv2.NetworkLoadBalancer.fromNetworkLoadBalancerAttributes(this.stack, `DjangoNetworkLoadBalancer`, {
loadBalancerArn: env.loadBalancerArn (not available!)
})

const link = new apigateway.VpcLink(this.stack, `DjangoLoadBalancerLink`, {
targets: [loadBalancer],
});

...

private createElasticBeanstalkEnvironment() {
const env = new elasticbeanstalk.CfnEnvironment(this.stack, 'DjangoBeanstalkEnv', {
applicationName: 'TestApp',
environmentName: 'TestAppDev',
solutionStackName: '64bit Amazon Linux 2 v3.0.1 running Python 3.7'
});

env.optionSettings = [
{
namespace: 'aws:elasticbeanstalk:environment',
optionName: 'LoadBalancerType',
value: 'network'
},
{
namespace: 'aws:elbv2:listener:443',
optionName: 'ListenerEnabled',
value: 'true'
},
{
namespace: 'aws:elbv2:listener:default',
optionName: 'ListenerEnabled',
value: 'false'
}
]

return env;
}


不幸的是我不能使用 env.loadBalancerArn陈述。
有没有可能如何检索环境的负载均衡器?

最佳答案

这应该可以解决问题。
CloudFormation

!Join
- ""
- - !Sub 'arn:aws:elasticloadbalancing:${AWS::Region}:${AWS::AccountId}:loadbalancer/net/'
- !Select [0, !Split ["-", !GetAtt ElasticBeanstalkEnvironment.EndpointURL]]
- '-'
- !Select [1, !Split ["-", !GetAtt ElasticBeanstalkEnvironment.EndpointURL]]
- '-'
- !Select [2, !Split ["-", !GetAtt ElasticBeanstalkEnvironment.EndpointURL]]
- '/'
- !Select [0, !Split [".", !Select [3, !Split ["-", !GetAtt ElasticBeanstalkEnvironment.EndpointURL]]]]
CDK( typescript )
cdk.Fn.join("", [
'arn:aws:elasticloadbalancing:'.concat(stack.region).concat(':').concat(stack.account).concat(':loadbalancer/net/'),
cdk.Fn.select(0, cdk.Fn.split("-", this.BeanstalkCfnEnvironment.getAtt('EndpointUrl').toString())),
'-',
cdk.Fn.select(1, cdk.Fn.split("-", this.BeanstalkCfnEnvironment.getAtt('EndpointUrl').toString())),
'-',
cdk.Fn.select(2, cdk.Fn.split("-", this.BeanstalkCfnEnvironment.getAtt('EndpointUrl').toString())),
'/',
cdk.Fn.select(0, cdk.Fn.split(".", cdk.Fn.select(3, cdk.Fn.split('-', this.BeanstalkCfnEnvironment.getAtt('EndpointUrl').toString())))),
])

关于amazon-elastic-beanstalk - AWS CDK : Get LoadBalancer ARN of ElasticBeanstalk Environment for ApiGateway VPC Link,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62153936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com