gpt4 book ai didi

python-2.7 - 创建 AWS SNS 主题并使用 troposhere 在 ASG 中引用它

转载 作者:行者123 更新时间:2023-12-03 07:45:42 25 4
gpt4 key购买 nike

我正在尝试创建一个 SNS 主题并在 ASG 中引用该主题,以便在实例启动或终止时获取通知。这是我正在使用的对流层代码的一部分:

    email_topic = self.template.add_resource(Topic(
'ec2_lauch_termination',
Subscription=[
Subscription(
Endpoint=Ref(alarm_email),
Protocol="email"
),
],
))

self.template.add_output(Output(
"TopicArn",
Value=GetAtt(email_topic, "Arn"),
Description="ARN of email topic",
))

for i in range(0, self.subnet_count):
asg_name = "autoScalingGroup" + str(i)
asg = self.template.add_resource(AutoScalingGroup(
asg_name,
DesiredCapacity=Ref(self.desired_capacity),
HealthCheckType="EC2",
LaunchConfigurationName=Ref(launch_config),
MinSize=Ref(self.min_size),
MaxSize=Ref(self.max_size),
VPCZoneIdentifier=[Select(i, Ref(self.instance_subnets))],
Tags=[
Tag("Name", Join("-", [Ref(self.resource_name), Ref(self.env_tag), Ref(self.vpc_short_name), "pdx"]), True),
Tag("Name", "XXXX", True),
Tag("Service", Ref(self.service_tag), True),
Tag("Environment", Ref(self.env_tag), True),
Tag("Address", Ref(self.address_tag), True)
],

NotificationConfigurations=[
NotificationConfigurations(
TopicARN=GetAtt(email_topic, "Arn"),
NotificationTypes=[
'autoscaling:EC2_INSTANCE_LAUNCH',
'autoscaling:EC2_INSTANCE_LAUNCH_ERROR',
'autoscaling:EC2_INSTANCE_TERMINATE',
'autoscaling:EC2_INSTANCE_TERMINATE_ERROR',
],
),
],
))

我已提取主题的 ARN,并将其作为值赋予 ASG 中的 NotificationConfigurations 的“TopicARN”,但此代码不会输出 CF 模板。我在这里错过了什么吗?或者有更好的方法来实现这一目标吗?

提前感谢您的帮助!

谢谢!

最佳答案

您必须调用模板对象的to_json方法。例如,如果您只想将其打印到屏幕上,那么您将:

print self.template.to_json()

或者在创建的类本身上调用它。

关于python-2.7 - 创建 AWS SNS 主题并使用 troposhere 在 ASG 中引用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45539968/

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