我使用boto3 API从lambda创建quicksight中的组,它具有角色完全访问quicksight的权限
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'
)面对跟随错误
Unknown service: 'quicksight'. Valid service names are: acm, acm-pca, alexaforbusiness, apigateway, application-autoscaling, appstream, appsync, athena, autoscaling, autoscaling-plans, batch, budgets, ce, cloud9, clouddirectory, cloudformation, cloudfront, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudwatch, codebuild, codecommit, codedeploy, codepipeline, codestar, cognito-identity, cognito-idp, cognito-sync, comprehend, config, connect, cur, datapipeline, dax, devicefarm, directconnect, discovery, dlm, dms, ds, dynamodb, dynamodbstreams, ec2, ecr, ecs, efs, eks, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, es, events, firehose, fms, gamelift, glacier, glue, greengrass, guardduty, health, iam, importexport, inspector, iot, iot-data, iot-jobs-data, iot1click-devices, iot1click-projects, iotanalytics, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesisanalytics, kinesisvideo, kms, lambda, lex-models, lex-runtime, lightsail, logs, machinelearning, macie, marketplace-entitlement, marketplacecommerceanalytics, mediaconvert, medialive, mediapackage, mediastore, mediastore-data, mediatailor, meteringmarketplace, mgh, mobile, mq, mturk, neptune, opsworks, opsworkscm, organizations, pi, pinpoint, polly, pricing, rds, redshift, rekognition, resource-groups, resourcegroupstaggingapi, route53, route53domains, s3, sagemaker, sagemaker-runtime, sdb, secretsmanager, serverlessrepo, servicecatalog, servicediscovery, ses, shield, sms, snowball, sns, sqs, ssm, stepfunctions, storagegateway, sts, support, swf, transcribe, translate, waf, waf-regional, workdocs, workmail, workspaces, xray
当从我的计算机执行相同的代码时,它是工作的,而不是从lambda执行的。
有人能帮我吗?
发布于 2018-12-22 16:02:07
我用boto3-1.9.71和botocore-1.12.71进行了测试,它运行良好。
打包最新版本的boto3的步骤。
发布于 2018-12-22 07:50:58
boto3支持哪些AWS服务不是直接在boto3中定义的,而是在botocore中定义的。对于Quicksight支持,您至少需要版本1.12.49 of botocore,这是添加Quicksight支持的版本(尽管变更量错误地谈到了更新的Quicksight支持)。
在使用AWS时,可以使用AWS提供的boto3版本,也可以捆绑自己的版本。当您使用AWS提供的版本时,您的代码目前运行在过时的(1.7.74)版本中,因为AWS已经有一段时间没有更新它们了。这些旧版本还不支持Quicksight。
我们只能推测为什么AWS停止为AWS环境更新botocore和boto3,但这可能与1.12.0和1.9.0引入的一些向后不兼容的更改有关。
为了解决您的问题,您可以将支持Quicksight的botocore和boto3的最新版本添加到您的部署包中,使用它们而不是AWS提供的版本。
https://stackoverflow.com/questions/53893575
复制相似问题