J'ai un fichier json que je veux utiliser pour charger ma table Dynamo dans AWS. Dans la console AWS, il n'y a qu'une option pour créer un enregistrement à la fois. Pas bon: )
Essentiellement, mon fichier .JSON est un tableau d'objets qui contiennent les données de chaque colonne du tableau, à savoir:
{
"Column1": "Column1 Value",
"Column2": "Column2 Value",
"Column3": "Column3 Value",
"Column4": "Column4 Value",
},
Existe-t-il un moyen de le faire via la console AWS et d'importer mon fichier json, ou dois-je utiliser AWS JS SDK pour le faire par programme ??
Vous n'avez pas besoin d'utiliser l'API. Vous pouvez utiliser l'AWS-CLI à la place, à savoir:
aws dynamodb put-item --table-name MusicCollection --item file://item.json --return-consumed-capacity TOTAL
mais vous devrez peut-être modifier légèrement votre format JSON.
Plus d'exemples et de documentation ici:
https://docs.aws.Amazon.com/cli/latest/reference/dynamodb/put-item.html
La réponse d'E.J. Brenaman semble correct, pour un seul enregistrement, mais il ne répond pas à la question d'origine (qui doit ajouter un tableau d'enregistrements).
Pour cela, la commande est
aws dynamodb batch-write-item --request-items file://aws-requests.json
Mais, vous devrez créer un fichier JSON modifié, comme ceci (notez le DynamoDB JSON qui spécifie les types de données):
{
"YourTableName": [
{
"PutRequest": {
"Item": {
"Column1": { "S": "Column1 Value" },
"Column2": { "S": "Column2 Value" },
"Column3": { "S": "Column3 Value" },
"Column4": { "S": "Column4 Value" },
}
}
},
{
"PutRequest": {
"Item": {
"Column1": { "S": "Column1 Value" },
"Column2": { "S": "Column2 Value" },
"Column3": { "S": "Column3 Value" },
"Column4": { "S": "Column4 Value" },
}
}
}
]
}
J'ai utilisé boto3 dans python pour charger les données
import boto3
import json
dynamodbclient=boto3.resource('dynamodb')
sample_table = dynamodbclient.Table('ec2metadata')
with open('/samplepath/spotec2interruptionevent.json', 'r') as myfile:
data=myfile.read()
# parse file
obj = json.loads(data)
#instance_id and cluster_id is the Key in dynamodb table
response=sample_table.put_item(
Item={
'instance_id': instanceId,
'cluster_id': clusterId,
'event':obj
}
)
Voici un exemple pour javascript: