Как поместить элемент в AWS DynamoDb, используя AWS Lambda с Python

Реализация, которую я предлагаю здесь, проста и эффективна. Он не выделяет никакой дополнительной памяти прямо или косвенно с помощью регулярных выражений или методов, таких как substring (), split (), toCharArray () и т. Д.

. Эта реализация сначала пересекает обе строки для поиска первые символы, которые отличаются, на максимальной скорости, без какой-либо специальной обработки во время этого. Конкретное сравнение чисел запускается только тогда, когда эти символы являются двумя цифрами. Побочным эффектом этой реализации является то, что цифра считается большей, чем другие буквы, в отличие от лексикографического порядка по умолчанию.

public static final int compareNatural (String s1, String s2)
{
   // Skip all identical characters
   int len1 = s1.length();
   int len2 = s2.length();
   int i;
   char c1, c2;
   for (i = 0, c1 = 0, c2 = 0; (i < len1) && (i < len2) && (c1 = s1.charAt(i)) == (c2 = s2.charAt(i)); i++);

   // Check end of string
   if (c1 == c2)
      return(len1 - len2);

   // Check digit in first string
   if (Character.isDigit(c1))
   {
      // Check digit only in first string 
      if (!Character.isDigit(c2))
         return(1);

      // Scan all integer digits
      int x1, x2;
      for (x1 = i + 1; (x1 < len1) && Character.isDigit(s1.charAt(x1)); x1++);
      for (x2 = i + 1; (x2 < len2) && Character.isDigit(s2.charAt(x2)); x2++);

      // Longer integer wins, first digit otherwise
      return(x2 == x1 ? c1 - c2 : x1 - x2);
   }

   // Check digit only in second string
   if (Character.isDigit(c2))
      return(-1);

   // No digits
   return(c1 - c2);
}
24
задан The Guy with The Hat 31 October 2018 в 13:58
поделиться

1 ответ

полный пример:

import boto3

def lambda_handler(event, context):

    client = boto3.client('dynamodb')

    for record in event['Records']:
        # your logic here...
        try:
            client.update_item(TableName='dynamo_table_name', Key={'hash_key':{'N':'value'}}, AttributeUpdates={"some_key":{"Action":"PUT","Value":{"N":'value'}}}) 
        except Exception, e:
            print (e)

обратите внимание, что вам нужно решить, когда использовать «update_item» или «put_item».

с помощью update_item вы гарантируете наличие только одной записи с одинаковым хешем / диапазоном. если запись существует, она может обновить эту запись, иначе она создаст ее

http://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client. update_item

13
ответ дан Eyal Ch 31 October 2018 в 13:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: