У меня есть скрипт, который извлекает множество метрик из Cloudwatch для наших собственных внутренних отчетов.
Сценарий перебирает все инстансы EC2 в определенном регионе и запрашивает 5 метрик cloudwatch (все доступные статистические данные) за последние 2 недели (каждый раз 5 дней назад с 5-минутным интервалом, что точно соответствует квоте 1440). Я использую предполагаемый сеанс:
session = Session(aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY, region_name=regionName)
sts = session.client('sts')
response = sts.assume_role(
RoleArn=arn, # External role arn
RoleSessionName='role-name',
ExternalId='<some-id-here>',
)
tempAccessKeyId = response['Credentials']['AccessKeyId']
tempSecretAccessKey = response['Credentials']['SecretAccessKey']
tempSessionToken = response['Credentials']['SessionToken']
assumedSession = Session(
aws_access_key_id=tempAccessKeyId,
aws_secret_access_key=tempSecretAccessKey,
aws_session_token=tempSessionToken,
region_name=regionName)
При запуске скрипта я получил это исключение:
botocore.exceptions.ClientError: An error occurred (ExpiredToken) when calling the GetMetricStatistics operation: The security token included in the request is expired
Есть ли способ убедиться, что срок действия токена не истекает при запуске скрипта? Я использую бото3.