下面列出错误,同时在气味中建立一个表,将3桶和装载数据输入有4个以上的表。
error in cloudwatchlogs:"module initialization error: An error occurred (ResourceInUseException) when calling the CreateTable operation: Table already exists: " sample code:
import boto3
s3 = boto3.client( s3 )
dynamodb = boto3.resource( dynamodb )
def txt_reader(event,context):
bucket_path = event[ Records ][0][ s3 ][ bucket ][ name ]
key_path = event[ Records ][0][ s3 ][ object ][ key ]
obj = s3.get_object(Bucket = bucket_path,Key = key_path)
body_rows = obj[ Body ].read().decode( utf-8 ).split(
)
# Create the DynamoDB table.
table_name = dynamodb.create_table(
TableName= TFM ,
KeySchema=[
{
AttributeName : CN ,
KeyType : HASH
},
{
AttributeName : SN ,
KeyType : RANGE
}
],
AttributeDefinitions=[
{
AttributeName : CN ,
AttributeType : S
},
{
AttributeName : SN ,
AttributeType : S
},
{
AttributeName : WF ,
AttributeType : S
},
],
#defining local secondary index on column WF
LocalSecondaryIndexes=[
{
IndexName : WF ,
KeySchema : [
{
KeyType : HASH ,
AttributeName : CN
},
{
KeyType : RANGE ,
AttributeName : WF
}
],
Projection : {
ProjectionType : ALL ,
}
}
],
ProvisionedThroughput={
ReadCapacityUnits : 5,
WriteCapacityUnits : 5
}
)
table=dynamodb.Table(table_name)
#using a method batch_writer as batch below
with table.batch_writer() as batch:
for row in body_rows:
batch.put_item(Item = {
CN :row.split( | )[0],
SN :row.split( | )[1],
WF :row.split( | )[2],
sf :row.split( | )[3],
Con :row.split( | )[4],
LCI :row.split( | )[5]
})
MY Queries: 请帮助我,在txt档案中为特定栏目提取一些随机的微粒数值,并在Mlambda操作该代码。
注:将使用的服务是作为资源的Dynamodb,S3作为客户。 在此情况下,如果出现错误,但可以发现,每节省代码和上载第3页的txt文档,表格也正在制作,然后出现上述错误。 我删除了表格,删除了Mlambda代码,将文件上载到S3,并再次出现同样的错误。 这里S3是触发因素。 我也发挥了S3-lambda-cloudwatchlogs-dynamodb的作用。
上文已经提到