Выражения AWS DDB
Команды ddb обеспечивают упрощённую запись выражений, добавляя дополнительный синтаксис, позволяющий указывать имена и значения атрибутов без определения плейсхолдеров.
Например, следующую команду можно написать с помощью базовых команд dynamodb:
aws dynamodb scan \
--table-name ProductCatalog \
--condition-expression "Price between :lo and :hi" \
--expression-attribute-values file://values.json
При этом содержимое values.json будет:
{
":lo": {"N": "500"},
":hi": {"N": "600"}
}
С помощью ddb select вы бы написали:
aws ddb select ProductCatalog --condition 'Price between 500 and 600'
Затем CLI обработает извлечение чисел для формирования конечного запроса. CLI может обрабатывать извлечение любых значений таким образом.
Синтаксис имён атрибутов
Имена атрибутов могут быть указаны как необрамлённые строки или как строки в одинарных кавычках. Использование одинарных кавычек будет необходимо, если имя атрибута начинается с цифры или содержит символы, не входящие в ASCII буквы и цифры. Например, следующие имена атрибутов будут допустимыми: foo, 'foo bar', 'foo.bar' и т. д.
Пути к атрибутам
При указании пути к атрибуту каждое имя атрибута в пути может быть индивидуально обрамлено кавычками. Например: foo.'bar baz'[0].
Зарезервированные слова
Следующие слова зарезервированы в CLI, поэтому их НЕОБХОДИМО заключать в кавычки, если вы хотите использовать их в качестве имён атрибутов. Каждое слово нечувствительно к регистру.
ANDBETWEENINORNOTSETREMOVEADDDELETETRUEFALSENULL
Синтаксис значений атрибутов
Числа
Числа могут быть указаны так же, как и в JSON. Например, каждое из следующих значений будет корректным числом: 1, 1.1, 1.1e3, -1.1e-3 и т. д.
Строки
Строки могут быть указаны так же, как и в JSON. Это означает, что они должны быть заключены в двойные кавычки, а любые внутренние двойные кавычки должны быть экранированы обратной косой чертой. Например, каждое из следующих значений будет допустимой строкой: "foo", "\"hello\" world" и т. д. Обратите внимание, что вам может потребоваться экранировать саму обратную косую черту в зависимости от вашей оболочки.
Бинарные данные
Бинарные значения представляют собой base64-кодированные значения, префикс которых b", а суффикс – ". Например, следующее значение будет допустимым бинарным значением: b"4pyT".
Булевы значения
Булевы значения могут быть указаны как true или false.
Null
Значения null указываются просто как null
Списки
Списки могут быть указаны так же, как и в JSON, за исключением того, что бинарные значения и множества являются допустимыми элементами. Это означает, что список должен начинаться с [ и заканчиваться ]. Каждый элемент в списке должен быть разделен запятой. Например: ["foo", b"4pyT", 8].
Множества
Множества должны начинаться с { и заканчиваться }. Каждый элемент в множестве должен быть разделен запятой. Множества могут содержать только числа, строки и бинарные данные. Все значения в множестве должны быть одного типа. Множества должны содержать по крайней мере одно значение. Например, каждое из следующих значений является допустимым множеством: {1, 2, 3}, {"foo", "bar"}, {b"4pyT"}.
Карты
Карты могут быть указаны так же, как и в JSON, за исключением того, что бинарные данные и множества являются допустимыми значениями. Это означает, что карта должна начинаться с { и заканчиваться }. Она может содержать любое количество пар ключ-значение, где ключ и значение разделены двоеточием (:). Ключи должны быть строками, но значения могут быть любого типа. Например: {"foo": {"bar": {b"4pyT"}}}.
© Copyright 2025, Amazon Web Services. Created using Sphinx.