首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS lambda,未知服务:“quicksight”

AWS lambda,未知服务:“quicksight”
EN

Stack Overflow用户
提问于 2018-12-22 06:33:49
回答 2查看 1.6K关注 0票数 2

我使用boto3 API从lambda创建quicksight中的组,它具有角色完全访问quicksight的权限

代码语言:javascript
复制
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执行的。

有人能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-22 16:02:07

我用boto3-1.9.71和botocore-1.12.71进行了测试,它运行良好。

打包最新版本的boto3的步骤。

  1. 为本地机器上的lambda函数创建一个目录
  2. 使用下面的命令将最新的boto3安装到新目录中 pip安装boto3 --目标/path/to/your/目录
  3. 导航到新目录并创建一个名为lambda_function.py (或任何名称)的新文件。确保您有filename.function名称作为处理程序)
  4. 粘贴下面的代码到.py文件中 导入print(boto3.version)客户端= boto3.client('quicksight',region_name='us-east-1')响应= client.list_groups( AwsAccountId='0123456789',Namespace='default‘)
  5. 您可以使用适当的访问键/配置文件在本地计算机上执行这个py文件,以测试正在创建的客户端。
  6. 现在,从新目录中选择所有目录和文件,并创建一个zip文件。
  7. 将这个zip文件上传到lambda,您应该能够在没有错误的情况下执行该函数。
票数 2
EN

Stack Overflow用户

发布于 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环境更新botocoreboto3,但这可能与1.12.01.9.0引入的一些向后不兼容的更改有关。

为了解决您的问题,您可以将支持Quicksight的botocoreboto3的最新版本添加到您的部署包中,使用它们而不是AWS提供的版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53893575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档