0

如何通过 Instance-name 获取现有 EC2 实例,并使用 Python 中的 AWS CDK 将它们作为目标添加到 ALB。请在下面找到我的示例代码以使用AWS-CDK-Python 语言创建 ALB

    core,
    aws_ec2,
    aws_elasticloadbalancingv2,
)

class WebsiteStack(core.Stack):

    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        self.vpc = aws_ec2.Vpc.from_lookup(self, 'default_vpc', is_default=True)

        self.sg_ssh = aws_ec2.SecurityGroup(
            self,
            'ssh',
            vpc=self.vpc,
            description="Allow SSH from anywhere",
            security_group_name="SSH from anywhere"
        )
        self.sg_ssh.add_ingress_rule(aws_ec2.Peer.any_ipv4(), aws_ec2.Port.tcp(22))

        tg = aws_elasticloadbalancingv2.ApplicationTargetGroup(
            self,
            'website-target-group',
            protocol=aws_elasticloadbalancingv2.ApplicationProtocol.HTTP,
            port=80,
            vpc=self.vpc,
            # target_type=aws_elasticloadbalancingv2.TargetType.INSTANCE,
            # targets=[ec2],  # FIXME
        )
        tg.add_target(ec2)  # FIXME```
4

2 回答 2

0

我不确定如何使用 CDK 来完成,但通常你可以使用以下register_targets()命令:

将指定的目标注册到指定的目标组。

如果目标是 EC2 实例,则它必须处于running您注册它时的状态。

默认情况下,负载均衡器使用目标组的协议和端口将请求路由到已注册的目标。或者,您可以在注册目标时覆盖目标的端口。您可以使用不同的端口向同一目标组多次注册每个 EC2 实例或 IP 地址。

于 2020-08-01T22:53:00.497 回答
0

使用 CDK 提供的 InstanceTarget 方法,我们可以获取 EC2 实例详细信息并存储在一个对象中;在 cdk 模块中使用 add_targets 方法时,我可以提供存储 ec2 实例详细信息的对象。

于 2020-09-02T10:37:37.513 回答