boto3 相关问题

Boto 3 - 适用于Python的Amazon Web Services(AWS)SDK

如何使用 Python boto3 客户端正确读取和检查具有多个分片的 Kinesis 流?

AWS Kinesis 似乎是为与 Lambda 一起使用而设计的,其分片的概念与带宽和延迟相关 - 但我试图从非 Lambda 服务中读取它,这是一个长期运行的进程......

回答 1 投票 0

无效类型参数类 str,有效类型类 dict

所以我尝试使用 put_item 同步 Dynamodb 表。但我遇到了一个问题。 参数 Item.Artist 的类型无效,值:无人知晓,类型:,有效类型: 所以我尝试使用 put_item 同步 Dynamodb 表。但我遇到了一个问题。 Invalid type for parameter Item.Artist, value: No One You Know, type: <class 'str'>, valid types: <class 'dict'> 从阅读文档来看,使用 put_item 时它需要一个字典,所以本质上是这样的: '{'Artist': {'S': 'No One You Know'},'SongTitle': {'S': 'Call Me Today'}}' 以便正确添加。 这是我的代码: #!/usr/bin/python3 import boto3 source = boto3.resource('dynamodb', 'us-east-1') dest = boto3.client('dynamodb', 'us-west-2') def sync(source, dest): table = source.Table("myMusic") scan_kwargs = { 'ProjectionExpression': "Artist, SongTitle" } done = False start_key = None while not done: if start_key: scan_kwargs['ExclusiveStartKey'] = start_key response = table.scan(**scan_kwargs) for item in response['Items']: dest.put_item(TableName="myMusic", Item=item) #print(item) start_key = response.get('LastEvaluatedKey', None) done = start_key is None sync(source, dest) 因此,如果我取消注释打印语句,我会得到: {'Artist': 'No One You Know', 'SongTitle': 'Call Me Today'} 有什么方法可以清理输出或添加额外所需的“S”,或者我是否以错误的方式处理这个问题? 在代码的某个阶段,您将拥有 item = {'Artist': 'No One You Know', 'SongTitle': 'Call Me Today'} 当您取消注释 print 语句时,您所说的内容将会被打印。 使用以下代码片段: newItem = { 'Artist': {}, 'SongTitle': {} } newItem['Artist']['S'] = item['Artist'] newItem['SongTitle']['S'] = item['SongTitle'] 所以整个代码变成: #!/usr/bin/python3 import boto3 source = boto3.resource('dynamodb', 'us-east-1') dest = boto3.client('dynamodb', 'us-west-2') def sync(source, dest): table = source.Table("myMusic") scan_kwargs = { 'ProjectionExpression': "Artist, SongTitle" } done = False start_key = None while not done: if start_key: scan_kwargs['ExclusiveStartKey'] = start_key response = table.scan(**scan_kwargs) for item in response['Items']: ####################### SNIPPET ####################### newItem = { 'Artist': {}, 'SongTitle': {} } newItem['Artist']['S'] = item['Artist'] newItem['SongTitle']['S'] = item['SongTitle'] ####################### SNIPPET ####################### dest.put_item(TableName="myMusic", Item=newItem) #print(item) start_key = response.get('LastEvaluatedKey', None) done = start_key is None 我在使用 RestAPI 测试 Lambda 函数时遇到了类似的问题。我正在使用curl来测试。我通过在curl中使用--data-raw选项成功地遵守了put_item语法,而无需修改我的函数代码。 下面是针对 Windows 卷曲,因此我需要使用双引号来括起数据,而不是单引号和转义字符 \ 以便在我的数据中使用双引号。 curl api_url --data-raw "{\"uId\": {\"S\": \"4\"}, \"Add\": {\"SS\": [\"地址 1\",\"地址 2\"]}, \"电子邮件\": {\"S\": \“[电子邮件受保护]\”},\“暴徒\”:{\“N \”:\“6512345678 \”},\“名称\”: {\"S\": \"Vijaya R\"}}" 对于非 Windows 系统来说这应该可以工作(未经测试)。 curl api_url --data-raw '{"uId": {"S": "4"}, "添加": {"SS": [“地址1”,“地址2”]},“电子邮件”:{“S”: "[电子邮件受保护]"}, "mob": {"N": "6512345678"}, "name": {“S”:“Vijaya R”}}'

回答 2 投票 0

从 dynamodb 删除项目之前如何检查是否存在重复项?

我有一个dynamo数据库,其主键由id和排序键组成。我想删除一堆记录(仍然需要弄清楚如何批量执行),这是一个起点 - 示例代码...

回答 1 投票 0

从 dynamodb 删除项目之前如何检查是否存在重复项?

我有一个dynamo数据库,其主键由id和排序键组成。我想删除一堆记录(仍然需要弄清楚如何批量执行),这是一个起点 - 示例代码...

回答 1 投票 0

处理 AWS Kinesis 流中的所有数据是否需要从多个分片读取?

我正在使用 Python 的 boto3 客户端处理来自 Kinesis 流的记录,并且我能够找到的每个文档都仅从第一个分片读取。代码通常如下所示: 回复...

回答 1 投票 0

在一个请求中读取整个 S3 存储桶

我有一个包含 100,000 张图像(png\jpg)的存储桶,我想在一个 s3 请求中读取它们。 这是我的代码: # 连接到 s3 s3 = boto3.resource('s3') 桶 = s3.Bucket(bucket_name) # g...

回答 1 投票 0

Boto3 上的三元运算符

看到一些与将典型 JSON 对象序列化为 DynamoDB JSON 格式相关的代码。这里提供了链接 真正的问题是为什么他可以使用三元运算符(x if c then y),而他可以只使用 f...

回答 1 投票 0

boto3 从 dynamodb 查询结果中删除 Decimal() 表示法 - python

所以我正在使用 boto3,尝试从 dynamoDB 表中检索一些数据,并且返回给我的每个数字都使用这种 Decimal(..) 表示法,而不是获取 { “商品编号&qu...

回答 2 投票 0

AWS Cognito - 使用 API 创建具有外部身份的用户

背景:我有一个网页(内部工具),它使用由 Cognito 保护的 API。当前在池中创建用户的方式如下所示: 用户进入网页 使用 Google 登录 认知

回答 2 投票 0

在多个aws账户上运行python脚本的最佳解决方案

我想使用 boto3 sdk 通过多个 aws 帐户运行 python 脚本。我有一个在多个 aws 账户中拥有角色的用户。我打算利用 sts 并迭代

回答 1 投票 0

Cloudfront 与 S3 签名 URL 和 Boto3

尝试设置一个完全签名和保护的cloudfront URL。 例如。我希望需要应用程序代码才能访问该资源。 通过 S3 直接分发,我可以简单地通过以下方式完成此操作: ...

回答 3 投票 0

Boto3 并未真正启动实例

我正在实例上运行 Python 代码,并尝试使用 boto3 start_instances 启动 EC2 实例。该代码有效并给出以下响应: 响应:{'StartingInstances':[{'

回答 1 投票 0

验证 s3 文件夹中的所有 cloudformation 文件

CloudFormation validate 支持验证 s3 中的 cloudformation 模板。 如何验证 s3 位置中的所有文件。这些文件位于一个文件夹中。

回答 2 投票 0

使用 Boto3 查找 AWS 中目标组中不健康的实例

我试图使用boto3找到目标组中不健康的实例,但没有可以提供的功能。

回答 1 投票 0

如何通过python映射/序列化dynamodb中的数据?

基于aws文档,https://docs.aws.amazon.com/code-library/latest/ug/python_3_dynamodb_code_examples.html,我使用boto3客户端在dynamodb表中创建/更新数据。 dynamodb 支持...

回答 1 投票 0

“名称‘boto3’未定义”

我正在尝试创建基本的 Lambda 函数来连接到 S3,然后执行其余的操作,但我在开始连接到 S3 时陷入困境,并在运行代码时遇到以下错误。 导入

回答 1 投票 0

我在使用 Boto3 连接到 STS 假定角色时遇到访问被拒绝错误

我可以使用 AWS 控制台手动担任角色,但在使用 boto3 担任角色时出现访问被拒绝错误 | sts_client = boto3.client('sts') 假定角色 = sts_client.assume_role( 罗尔...

回答 1 投票 0

Django - Oracle Cloud Bucket 与 django-storages 集成

我已将 django-storages 配置为指向 OCI 存储桶。下面是配置: AWS_S3_ACCESS_KEY_ID = env('AWS_BUCKET_KEY') AWS_SECRET_ACCESS_KEY = env('AWS_BUCKET_SECRET')

回答 1 投票 0

AWS SageMaker 端点:调用 boto3.client("s3") 时出现超出最大递归深度错误

当我尝试在已部署的 SageMaker 端点(对于 TensorFlow 模型)上调用 .predict() 时,遇到最大递归深度超出错误。我已将日志语句放入推理脚本中,

回答 1 投票 0

如何知道EC2实例停止时间?

我真的需要了解AWS EC2实例的停止时间。我已经检查了AWS cloudtrail,但找到确切停止的EC2实例并不容易。可以看到确切的停止时间...

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.