Not able to generate image from cloudwatch method get_metric_widget_image boto3 sdk

0

Hi All, I am trying to retreive a snapshot of a cloudwatch metric using the below the code snippet

import boto3
import base64
from PIL import Image
cw=boto3.client("cloudwatch",region_name='us-east-1')
response = cw.get_metric_widget_image(
    MetricWidget='''{
    "view": "timeSeries",
    "stacked": false,
    "metrics": [
        [ "AWS/EC2", "CPUUtilization", "InstanceId", "i-0fcbc91098629eca6" ]
    ],
    "width": 1061,
    "height": 177,
    "start": "-PT168H",
    "end": "P0H"    
    }'''
)
img = Image.frombytes("L", (1000, 177), response["MetricWidgetImage"])
img1 = list(img.getdata())
print(img1)

but I am getting the below error: ValueError: not enough image data Acc. to documentation, the output of get_metric_widget_image method is an base64 encoded string, but the output looks like a byte string without any decoding How can we generate the image? Thankyou

feita há 2 anos695 visualizações
1 Resposta
0
Resposta aceita

I was able to get through this, using the below code:

im = Image.open(io.BytesIO(response["MetricWidgetImage"]))
im.save("cw-1.png")
respondido há 2 anos

Você não está conectado. Fazer login para postar uma resposta.

Uma boa resposta responde claramente à pergunta, dá feedback construtivo e incentiva o crescimento profissional de quem perguntou.

Diretrizes para responder a perguntas