【问题标题】:AWS Lambda function for AWS Metric using Autoscaling groups使用 Autoscaling 组的 AWS Metric 的 AWS Lambda 函数
【发布时间】:2021-07-26 18:13:56
【问题描述】:

我正在编写一个 lambda 函数,该函数将根据一些磁盘指标创建警报。到目前为止的代码如下所示:

import collections
from datetime import datetime
import calendar
def lambda_handler(event, context):
    client = boto3.client('cloudwatch')
    alarm = client.put_metric_alarm(
    AlarmName='Disk Monitor',
    MetricName='disk_used_percent',
    Namespace='CWAgent',
    Statistic='Maximum',
    ComparisonOperator='GreaterThanOrEqualToThreshold',
    Threshold=60.0,
    Period=10,
    EvaluationPeriods=3,
    Dimensions=[
        {
            'Name': 'InstanceId',
            'Value': '{instance_id}'
        },
        {
            'Name': 'AutoScalingGroupName',
            'Value': '{instance_id}'
        },
        {
            'Name': 'fstype',
            'Value': 'xfs'
        },
        {
            'Name': 'path',
            'Value': '/'
        }
    ],
    Unit='Percent',
    ActionsEnabled=True)

正如所见,{instance_id} 是一个变量,因为它的想法是它将用于每个实例。但是,我想知道如何为AutoScalingGroupName 编写相同的代码,因为我也要求它也是一个变量。我知道下面为我提取了AutoScalingGroupName,但是我如何在语法方面将其添加到上面的块中,这是我的问题:

aws autoscaling describe-auto-scaling-instances --output text --query "AutoScalingInstances[?InstanceId == '<instance_dets>'].{AutoScalingGroupName:AutoScalingGroupName}"

例如,我是否可以添加如下开头的块:

def lambda_handler(event, context):
    client = boto3.client('autoscaling')

如果是这样,我将如何在语法方面编写所需的代码以获取 'Value': '{AutoScalingGroupName}',我的意思是一个保存 ASG 的变量?

【问题讨论】:

  • instance_idasg_name变量从何而来?
  • 它们是在系统级别设置的全局变量

标签: python lambda aws-lambda boto3


【解决方案1】:

describe_auto_scaling_instancesInstanceIds 作为参数。所以如果你知道你的instance_id你可以找到它的asg如下:

client = boto3.client('autoscaling')

response = client.describe_auto_scaling_instances(
    InstanceIds=[instance_id])

asg_name = ''

if response['AutoScalingInstances']:
  asg_name = response['AutoScalingInstances'][0]['AutoScalingGroupName']

print(asg_name)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-19
    • 2019-06-25
    • 2019-11-01
    • 2020-10-17
    • 2018-12-10
    • 1970-01-01
    • 2018-01-13
    • 2016-05-25
    相关资源
    最近更新 更多