Я изучаю Erlang с рубинового фона и с некоторым затруднением захватываю мыслительный процесс. Проблема, которую я пытаюсь решить, заключается в следующем: мне нужно сделать один и тот же запрос на api, каждый раз, когда я получаю уникальный идентификатор в ответе, который мне нужно передать в следующий запрос, пока не будет возвращен ID. Из каждого ответа мне нужно извлечь определенные данные и использовать их для других вещей.erlang, извлекать значения из списка кортежей непрерывно
Сначала получите итератор:
ShardIteratorResponse = kinetic:get_shard_iterator(GetShardIteratorPayload).
{ok,[{<<"ShardIterator">>,
<<"AAAAAAAAAAGU+v0fDvpmu/02z5Q5OJZhPo/tU7fjftFF/H9M7J9niRJB8MIZiB9E1ntZGL90dIj3TW6MUWMUX67NEj4GO89D"...>>}]}
PARSE вне shard_iterator ..
{_, [{_, ShardIterator}]} = ShardIteratorResponse.
Сделать запрос KINESIS для потоков записей ...
GetRecordsPayload = [{<<"ShardIterator">>, <<ShardIterator/binary>>}].
[{<<"ShardIterator">>,
<<"AAAAAAAAAAGU+v0fDvpmu/02z5Q5OJZhPo/tU7fjftFF/H9M7J9niRJB8MIZiB9E1ntZGL90dIj3TW6MUWMUX67NEj4GO89DETABlwVV"...>>}]
14> RecordsResponse = kinetic:get_records(GetRecordsPayload).
{ok,[{<<"NextShardIterator">>,
<<"AAAAAAAAAAFy3dnTJYkWr3gq0CGo3hkj1t47ccUS10f5nADQXWkBZaJvVgTMcY+nZ9p4AZCdUYVmr3dmygWjcMdugHLQEg6x"...>>},
{<<"Records">>,
[{[{<<"Data">>,<<"Zmlyc3QgcmVjb3JkISEh">>},
{<<"PartitionKey">>,<<"BlanePartitionKey">>},
{<<"SequenceNumber">>,
<<"49545722516689138064543799042897648239478878787235479554">>}]}]}]}
Я я изо всех сил пытаюсь написать цикл, который продолжает удалять конечную точку кинезита для этого потока, пока не будет e shard iterators ... иначе я хочу все записи. Поскольку я не могу перечислить переменные, как в рубине ... Любое руководство поможет оценить!