

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Auxiliares do DynamoDB em $util.dynamodb
<a name="dynamodb-helpers-in-util-dynamodb"></a>

**nota**  
Agora, oferecemos suporte principalmente ao runtime do APPSYNC\_JS e sua documentação. Considere usar o runtime do APPSYNC\_JS e seus guias disponíveis [aqui](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-js-version.html).

`$util.dynamodb` contém os métodos auxiliares que facilitam gravar e ler dados no Amazon DynamoDB, como mapeamento e formatação do tipo automático. Esses métodos são projetados para criar tipos primitivos de mapeamento e Listas no formato de entrada adequado do DynamoDB automaticamente, que é um `Map` do formato `{ "TYPE" : VALUE }`.

Por exemplo, anteriormente, um modelo de mapeamento da solicitação para criar um novo item no DynamoDB pode ter a seguinte aparência:

```
{
    "version" : "2017-02-28",
    "operation" : "PutItem",
    "key": {
        "id" : { "S" : "$util.autoId()" }
    },
    "attributeValues" : {
         "title" : { "S" : $util.toJson($ctx.args.title) },
         "author" : { "S" : $util.toJson($ctx.args.author) },
         "version" : { "N", $util.toJson($ctx.args.version) }
    }
}
```

Se quiséssemos adicionar campos ao objeto teríamos que atualizar a consulta do GraphQL no esquema, bem como o modelo de mapeamento da solicitação. No entanto, agora podemos reestruturar o nosso modelo de mapeamento da solicitação para que colete automaticamente novos campos em nosso esquema e adicione-os ao DynamoDB com os tipos corretos:

```
{
    "version" : "2017-02-28",
    "operation" : "PutItem",
    "key": {
        "id" : $util.dynamodb.toDynamoDBJson($util.autoId())
    },
    "attributeValues" : $util.dynamodb.toMapValuesJson($ctx.args)
}
```

No exemplo anterior, estamos usando o auxiliar `$util.dynamodb.toDynamoDBJson(...)` para pegar automaticamente o ID gerado e convertê-lo para a representação do DynamoDB de um atributo string. Em seguida, pegamos todos os argumentos e os convertemos para suas representações do DynamoDB, exportando-os para o campo `attributeValues` no modelo.

Cada auxiliar tem duas versões: uma versão que retorna um objeto (por exemplo, `$util.dynamodb.toString(...)`) e uma versão que retorna o objeto como uma string JSON (por exemplo, `$util.dynamodb.toStringJson(...)`). No exemplo anterior, usamos a versão que retorna os dados como uma string JSON. Se quiser manipular o objeto antes de ser usado no modelo, você pode optar por retornar um objeto em vez disso, conforme mostrado a seguir:

```
{
    "version" : "2017-02-28",
    "operation" : "PutItem",
    "key": {
        "id" : $util.dynamodb.toDynamoDBJson($util.autoId())
    },

    #set( $myFoo = $util.dynamodb.toMapValues($ctx.args) )
    #set( $myFoo.version = $util.dynamodb.toNumber(1) )
    #set( $myFoo.timestamp = $util.dynamodb.toString($util.time.nowISO8601()))

    "attributeValues" : $util.toJson($myFoo)
}
```

No exemplo anterior, estamos retornando os argumentos convertidos como um mapa em vez de uma string JSON e, em seguida, adicionando os campos `version` e `timestamp` antes de finalmente exportá-los para o campo `attributeValues` no modelo usando `$util.toJson(...)`.

A versão JSON de cada um dos auxiliares é equivalente a empacotar a versão não JSON em `$util.toJson(...)`. Por exemplo, as seguintes instruções são exatamente as mesmas:

```
$util.toStringJson("Hello, World!")
$util.toJson($util.toString("Hello, World!"))
```

## toDynamoDB
<a name="utility-helpers-in-toDynamoDB"></a>

### Lista de utilitários do toDynamoDB
<a name="utility-helpers-in-toDynamoDB-list"></a>

** `$util.dynamodb.toDynamoDB(Object) : Map` **  
Ferramenta de conversão de objetos gerais do DynamoDB que converte objetos de entrada para a representação adequada do DynamoDB. Ela tem opiniões fortes sobre como representa alguns tipos: por exemplo, usará listas ("L") em vez de conjuntos ("SS", "NS", "BS"). Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  
**Exemplo de string**  

```
Input:      $util.dynamodb.toDynamoDB("foo")
Output:     { "S" : "foo" }
```
**Exemplo de número**  

```
Input:      $util.dynamodb.toDynamoDB(12345)
Output:     { "N" : 12345 }
```
**Exemplo de booliano**  

```
Input:      $util.dynamodb.toDynamoDB(true)
Output:     { "BOOL" : true }
```
**Exemplo de lista**  

```
Input:      $util.dynamodb.toDynamoDB([ "foo", 123, { "bar" : "baz" } ])
Output:     {
               "L" : [
                   { "S" : "foo" },
                   { "N" : 123 },
                   {
                       "M" : {
                           "bar" : { "S" : "baz" }
                       }
                   }
               ]
           }
```
**Exemplo de mapa**  

```
Input:      $util.dynamodb.toDynamoDB({ "foo": "bar", "baz" : 1234, "beep": [ "boop"] })
Output:     {
               "M" : {
                   "foo"  : { "S" : "bar" },
                   "baz"  : { "N" : 1234 },
                   "beep" : {
                       "L" : [
                           { "S" : "boop" }
                       ]
                   }
               }
           }
```

****`$util.dynamodb.toDynamoDBJson(Object) : String`** **  
O mesmo que `$util.dynamodb.toDynamoDB(Object) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

## Utilitários toString
<a name="utility-helpers-in-toString"></a>

### Lista de utilitários toString
<a name="utility-helpers-in-toString-list"></a>

****`$util.dynamodb.toString(String) : String`** **  
Converte uma string de entrada para o formato de string do DynamoDB. Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toString("foo")
Output:     { "S" : "foo" }
```

** `$util.dynamodb.toStringJson(String) : Map` **  
O mesmo que `$util.dynamodb.toString(String) : String`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

** `$util.dynamodb.toStringSet(List<String>) : Map` **  
Converte uma lista com Strings para o formato de conjunto de strings do DynamoDB. Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toStringSet([ "foo", "bar", "baz" ])
Output:     { "SS" : [ "foo", "bar", "baz" ] }
```

** `$util.dynamodb.toStringSetJson(List<String>) : String` **  
O mesmo que `$util.dynamodb.toStringSet(List<String>) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

## Utilitários toNumber
<a name="utility-helpers-in-toNumber"></a>

### Lista de utilitários toNumber
<a name="utility-helpers-in-toNumber-list"></a>

** `$util.dynamodb.toNumber(Number) : Map` **  
Converte um número para o formato de número do DynamoDB. Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toNumber(12345)
Output:     { "N" : 12345 }
```

** `$util.dynamodb.toNumberJson(Number) : String` **  
O mesmo que `$util.dynamodb.toNumber(Number) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

** `$util.dynamodb.toNumberSet(List<Number>) : Map` **  
Converte uma lista de números para o formato de conjunto de números do DynamoDB. Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toNumberSet([ 1, 23, 4.56 ])
Output:     { "NS" : [ 1, 23, 4.56 ] }
```

** `$util.dynamodb.toNumberSetJson(List<Number>) : String` **  
O mesmo que `$util.dynamodb.toNumberSet(List<Number>) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

## Utilitários toBinary
<a name="utility-helpers-in-toBinary"></a>

### Lista de utilitários toBinary
<a name="utility-helpers-in-toBinary-list"></a>

** `$util.dynamodb.toBinary(String) : Map` **  
Converte dados binários codificados como uma string em base64 para o formato binário do DynamoDB. Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toBinary("foo")
Output:     { "B" : "foo" }
```

** `$util.dynamodb.toBinaryJson(String) : String` **  
O mesmo que `$util.dynamodb.toBinary(String) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

** `$util.dynamodb.toBinarySet(List<String>) : Map` **  
Converte uma lista de dados binários codificados como strings em base64 para o formato de conjunto de binários do DynamoDB. Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toBinarySet([ "foo", "bar", "baz" ])
Output:     { "BS" : [ "foo", "bar", "baz" ] }
```

** `$util.dynamodb.toBinarySetJson(List<String>) : String` **  
O mesmo que `$util.dynamodb.toBinarySet(List<String>) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

## Utilitários toBoolean
<a name="utility-helpers-in-toBoolean"></a>

### Lista de utilitários toBoolean
<a name="utility-helpers-in-toBoolean-list"></a>

** `$util.dynamodb.toBoolean(Boolean) : Map` **  
Converte um booliano para o formato booliano adequado do DynamoDB. Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toBoolean(true)
Output:     { "BOOL" : true }
```

** `$util.dynamodb.toBooleanJson(Boolean) : String` **  
O mesmo que `$util.dynamodb.toBoolean(Boolean) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

## Utilitários toNull
<a name="utility-helpers-in-toNull"></a>

### Lista de utilitários toNull
<a name="utility-helpers-in-toNull-list"></a>

** `$util.dynamodb.toNull() : Map` **  
Retorna um valor nulo no formato nulo do DynamoDB. Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toNull()
Output:     { "NULL" : null }
```

** `$util.dynamodb.toNullJson() : String` **  
O mesmo que `$util.dynamodb.toNull() : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

## Utilitários toList
<a name="utility-helpers-in-toList"></a>

### Lista de utilitários toList
<a name="utility-helpers-in-toList-list"></a>

****`$util.dynamodb.toList(List) : Map`** **  
Converte uma lista de objetos no formato de lista do DynamoDB. Cada item na lista também é convertido para o formato adequado do DynamoDB. Ela tem opiniões fortes sobre como representa alguns dos objetos aninhados: por exemplo, usará listas ("L") em vez de conjuntos ("SS", "NS", "BS"). Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toList([ "foo", 123, { "bar" : "baz" } ])
Output:     {
               "L" : [
                   { "S" : "foo" },
                   { "N" : 123 },
                   {
                       "M" : {
                           "bar" : { "S" : "baz" }
                       }
                   }
               ]
           }
```

** `$util.dynamodb.toListJson(List) : String` **  
O mesmo que `$util.dynamodb.toList(List) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

## Utilitários toMap
<a name="utility-helpers-in-toMap"></a>

### Lista de utilitários toMap
<a name="utility-helpers-in-toMap-list"></a>

** `$util.dynamodb.toMap(Map) : Map` **  
Converte um mapa para o formato de mapa do DynamoDB. Cada valor no mapa também é convertido para o formato adequado do DynamoDB. Ela tem opiniões fortes sobre como representa alguns dos objetos aninhados: por exemplo, usará listas ("L") em vez de conjuntos ("SS", "NS", "BS"). Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toMap({ "foo": "bar", "baz" : 1234, "beep": [ "boop"] })
Output:     {
               "M" : {
                   "foo"  : { "S" : "bar" },
                   "baz"  : { "N" : 1234 },
                   "beep" : {
                       "L" : [
                           { "S" : "boop" }
                       ]
                   }
               }
           }
```

** `$util.dynamodb.toMapJson(Map) : String` **  
O mesmo que `$util.dynamodb.toMap(Map) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

** `$util.dynamodb.toMapValues(Map) : Map` **  
Cria uma cópia do mapa onde cada valor foi convertido para o formato adequado do DynamoDB. Ela tem opiniões fortes sobre como representa alguns dos objetos aninhados: por exemplo, usará listas ("L") em vez de conjuntos ("SS", "NS", "BS").  

```
Input:      $util.dynamodb.toMapValues({ "foo": "bar", "baz" : 1234, "beep": [ "boop"] })
Output:     {
               "foo"  : { "S" : "bar" },
               "baz"  : { "N" : 1234 },
               "beep" : {
                   "L" : [
                       { "S" : "boop" }
                   ]
               }
           }
```
Observação: isso é um pouco diferente de `$util.dynamodb.toMap(Map) : Map`, uma vez que retorna somente o conteúdo do valor do atributo do DynamoDB, mas não todo o valor do atributo em si. Por exemplo, as seguintes instruções são exatamente as mesmas:  

```
$util.dynamodb.toMapValues($map)
$util.dynamodb.toMap($map).get("M")
```

** `$util.dynamodb.toMapValuesJson(Map) : String` **  
O mesmo que `$util.dynamodb.toMapValues(Map) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

## Utilitários S3Object
<a name="utility-helpers-in-S3Object"></a>

### Lista de utilitários do S3Object
<a name="utility-helpers-in-S3Object-list"></a>

** `$util.dynamodb.toS3Object(String key, String bucket, String region) : Map` **  
Converte a chave, bucket e região na representação de Objeto do S3 do DynamoDB. Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toS3Object("foo", "bar", region = "baz")
Output:     { "S" : "{ \"s3\" : { \"key\" : \"foo", \"bucket\" : \"bar", \"region\" : \"baz" } }" }
```

** `$util.dynamodb.toS3ObjectJson(String key, String bucket, String region) : String` **  
O mesmo que `$util.dynamodb.toS3Object(String key, String bucket, String region) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

** `$util.dynamodb.toS3Object(String key, String bucket, String region, String version) : Map` **  
Converte a chave, bucket, região e versão opcional na representação de Objeto do S3 do DynamoDB. Isso retorna um objeto que descreve o valor do atributo do DynamoDB.  

```
Input:      $util.dynamodb.toS3Object("foo", "bar", "baz", "beep")
Output:     { "S" : "{ \"s3\" : { \"key\" : \"foo\", \"bucket\" : \"bar\", \"region\" : \"baz\", \"version\" = \"beep\" } }" }
```

** `$util.dynamodb.toS3ObjectJson(String key, String bucket, String region, String version) : String` **  
O mesmo que `$util.dynamodb.toS3Object(String key, String bucket, String region, String version) : Map`, mas retorna o valor do atributo do DynamoDB como uma string codificada JSON.

** `$util.dynamodb.fromS3ObjectJson(String) : Map` **  
Aceita o valor de string de um Objeto do S3 do DynamoDB e retorna um mapa que contém a chave, bucket, região e versão opcional.  

```
Input:      $util.dynamodb.fromS3ObjectJson({ "S" : "{ \"s3\" : { \"key\" : \"foo\", \"bucket\" : \"bar\", \"region\" : \"baz\", \"version\" = \"beep\" } }" })
Output:     { "key" : "foo", "bucket" : "bar", "region" : "baz", "version" : "beep" }
```