Я написал лямбда-функцию, которая используется для получения volume_id экземпляра, в то время как я использую ту же функцию, используя cross_account lambda, чтобы получить идентификатор тома, который не принимает
Скажем, например, для учетной записи A, где я запускаюфункция может получить идентификатор тома, когда я пытался получить из учетной записи B идентификатор тома учетной записи A. Не могу.
Я использую шину событий Cloudwatch, поэтому при загрузке экземпляра в учетной записи A эта функцияполучит триггер с использованием роли Cloudwatch.
import boto3
import json
import datetime
ststoken = boto3.client('sts')
def lambda_handler(event, context):
awsaccount = ststoken.assume_role(
RoleArn='**************************************************************',
RoleSessionName='awsaccount_session'
)
client = boto3.client('lambda',
aws_access_key_id=awsaccount['Credentials']['AccessKeyId'],
aws_secret_access_key=awsaccount['Credentials']['SecretAccessKey'],
aws_session_token=awsaccount['Credentials']['SessionToken']
)
def findVolumes(instaceId, region):
print "Insatnce-id=" + instaceId
ec2 = boto3.client('ec2')
#instance = ec2.Instance(instaceId)
volumes = ec2.describe_volumes(
Filters=[
{
'Name' : 'attachment.instance-id',
'Values': [instaceId]
}
]
)
for v in volumes['Volumes']:
print v['VolumeId']
print(v['VolumeId'],instanceId)