我有一個使用另一個AWS賬戶的雅典娜數據的lambda。所以我有一個我的lambda假定具有跨賬戶訪問權限的角色。我在我的lambda中使用了STS客戶端。有時lambda運行得非常好,有時會打破並給我這個錯誤。Aws lambda跨賬戶訪問
「的errorMessage」: 「發生錯誤(ExpiredTokenException)調用StartQueryExecution操作時:包括在請求安全令牌過期」, 「ERRORTYPE」: 「ClientError」,
STS客戶端我在代碼中使用的是:
def assume_role_to_session(role_arn, session_name):
client = boto3.client('sts')
response = client.assume_role(RoleArn=role_arn, RoleSessionName=session_name, DurationSeconds=900)
return boto3.Session(
aws_access_key_id=response['Credentials']['AccessKeyId'],
aws_secret_access_key=response['Credentials']['SecretAccessKey'],
aws_session_token=response['Credentials']['SessionToken'],
region_name='us-east-1')
assume_role_athena_session = assume_role_to_session(role_arn='arn:aws:iam::XXXXXXXXXXX:role/role-name',
session_name='AthenaLambdaSession')
這是如何工作的?我希望我的lambda可以隨時運行,而不僅僅是有時。可能是什麼問題呢?