Ошибка ниже при создании таблицы в Dynamodb для помещения данных из корзины s3 и загрузки в таблицу, содержащую более 4 столбцов.
ошибка в cloudwatchlogs: «ошибка инициализации модуля: произошла ошибка (ResourceInUseException) при вызове операции CreateTable: таблица уже существует: "пример кода:
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('\n')
# 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]
})
МОИ Запросы: Пожалуйста, помогите мне, взяв несколько случайных '|'отдельные значения для заданных столбцов в текстовом файле и запуск кода в лямбда-выражении.
Примечание. Используемые службы - это Dynamodb в качестве ресурса, S3 в качестве клиента.В этом случае я получаю сообщение об ошибке, но я вижу, что каждый раз, когда я сохраняю код и загружаю текстовый файл в s3, создается таблица, а затем появляется ошибка, описанная выше.Я удаляю таблицу, сохраняю лямбда-код и загружаю файл в S3, и снова та же самая ошибка, которую я получаю.Здесь S3 действует как триггер.Я также создал одну роль S3-lambda-cloudwatchlogs-dynamodb.
уже указано выше