我有一个脚本,从Cloudwatch中获取了很多指标,用于我们内部报告。
该脚本遍历特定区域中的所有EC2实例,并请求过去2周内每个实例的5个Cloudwatch指标(所有可用的统计信息),每次以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
在运行脚本时是否有办法确保令牌不会过期?我正在使用boto3。