首页 > 解决方案 > AWS lambda,未知服务:'quicksight'

问题描述

我正在使用 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

谁能帮我这个?

标签: pythonamazon-web-serviceslambdaboto3

解决方案


我用 boto3-1.9.71 和 botocore-1.12.71 进行了测试,它工作正常。

打包最新版本 boto3 的步骤。

  1. 在本地机器上为 lambda 函数创建一个目录
  2. 使用以下命令将最新的 boto3 安装到您的新目录中

    pip install boto3 --target /path/to/your/directory

  3. 导航到新目录并创建一个名为 lambda_function.py 的新文件(或任何名称。确保您有 filename.function 名称作为处理程序)
  4. 将以下代码粘贴到 .py 文件中

    导入 boto3 打印(boto3.版本)客户端 = boto3.client('quicksight',region_name='us-east-1')响应 = client.list_groups(AwsAccountId='0123456789',命名空间='default')

  5. 您可以使用适当的访问密钥/配置文件在本地计算机上执行此 py 文件,以测试正在创建的客户端

  6. 现在从新目录中选择所有目录和文件并创建一个 zip 文件。
  7. 将此 zip 文件上传到 lambda,您应该能够正确执行该函数。

推荐阅读