Python AWS lambda,未知服务:';quicksight';
我正在使用boto3 API从lambda在quicksight中创建组,具有quicksight的角色完全访问权限Python AWS lambda,未知服务:';quicksight';,python,amazon-web-services,lambda,boto3,Python,Amazon Web Services,Lambda,Boto3,我正在使用boto3 API从lambda在quicksight中创建组,具有quicksight的角色完全访问权限 import boto3 quicksight_client = boto3.client('quicksight', region_name='us-east-1', aws_access_key_id=ACCESS_ID, aws_secr
import boto3
quicksight_client = boto3.client('quicksight', region_name='us-east-1',
aws_access_key_id=ACCESS_ID,
aws_secret_access_key=ACCESS_KEY)
def lambda_handler(event, context):
# list groups present in quicksight
response = quicksight_client.list_groups(
AwsAccountId=event['AWS Account ID'],
Namespace='default'
)
面对跟随误差
未知服务:“quicksight”。有效的服务名称为:acm、acm pca、alexaforbusiness、apigateway、应用程序自动缩放、appstream、appsync、athena、自动缩放、自动缩放计划、批处理、预算、ce、cloud9、clouddirectory、cloudformation、cloudfront、cloudhsm、cloudhsmv2、cloudsearch、cloudsearchdomain、cloudtrail、cloudwatch、codebuild、codecommit、codedeploy、,代码管道、代码之星、cognito标识、cognito idp、cognito同步、理解、配置、连接、cur、数据管道、dax、devicefarm、directconnect、发现、dlm、dms、ds、dynamodb、dynamodb流、ec2、ecs、ecs、efs、eks、elasticache、elasticbeanstalk、elastictranscoder、elb、elbv2、emr、es、事件、消防软管、fms、gamelift、glacier、glue、,绿草、警卫、健康、iam、进口、检查员、物联网、物联网数据、物联网作业数据、物联网点击设备、物联网点击项目、物联网分析、动觉、动觉视频存档媒体、动觉视频媒体、动觉分析、动觉视频、kms、lambda、lex模型、lex运行时、lightsail、日志、机器学习、macie、市场授权、,marketplacecommerceanalytics、mediaconvert、medialive、mediapackage、mediastore、mediastore数据、mediatailor、meteringmarketplace、mgh、mobile、mq、mturk、neptune、opsworks、opsworkscm、organizations、pi、pinpoint、polly、pricing、rds、redshift、Rekognation、资源组、ResourceGroupStagingAPI、route53、route53域、s3、sagemaker、,sagemaker运行时、sdb、secretsmanager、serverlessrepo、servicecatalog、servicediscovery、ses、shield、sms、snowball、sns、sqs、ssm、stepfunctions、storagegateway、sts、support、swf、转录、翻译、waf、waf regional、workdocs、workmail、Workspace、X射线
当从我的计算机上执行相同的代码时,它会工作,但不会从lambda执行
有人能帮我解决这个问题吗?哪些AWS服务受boto3
的支持不是在中直接定义的,而是在中定义的。对于Quicksight支持,您至少需要botocore
的1.12.49
版本,这是添加Quicksight支持的版本(尽管更改日志错误地提到)
使用AWS Lambda时,您可以使用AWS提供的boto3
版本,也可以捆绑自己的版本。当您使用AWS提供的版本时,您的代码当前使用的是过时的版本,因为AWS已经有一段时间没有更新它们了。这些旧版本还不支持Quicksight
我们只能推测为什么AWS停止更新AWS Lambda环境的botocore
和boto3
,但这可能与和引入的一些向后不兼容的更改有关
为了解决您的问题,您可以将支持Quicksight的最新版本的botocore
和boto3
添加到您的中,以使用它们,而不是AWS提供的。我使用boto3-1.9.71和botocore-1.12.71进行了测试,效果良好
打包最新版本boto3的步骤
在本地计算机上为lambda函数创建一个目录
使用下面的命令将最新的boto3安装到新目录中
pip安装boto3——目标/path/到/your/目录
导航到新目录并创建名为lambda_function.py(或任意名称)的新文件。确保将filename.function name作为处理程序
将下面的代码粘贴到.py文件中
进口boto3
打印(boto3.版本)
client=bot3.client('quicksight',region_name='us-east-1')
响应=client.list\u组(
AwsAccountId='0123456789',
Namespace='default'
)
您可以使用适当的访问密钥/配置文件在本地计算机上执行此py文件,以测试正在创建的客户端
现在从新目录中选择所有目录和文件,并创建一个zip文件
将此zip文件上载到lambda,您应该能够无错误地执行该函数
您安装了什么版本的boto3和botocore?很可能你需要更新你的库。我正在使用AWS lambda,它已经预装了两个。你在AWS lambda上执行时得到了吗?您正在使用lambda代码编辑器吗?是的,我在使用aws lambda代码内联执行时遇到此错误,即code editori尝试使用新版本的boto3部署包,但仍然存在相同的错误@Dunedant。最可能的问题是您没有正确打包,因此lambda函数仍然使用aws提供的版本。要检查是否存在这种情况,您可以检查运行代码使用的boto3版本:import boto3
print(boto3.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!!!我遵循了它执行的步骤之前我遵循了“使用虚拟环境”的步骤,aws文档来自windows机器,它不工作!!当按照相同的步骤从虚拟环境安装时,不工作的原因是什么?