1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 你不能直接将CloudWatch告警分配给启动模板。但是,你可以在使用Python的boto3库启动实例后再创建告警。以下是使用启动模板启动EC2实例,然后为每个实例创建CloudWatch告警的逐步指南:
- 如果尚未安装boto3库,请先安装它:
pip install boto3
- 使用启动模板启动EC2实例:
import boto3
ec2 = boto3.client('ec2')
response = ec2.run_instances(
LaunchTemplate={
'LaunchTemplateName': 'your-launch-template-name',
'Version': 'your-launch-template-version'
},
MinCount=1,
MaxCount=1
)
instance_id = response['Instances'][0]['InstanceId']
print(f'Launched instance with ID: {instance_id}')
- 为启动的实例创建CloudWatch告警:
import boto3
cloudwatch = boto3.client('cloudwatch')
# 使用相应的指标替换“your-instance-idle-metric”和所需运算符替换“your-comparison-operator”(例如'LessThanOrEqualToThreshold')
response = cloudwatch.put_metric_alarm(
AlarmName=f'IdleAlarm-{instance_id}',
ComparisonOperator='your-comparison-operator',
EvaluationPeriods=1,
MetricName='your-instance-idle-metric',
Namespace='AWS/EC2',
Period=300,
Statistic='SampleCount',
Threshold=1.0,
ActionsEnabled=True,
AlarmActions=[
'arn:aws:automate:your-region:ec2:stop' # 将'your-region'替换为适当的AWS区域
],
AlarmDescription=f'Alarm for stopping idle instance {instance_id}',
Dimensions=[
{
'Name': 'InstanceId',
'Value': instance_id
},
],
Unit='Seconds',
TreatMissingData='breaching'
)
print(f'Created alarm for instance {instance_id}')
上面的代码使用启动模板启动 EC2 实例,然后为启动的实例创建 CloudWatch 告警。当实例处于非活动状态时,警报将根据指定的指标、比较运算符和阈值将其停止。
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前