如何解决Lambda承担角色为空结果
我正在尝试使用帐户A中的Lambda从帐户B获取EC2实例。不确定我丢失了什么。
帐户A:Lambda代码正在运行。 帐户B:EC2实例正在运行。 下面的“假设角色”将显示访问密钥和会话令牌ID,但不会返回任何结果。
帐户B中的IAM角色附加了AmazonEC2ReadOnlyAccess策略,并且信任关系具有arn:aws:iam :: ACCOUNT_A:role / role-name_ACCOUNT_A
这是代码:
import json
import boto3
from collections import OrderedDict
from pprint import pprint
import time
from time import sleep
from datetime import date
import datetime
def lambda_handler(event,context):
# Assume Role To connect to other Account
sts_connection = boto3.client('sts')
acct_b = sts_connection.assume_role(
RoleArn="arn:aws:iam::ACCOUNT_B:role/role_name_account_B",RoleSessionName="cross_acct_lambda"
)
ACCESS_KEY = acct_b['Credentials']['AccessKeyId']
SECRET_KEY = acct_b['Credentials']['SecretAccessKey']
SESSION_TOKEN = acct_b['Credentials']['SessionToken']
# create service client using the assumed role credentials,e.g. S3
ec2 = boto3.client(
"ec2",aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY,aws_session_token=SESSION_TOKEN,)
status = ec2.describe_instance_status()
pprint(status)
return {
'statusCode': 200,'body': json.dumps('Hello from Lambda!')
}
结果:
Response:
{
"statusCode": 200,"body": "\"Hello from Lambda!\""
}
结果:
Response:
{
"statusCode": 200,"body": "\"Hello from Lambda!\""
}
Request ID:
"ZZZZZZZZZZZZZZZZZZZZ"
功能日志:
START RequestId: ZZZZZZZZZZZZZZZZZZ Version: $LATEST
{'InstanceStatuses': [],
谢谢。
解决方法
添加区域后,我可以看到结果,谢谢约翰·罗滕斯坦和贾莫德的指导。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。