python - 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
谁能帮我这个?
解决方案
我用 boto3-1.9.71 和 botocore-1.12.71 进行了测试,它工作正常。
打包最新版本 boto3 的步骤。
- 在本地机器上为 lambda 函数创建一个目录
使用以下命令将最新的 boto3 安装到您的新目录中
pip install boto3 --target /path/to/your/directory
- 导航到新目录并创建一个名为 lambda_function.py 的新文件(或任何名称。确保您有 filename.function 名称作为处理程序)
将以下代码粘贴到 .py 文件中
导入 boto3 打印(boto3.版本)客户端 = boto3.client('quicksight',region_name='us-east-1')响应 = client.list_groups(AwsAccountId='0123456789',命名空间='default')
您可以使用适当的访问密钥/配置文件在本地计算机上执行此 py 文件,以测试正在创建的客户端
- 现在从新目录中选择所有目录和文件并创建一个 zip 文件。
- 将此 zip 文件上传到 lambda,您应该能够正确执行该函数。
推荐阅读
- python - 两个类在 HTML 中具有相同的名称,而 BeautifulSoup 只选择第一个类
- javascript - 重构 react/node 如何处理响应
- c++ - 使用可变参数将成员函数绑定到实例
- ms-office - 从头开始检查加载以调试 Excel 加载项
- javascript - 将返回的 api 数据设置为反应状态
- javascript - 换班
- 当每个复选框
- 被检查
- node.js - 控制器引用未定义 node.js 应用程序
- docker - 如何将 Docker 与 GitHub Actions 一起使用?
- r - 第二个 yaxis 不适用
- ios - Swift:无法单击子视图中的按钮