我用来从交叉帐户Lambda函数获取卷ID时无法打印卷ID

时间:2019-05-23 21:30:26

标签: python aws-lambda aws-sdk boto

我编写了一个lambda函数,该函数用于获取实例的volume_id,而我使用cross_account lambda来获取未使用的卷ID时使用的同一函数

比如说我在其中运行该功能的帐户A能够获取卷ID,而我尝试从帐户B获取我无法获得的帐户A的卷ID。

我正在使用Cloudwatch Event Bus,因此无论何时在帐户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)

0 个答案:

没有答案