

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á.

# AWS::Serverless::GraphQLApi
<a name="sam-resource-graphqlapi"></a>

Use o tipo de `AWS::Serverless::GraphQLApi` recurso AWS Serverless Application Model (AWS SAM) para criar e configurar uma AWS AppSync GraphQL API para seu aplicativo sem servidor.

Para saber mais AWS AppSync, consulte [O que é AWS AppSync?](https://docs.aws.amazon.com/appsync/latest/devguide/what-is-appsync.html) no *Guia do AWS AppSync desenvolvedor*.

## Sintaxe
<a name="sam-resource-graphqlapi-syntax"></a>

### YAML
<a name="sam-resource-graphqlapi-syntax-yaml"></a>

```
LogicalId:
  Type: AWS::Serverless::GraphQLApi
  Properties:
    ApiKeys: ApiKeys
    Auth: Auth
    Cache: [AWS::AppSync::ApiCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)
    DataSources: DataSource
    DomainName: [AWS::AppSync::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)
    Functions: Function
    Logging: [LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html)
    Name: String
    Resolvers: Resolver
    SchemaInline: String
    SchemaUri: String
    Tags:
    - [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)
    XrayEnabled: Boolean
```

## Propriedades
<a name="sam-resource-graphqlapi-properties"></a>

`ApiKeys`  <a name="sam-graphqlapi-apikeys"></a>
Crie uma chave exclusiva que possa ser usada para realizar operações GraphQL que exigem uma chave de API.  
*Digite*: [ApiKeys](sam-property-graphqlapi-apikeys.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`Auth`  <a name="sam-graphqlapi-auth"></a>
Configure a autenticação para sua API GraphQL.  
*Tipo*: [Auth](sam-property-graphqlapi-auth.md)  
*Obrigatório*: sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`Cache`  <a name="sam-graphqlapi-cache"></a>
A entrada de uma operação `CreateApiCache`.  
*Digite*: [AWS::AppSync::ApiCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para o [AWS::AppSync::ApiCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)recurso.

`DataSources`  <a name="sam-graphqlapi-datasources"></a>
Crie fontes de dados para as funções AWS AppSync às quais se conectar. AWS SAM oferece suporte ao Amazon DynamoDB e às fontes de dados AWS Lambda .  
*Digite*: [DataSource](sam-property-graphqlapi-datasource.md)  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`DomainName`  <a name="sam-graphqlapi-domainname"></a>
O nome de domínio personalizado para a sua API GraphQL.  
*Digite*: [AWS::AppSync::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para o [AWS::AppSync::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)recurso. AWS SAM gera automaticamente o [AWS::AppSync::DomainNameApiAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainnameapiassociation.html)recurso.

`Functions`  <a name="sam-graphqlapi-functions"></a>
Configure funções GraphQL APIs para realizar determinadas operações.  
*Tipo*: [Função](sam-property-graphqlapi-function.md)  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`Logging`  <a name="sam-graphqlapi-logging"></a>
Configura o CloudWatch registro da Amazon para sua GraphQL API.  
Se você não especificar essa propriedade, AWS SAM gerará `CloudWatchLogsRoleArn` e definirá os seguintes valores:  
+ `ExcludeVerboseContent: true`
+ `FieldLogLevel: ALL`
Para cancelar o registro, especifique o seguinte:  

```
Logging: false
```
*Digite*: [LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-logconfig)` propriedade de um `AWS::AppSync::GraphQLApi` recurso.

`LogicalId`  <a name="sam-graphqlapi-logicalid"></a>
O nome exclusivo da sua API GraphQL.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-name)` propriedade de um `AWS::AppSync::GraphQLApi` recurso.

`Name`  <a name="sam-graphqlapi-name"></a>
O nome da sua API GraphQL. Especifique essa propriedade para substituir o valor `LogicalId`.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-name)` propriedade de um `AWS::AppSync::GraphQLApi` recurso.

`Resolvers`  <a name="sam-graphqlapi-resolvers"></a>
Configure resolvedores para os campos da sua APIGraphQL. O AWS SAM suporta [JavaScript resolvedores de pipeline](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html#anatomy-of-a-pipeline-resolver-js).  
*Tipo*: [Resolver](sam-property-graphqlapi-resolver.md)  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`SchemaInline`  <a name="sam-graphqlapi-schemainline"></a>
A representação de texto de um esquema GraphQL no formato SDL.  
*Tipo:* string  
*Obrigatório:* condicional. Você deve especificar o `SchemaInline` ou o `SchemaUri`.  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Definition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definition)` propriedade de um `AWS::AppSync::GraphQLSchema` recurso.

`SchemaUri`  <a name="sam-graphqlapi-schemauri"></a>
O URI ou o caminho do bucket do Amazon Simple Storage Service (Amazon S3) do esquema para uma pasta local.  
Se você especificar um caminho para uma pasta local, CloudFormation exigirá que o arquivo seja primeiro carregado no Amazon S3 antes da implantação. Você pode usar o AWS SAMCLI para facilitar esse processo. Para obter mais informações, consulte [Como AWS SAM carrega arquivos locais na implantação](deploy-upload-local-files.md).  
*Tipo:* string  
*Obrigatório:* condicional. Você deve especificar o `SchemaInline` ou o `SchemaUri`.  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[DefinitionS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definitions3location)` propriedade de um `AWS::AppSync::GraphQLSchema` recurso.

`Tags`  <a name="sam-graphqlapi-tags"></a>
Tags (pares de chave-valor) para essa API GraphQL. Use as tags para identificar e categorizar os recursos.  
*Tipo:* lista de [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-tags)` propriedade de um `AWS::AppSync::GraphQLApi` recurso.

`XrayEnabled`  <a name="sam-graphqlapi-xrayenabled"></a>
Indique se o [AWS rastreamento de X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) deve ser usado para esse recurso.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[XrayEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-xrayenabled)` propriedade de um `AWS::AppSync::GraphQLApi` recurso.

## Valores de retorno
<a name="sam-resource-graphqlapi-return-values"></a>

Para obter uma lista dos valores de retorno, consulte o [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#aws-resource-appsync-graphqlapi-return-values.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#aws-resource-appsync-graphqlapi-return-values.html) no [Guia do usuário do CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

## Exemplos
<a name="sam-resource-graphqlapi-examples"></a>

### GraphQL API com a fonte de dados do DynamoDB
<a name="sam-resource-graphqlapi-examples-example1"></a>

Neste exemplo, criamos uma API GraphQL que usa uma tabela do DynamoDB como fonte de dados.

**schema.graphql**

```
schema {
  query: Query
  mutation: Mutation
}

type Query {
  getPost(id: String!): Post
}

type Mutation {
  addPost(author: String!, title: String!, content: String!): Post!
}

type Post {
  id: String!
  author: String
  title: String
  content: String
  ups: Int!
  downs: Int!
  version: Int!
}
```

**template.yaml**

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  DynamoDBPostsTable:
    Type: AWS::Serverless::SimpleTable

  MyGraphQLAPI:
    Type: AWS::Serverless::GraphQLApi
    Properties:
      SchemaUri: ./sam_graphql_api/schema.graphql
      Auth:
        Type: AWS_IAM
      DataSources:
        DynamoDb:
          PostsDataSource:
            TableName: !Ref DynamoDBPostsTable
            TableArn: !GetAtt DynamoDBPostsTable.Arn
      Functions:
        preprocessPostItem:
          Runtime:
            Name: APPSYNC_JS
            Version: 1.0.0
          DataSource: NONE
          CodeUri: ./sam_graphql_api/preprocessPostItem.js
        createPostItem:
          Runtime:
            Name: APPSYNC_JS
            Version: "1.0.0"
          DataSource: PostsDataSource
          CodeUri: ./sam_graphql_api/createPostItem.js
        getPostFromTable:
          Runtime:
            Name: APPSYNC_JS
            Version: "1.0.0"
          DataSource: PostsDataSource
          CodeUri: ./sam_graphql_api/getPostFromTable.js
      Resolvers:
        Mutation:
          addPost:
            Runtime:
              Name: APPSYNC_JS
              Version: "1.0.0"
            Pipeline:
            - preprocessPostItem
            - createPostItem
        Query:
          getPost:
            CodeUri: ./sam_graphql_api/getPost.js
            Runtime:
              Name: APPSYNC_JS
              Version: "1.0.0"
            Pipeline:
            - getPostFromTable
```

**createPostItem.js**

```
import { util } from "@aws-appsync/utils";

export function request(ctx) {
  const { key, values } = ctx.prev.result;
  return {
    operation: "PutItem",
    key: util.dynamodb.toMapValues(key),
    attributeValues: util.dynamodb.toMapValues(values),
  };
}

export function response(ctx) {
  return ctx.result;
}
```

**getPostFromTable.js**

```
import { util } from "@aws-appsync/utils";

export function request(ctx) {
  return dynamoDBGetItemRequest({ id: ctx.args.id });
}

export function response(ctx) {
  return ctx.result;
}

/**
 * A helper function to get a DynamoDB item
 */
function dynamoDBGetItemRequest(key) {
  return {
    operation: "GetItem",
    key: util.dynamodb.toMapValues(key),
  };
}
```

**preprocessPostItem.js**

```
import { util } from "@aws-appsync/utils";

export function request(ctx) {
  const id = util.autoId();
  const { ...values } = ctx.args;
  values.ups = 1;
  values.downs = 0;
  values.version = 1;
  return { payload: { key: { id }, values: values } };
}

export function response(ctx) {
  return ctx.result;
}
```

Aqui está nosso código de resolução:

**getPost.js**

```
export function request(ctx) {
  return {};
}

export function response(ctx) {
  return ctx.prev.result;
}
```

### API GraphQL com uma função do Lambda como fonte de dados
<a name="sam-resource-graphqlapi-examples-example2"></a>

Neste exemplo, criamos uma API GraphQL que usa uma função do Lambda como fonte de dados.

**template.yaml**

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs20.x
      CodeUri: ./lambda

  MyGraphQLAPI:
    Type: AWS::Serverless::GraphQLApi
    Properties:
      Name: MyApi
      SchemaUri: ./gql/schema.gql
      Auth:
        Type: API_KEY
      ApiKeys:
        MyApiKey:
          Description: my api key
      DataSources:
        Lambda:
          MyLambdaDataSource:
            FunctionArn: !GetAtt MyLambdaFunction.Arn
      Functions:
        lambdaInvoker:
          Runtime:
            Name: APPSYNC_JS
            Version: 1.0.0
          DataSource: MyLambdaDataSource
          CodeUri: ./gql/invoker.js
      Resolvers:
        Mutation:
          addPost:
            Runtime:
              Name: APPSYNC_JS
              Version: 1.0.0
            Pipeline:
            - lambdaInvoker
        Query:
          getPost:
            Runtime:
              Name: APPSYNC_JS
              Version: 1.0.0
            Pipeline:
            - lambdaInvoker

Outputs:
  MyGraphQLAPI:
    Description: AppSync API
    Value: !GetAtt MyGraphQLAPI.GraphQLUrl
  MyGraphQLAPIMyApiKey:
    Description: API Key for authentication
    Value: !GetAtt MyGraphQLAPIMyApiKey.ApiKey
```

**schema.graphql**

```
schema {
  query: Query
  mutation: Mutation
}
type Query {
  getPost(id: ID!): Post
}
type Mutation {
  addPost(id: ID!, author: String!, title: String, content: String): Post!
}
type Post {
  id: ID!
  author: String!
  title: String
  content: String
  ups: Int
  downs: Int
}
```

Aqui estão nossas funções:

**lambda/index.js**

```
exports.handler = async (event) => {
  console.log("Received event {}", JSON.stringify(event, 3));

  const posts = {
    1: {
      id: "1",
      title: "First book",
      author: "Author1",
      content: "Book 1 has this content",
      ups: "100",
      downs: "10",
    },
  };

  console.log("Got an Invoke Request.");
  let result;
  switch (event.field) {
    case "getPost":
      return posts[event.arguments.id];
    case "addPost":
      // return the arguments back
      return event.arguments;
    default:
      throw new Error("Unknown field, unable to resolve " + event.field);
  }
};
```

**invoker.js**

```
import { util } from "@aws-appsync/utils";

export function request(ctx) {
  const { source, args } = ctx;
  return {
    operation: "Invoke",
    payload: { field: ctx.info.fieldName, arguments: args, source },
  };
}

export function response(ctx) {
  return ctx.result;
}
```

# ApiKeys
<a name="sam-property-graphqlapi-apikeys"></a>

Crie uma chave exclusiva que possa ser usada para realizar operações GraphQL que exigem uma chave de API.

## Sintaxe
<a name="sam-property-graphqlapi-apikeys-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-apikeys-syntax-yaml"></a>

```
LogicalId:
  ApiKeyId: String
  Description: String
  ExpiresOn: Double
```

## Propriedades
<a name="sam-property-graphqlapi-apikeys-properties"></a>

`ApiKeyId`  <a name="sam-graphqlapi-apikeys-apikeyid"></a>
O nome exclusivo da sua chave de API. Especifique para substituir o valor `LogicalId`.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ApiKeyId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apikeyid)` propriedade de um `AWS::AppSync::ApiKey` recurso.

`Description`  <a name="sam-graphqlapi-apikeys-description"></a>
Descrição da sua chave de API.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-description)` propriedade de um `AWS::AppSync::ApiKey` recurso.

`ExpiresOn`  <a name="sam-graphqlapi-apikeys-expireson"></a>
O tempo após o qual a chave de API expira. A data é representada como segundos desde o epoch, arredondada para baixo para a hora mais próxima.  
*Tipo*: duplo  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Expires](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-expires)` propriedade de um `AWS::AppSync::ApiKey` recurso.

`LogicalId`  <a name="sam-graphqlapi-apikeys-logicalid"></a>
O nome exclusivo da sua chave de API.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ApiKeyId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apikeyid)` propriedade de um `AWS::AppSync::ApiKey` recurso.

# Auth
<a name="sam-property-graphqlapi-auth"></a>

Configure a autorização para sua GraphQL API.

## Sintaxe
<a name="sam-property-graphqlapi-auth-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-auth-syntax-yaml"></a>

```
Additional:
- AuthProvider
LambdaAuthorizer: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)
OpenIDConnect: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)
Type: String
UserPool: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)
```

## Propriedades
<a name="sam-property-graphqlapi-auth-properties"></a>

`Additional`  <a name="sam-graphqlapi-auth-additional"></a>
Uma lista de tipos de autorização adicionais para sua GraphQL API.  
*Tipo*: Lista de [AuthProvider](sam-property-graphqlapi-auth-authprovider.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`LambdaAuthorizer`  <a name="sam-graphqlapi-auth-lambdaauthorizer"></a>
Especifique a configuração de autorização opcional para seu autorizador de função do Lambda. Você pode configurar essa propriedade opcional quando `Type` for especificado como `AWS_LAMBDA`.  
*Tipo*: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)` propriedade de um `AWS::AppSync::GraphQLApi` recurso.

`OpenIDConnect`  <a name="sam-graphqlapi-auth-openidconnect"></a>
Especifique a configuração de autorização opcional para seu serviço OpenID Connect compatível. Você pode configurar essa propriedade opcional quando `Type` for especificado como `OPENID_CONNECT`.  
*Tipo*: [Open IDConnect Config](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)` propriedade de um `AWS::AppSync::GraphQLApi` recurso.

`Type`  <a name="sam-graphqlapi-auth-type"></a>
O tipo de autorização padrão entre aplicativos e sua AWS AppSync GraphQL API.  
Para obter uma lista e uma descrição dos valores permitidos, consulte [Autorização e autenticação](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html) no *AWS AppSync Guia do desenvolvedor*.  
Quando você especifica um autorizador Lambda (`AWS_LAMBDA`), AWS SAM cria uma política AWS Identity and Access Management (IAM) para provisionar permissões entre sua API GraphQL e a função Lambda.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[AuthenticationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-authenticationtype)` propriedade de um `AWS::AppSync::GraphQLApi` recurso.

`UserPool`  <a name="sam-graphqlapi-auth-userpool"></a>
Especifique a configuração de autorização opcional para usar grupos de usuários do Amazon Cognito. Você pode configurar essa propriedade opcional quando `Type` for especificado como `AMAZON_COGNITO_USER_POOLS`.  
*Tipo*: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)` propriedade de um `AWS::AppSync::GraphQLApi` recurso.

## Exemplos
<a name="sam-property-graphqlapi-auth-examples"></a>

### Configurar um tipo de autorização padrão e adicional
<a name="sam-property-graphqlapi-auth-examples-example1"></a>

Neste exemplo, começamos configurando um autorizador Lambda como o tipo de autorização padrão para nossa API GraphQL.

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyGraphQLAPI:
    Type: AWS::Serverless::GraphQLApi
    Properties:
      Auth:
        Type: AWS_LAMBDA
        LambdaAuthorizer:
          AuthorizerUri: !GetAtt Authorizer1.Arn
          AuthorizerResultTtlInSeconds: 10
          IdentityValidationExpression: hello
```

Em seguida, configuramos tipos de autorização adicionais para nossa GraphQL API adicionando o seguinte ao nosso modelo AWS SAM :

```
        Additional:
        - Type: AWS_IAM
        - Type: API_KEY
        - Type: OPENID_CONNECT
          OpenIDConnect:
            AuthTTL: 10
            ClientId: myId
            IatTTL: 10
            Issuer: prod
```

Isso resulta no seguinte AWS SAM modelo:

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyGraphQLAPI:
    Type: AWS::Serverless::GraphQLApi
    Properties:
      Auth:
        Type: AWS_LAMBDA
        LambdaAuthorizer:
          AuthorizerUri: !GetAtt Authorizer1.Arn
          AuthorizerResultTtlInSeconds: 10
          IdentityValidationExpression: hello
        Additional:
        - Type: AWS_IAM
        - Type: API_KEY
        - Type: OPENID_CONNECT
          OpenIDConnect:
            AuthTTL: 10
            ClientId: myId
            IatTTL: 10
            Issuer: prod
```

# AuthProvider
<a name="sam-property-graphqlapi-auth-authprovider"></a>

Configuração de autorização opcional para seus tipos adicionais de autorização de GraphQL API.

## Sintaxe
<a name="sam-property-graphqlapi-auth-authprovider-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-auth-authprovider-syntax-yaml"></a>

```
LambdaAuthorizer: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)
OpenIDConnect: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)
Type: String
UserPool: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)
```

## Propriedades
<a name="sam-property-graphqlapi-auth-authprovider-properties"></a>

`LambdaAuthorizer`  <a name="sam-graphqlapi-auth-authprovider-lambdaauthorizer"></a>
Especifique a configuração de autorização opcional para seu autorizador de AWS Lambda função. Você pode configurar essa propriedade opcional quando `Type` for especificado como `AWS_LAMBDA`.  
*Tipo*: [ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)` propriedade de um `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` objeto.

`OpenIDConnect`  <a name="sam-graphqlapi-auth-authprovider-openidconnect"></a>
Especifique a configuração de autorização opcional para seu serviço OpenID Connect compatível. Você pode configurar essa propriedade opcional quando `Type` for especificado como `OPENID_CONNECT`.  
*Tipo*: [Open IDConnect Config](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)` propriedade de um `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` objeto.

`Type`  <a name="sam-graphqlapi-auth-authprovider-type"></a>
O tipo de autorização padrão entre aplicativos e sua AWS AppSync GraphQL API.  
Para obter uma lista e uma descrição dos valores permitidos, consulte [Autorização e autenticação](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html) no *AWS AppSync Guia do desenvolvedor*.  
Quando você especifica um autorizador Lambda (`AWS_LAMBDA`), AWS SAM cria uma política AWS Identity and Access Management (IAM) para provisionar permissões entre sua API GraphQL e a função Lambda.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ AuthenticationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-authenticationtype)` propriedade de um `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` objeto.

`UserPool`  <a name="sam-graphqlapi-auth-authprovider-userpool"></a>
Especifique a configuração de autorização opcional para usar grupos de usuários do Amazon Cognito. Você pode configurar essa propriedade opcional quando `Type` for especificado como `AMAZON_COGNITO_USER_POOLS`.  
*Tipo*: [ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)` propriedade de um `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` objeto.

# DataSource
<a name="sam-property-graphqlapi-datasource"></a>

Configure uma fonte de dados à qual seu resolvedor de GraphQL API possa se conectar. Você pode usar modelos AWS Serverless Application Model (AWS SAM) para configurar conexões com as seguintes fontes de dados:
+ Amazon DynamoDB
+ AWS Lambda

Para saber mais sobre fontes de dados, consulte [Anexar uma fonte de dados](https://docs.aws.amazon.com/appsync/latest/devguide/attaching-a-data-source.html) no *AWS AppSync Guia do desenvolvedor*.

## Sintaxe
<a name="sam-property-graphqlapi-datasource-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-datasource-syntax-yaml"></a>

```
DynamoDb: DynamoDb
Lambda: Lambda
```

## Propriedades
<a name="sam-property-graphqlapi-datasource-properties"></a>

`DynamoDb`  <a name="sam-graphqlapi-datasource-dynamodb"></a>
Configure uma tabela do DynamoDB como fonte de dados para seu resolvedor de GraphQL API.  
*Digite*: [DynamoDb](sam-property-graphqlapi-datasource-dynamodb.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`Lambda`  <a name="sam-graphqlapi-datasource-lambda"></a>
Configure uma função do Lambda como fonte de dados para seu resolvedor de GraphQL API.  
*Type*: [Lambda](sam-property-graphqlapi-datasource-lambda.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

# DynamoDb
<a name="sam-property-graphqlapi-datasource-dynamodb"></a>

Configure uma tabela do Amazon DynamoDB como fonte de dados para seu resolvedor de GraphQL API.

## Sintaxe
<a name="sam-property-graphqlapi-datasource-dynamodb-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-datasource-dynamodb-syntax-yaml"></a>

```
LogicalId:
  DeltaSync: [DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html)
  Description: String
  Name: String
  Permissions: List
  Region: String
  ServiceRoleArn: String
  TableArn: String
  TableName: String
  UseCallerCredentials: Boolean
  Versioned: Boolean
```

## Propriedades
<a name="sam-property-graphqlapi-datasource-dynamodb-properties"></a>

`DeltaSync`  <a name="sam-graphqlapi-datasource-dynamodb-deltasync"></a>
Descreve uma configuração de sincronização delta.  
*Digite*: [DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-deltasyncconfig)` propriedade de um `AWS::AppSync::DataSource DynamoDBConfig` objeto.

`Description`  <a name="sam-graphqlapi-datasource-dynamodb-description"></a>
A descrição da sua fonte de dados.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-description)` propriedade de um `AWS::AppSync::DataSource` recurso.

`LogicalId`  <a name="sam-graphqlapi-datasource-dynamodb-logicalid"></a>
O nome exclusivo de sua fonte de dados.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` propriedade de um `AWS::AppSync::DataSource` recurso.

`Name`  <a name="sam-graphqlapi-datasource-dynamodb-name"></a>
O nome da sua fonte de dados. Especifique essa propriedade para substituir o valor `LogicalId`.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` propriedade de um `AWS::AppSync::DataSource` recurso.

`Permissions`  <a name="sam-graphqlapi-datasource-dynamodb-permissions"></a>
Provisione permissões para sua fonte de dados usando [conectores do AWS SAM ](managing-permissions-connectors.md). Você pode fornecer qualquer um dos seguintes valores em uma lista:  
+ `Read` - Permite que seu resolvedor leia sua fonte de dados.
+ `Write` - Permite que seu resolvedor grave em sua fonte de dados.
AWS SAM usa um `AWS::Serverless::Connector` recurso que é transformado na implantação para provisionar suas permissões. Para saber mais sobre os recursos gerados, consulte [CloudFormation recursos gerados quando você especifica AWS::Serverless::Connector](sam-specification-generated-resources-connector.md).  
É possível especificar `Permissions` ou `ServiceRoleArn`, mas não ambos. Se nenhum for especificado, AWS SAM gerará valores padrão de `Read` `Write` e. Para revogar o acesso à sua fonte de dados, remova o objeto DynamoDB do seu modelo. AWS SAM 
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente. É semelhante à propriedade `Permissions` de um recurso `AWS::Serverless::Connector`.

`Region`  <a name="sam-graphqlapi-datasource-dynamodb-region"></a>
A Região da AWS da sua tabela do DynamoDB. Se você não especificar, AWS SAM usa`[AWS::Region](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html#cfn-pseudo-param-region)`.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[AwsRegion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-awsregion)` propriedade de um `AWS::AppSync::DataSource DynamoDBConfig` objeto.

`ServiceRoleArn`  <a name="sam-graphqlapi-datasource-dynamodb-servicerolearn"></a>
O ARN da função de serviço AWS Identity and Access Management (IAM) da fonte de dados. O sistema assume essa função ao acessar a fonte de dados.  
É possível especificar `Permissions` ou `ServiceRoleArn`, mas não ambos.  
*Tipo:* string  
*Obrigatório*: Não. Se não for especificado, AWS SAM aplica o valor padrão para`Permissions`.  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ServiceRoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-servicerolearn)` propriedade de um `AWS::AppSync::DataSource` recurso.

`TableArn`  <a name="sam-graphqlapi-datasource-dynamodb-tablearn"></a>
O ARN da tabela do DynamoDB.  
*Tipo:* string  
*Obrigatório:* condicional. Se você não especificar o `ServiceRoleArn`, o `TableArn` será necessário.  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`TableName`  <a name="sam-graphqlapi-datasource-dynamodb-tablename"></a>
O nome da tabela.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[TableName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-tablename)` propriedade de um `AWS::AppSync::DataSource DynamoDBConfig` objeto.

`UseCallerCredentials`  <a name="sam-graphqlapi-datasource-dynamodb-usecallercredentials"></a>
Defina como `true` para usar o IAM com essa fonte de dados.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[UseCallerCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-usecallercredentials)` propriedade de um `AWS::AppSync::DataSource DynamoDBConfig` objeto.

`Versioned`  <a name="sam-graphqlapi-datasource-dynamodb-versioned"></a>
Defina como `true` para usar a [Detecção de conflitos, resolução de conflitos e sincronização](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html) com esta fonte de dados.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Versioned](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-versioned)` propriedade de um `AWS::AppSync::DataSource DynamoDBConfig` objeto.

# Lambda
<a name="sam-property-graphqlapi-datasource-lambda"></a>

Configure uma AWS Lambda função como fonte de dados para seu resolvedor de GraphQL API.

## Sintaxe
<a name="sam-property-graphqlapi-datasource-lambda-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-datasource-lambda-syntax-yaml"></a>

```
LogicalId:
  Description: String
  FunctionArn: String
  Name: String
  ServiceRoleArn: String
```

## Propriedades
<a name="sam-property-graphqlapi-datasource-lambda-properties"></a>

`Description`  <a name="sam-graphqlapi-datasource-lambda-description"></a>
A descrição da sua fonte de dados.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-description)` propriedade de um `AWS::AppSync::DataSource` recurso.

`FunctionArn`  <a name="sam-graphqlapi-datasource-lambda-functionarn"></a>
O ARN da função do Lambda.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[LambdaFunctionArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html#cfn-appsync-datasource-lambdaconfig-lambdafunctionarn)` propriedade de um `AWS::AppSync::DataSource LambdaConfig` objeto.

`LogicalId`  <a name="sam-graphqlapi-datasource-lambda-logicalid"></a>
O nome exclusivo de sua fonte de dados.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` propriedade de um `AWS::AppSync::DataSource` recurso.

`Name`  <a name="sam-graphqlapi-datasource-lambda-name"></a>
O nome da sua fonte de dados. Especifique essa propriedade para substituir o valor `LogicalId`.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` propriedade de um `AWS::AppSync::DataSource` recurso.

`ServiceRoleArn`  <a name="sam-graphqlapi-datasource-lambda-servicerolearn"></a>
O ARN da função de serviço AWS Identity and Access Management (IAM) da fonte de dados. O sistema assume essa função ao acessar a fonte de dados.  
Para revogar o acesso à sua fonte de dados, remova o objeto Lambda do seu modelo AWS SAM .
*Tipo:* string  
*Obrigatório*: Não. Se não for especificado, AWS SAM provisionará `Write` as permissões usando[conectores do AWS SAM ](managing-permissions-connectors.md).  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ServiceRoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-servicerolearn)` propriedade de um `AWS::AppSync::DataSource` recurso.

# Função
<a name="sam-property-graphqlapi-function"></a>

Configure funções GraphQL APIs para realizar determinadas operações.

## Sintaxe
<a name="sam-property-graphqlapi-function-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-function-syntax-yaml"></a>

```
LogicalId:
  CodeUri: String
  DataSource: String
  Description: String
  Id: String
  InlineCode: String
  MaxBatchSize: Integer
  Name: String
  Runtime: Runtime
  Sync: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html)
```

## Propriedades
<a name="sam-property-graphqlapi-function-properties"></a>

`CodeUri`  <a name="sam-graphqlapi-function-codeuri"></a>
O URI Amazon Simple Storage Service (Amazon S3) ou o caminho para a pasta local de código de função.  
Se você especificar um caminho para uma pasta local, CloudFormation exigirá que o arquivo seja primeiro carregado no Amazon S3 antes da implantação. Você pode usar o AWS SAMCLI para facilitar esse processo. Para obter mais informações, consulte [Como AWS SAM carrega arquivos locais na implantação](deploy-upload-local-files.md).  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[CodeS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-codes3location)` propriedade de um `AWS::AppSync::FunctionConfiguration` recurso.

`DataSource`  <a name="sam-graphqlapi-function-datasource"></a>
O nome da fonte de dados à qual esta função será anexada.  
+ Para referenciar uma fonte de dados dentro do recurso `AWS::Serverless::GraphQLApi`, especifique sua ID lógica.
+ Para referenciar uma fonte de dados fora do recurso `AWS::Serverless::GraphQLApi`, forneça seu atributo `Name` usando a função `Fn::GetAtt` intrínseca. Por exemplo, .`!GetAtt MyLambdaDataSource.Name`
+ Para referenciar uma fonte de dados de uma pilha diferente, use `[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)`.
Se uma variação de `[NONE | None | none]` for especificada, AWS SAM gerará um `None` valor para o `AWS::AppSync::DataSource` `[Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-type)` objeto.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[DataSourceName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-datasourcename)` propriedade de um `AWS::AppSync::FunctionConfiguration` recurso.

`Description`  <a name="sam-graphqlapi-function-description"></a>
A descrição de sua função.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-description)` propriedade de um `AWS::AppSync::FunctionConfiguration` recurso.

`Id`  <a name="sam-graphqlapi-function-id"></a>
O ID da função de uma função localizada fora do recurso `AWS::Serverless::GraphQLApi`.  
+ Para referenciar uma função dentro do mesmo AWS SAM modelo, use a função `Fn::GetAtt` intrínseca. Por exemplo, `Id: !GetAtt createPostItemFunc.FunctionId`.
+ Para referenciar uma função de uma pilha diferente, use `[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)`.
Ao usar`Id`, todas as outras propriedades não são permitidas. AWS SAM passará automaticamente o ID da função de sua função referenciada.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`InlineCode`  <a name="sam-graphqlapi-function-inlinecode"></a>
O código de função que contém as funções de solicitação e resposta.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-code)` propriedade de um `AWS::AppSync::FunctionConfiguration` recurso.

`LogicalId`  <a name="sam-graphqlapi-function-logicalid"></a>
Escolha o nome único para a função.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-name)` propriedade de um `AWS::AppSync::FunctionConfiguration` recurso.

`MaxBatchSize`  <a name="sam-graphqlapi-function-maxbatchsize"></a>
O número máximo de entradas de solicitações do resolvedor que serão enviadas a uma única função do AWS Lambda em uma operação `BatchInvoke`.  
*Tipo*: inteiro  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a [MaxBatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-maxbatchsize)propriedade de um `AWS::AppSync::FunctionConfiguration` recurso.

`Name`  <a name="sam-graphqlapi-function-name"></a>
Nome da função. Especifique para substituir o valor `LogicalId`.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-name)` propriedade de um `AWS::AppSync::FunctionConfiguration` recurso.

`Runtime`  <a name="sam-graphqlapi-function-runtime"></a>
Descreve um tempo de execução usado por uma AWS AppSync função ou resolvedor de AWS AppSync pipeline. Especifica o nome e a versão do tempo de execução a ser usado.  
*Tipo*: [Tempo de execução](sam-property-graphqlapi-function-runtime.md)  
*Obrigatório*: sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente. É semelhante à propriedade `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-runtime)` de um recurso `AWS::AppSync::FunctionConfiguration`.

`Sync`  <a name="sam-graphqlapi-function-sync"></a>
Descreve uma configuração de sincronização para uma função.  
Especifica quais estratégias de detecção de conflitos e de resolução devem ser usadas quando a função for invocada.  
*Digite*: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-syncconfig)` propriedade de um `AWS::AppSync::FunctionConfiguration` recurso.

# Runtime
<a name="sam-property-graphqlapi-function-runtime"></a>

O tempo de execução do seu resolvedor ou função de pipeline. Especifica o nome e a versão a serem usados.

## Sintaxe
<a name="sam-property-graphqlapi-function-runtime-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-function-runtime-syntax-yaml"></a>

```
Name: String
Version: String
```

## Propriedades
<a name="sam-property-graphqlapi-function-runtime-properties"></a>

`Name`  <a name="sam-graphqlapi-function-runtime-name"></a>
O nome do tempo de execução a ser usado. Atualmente, o único valor permitido é `APPSYNC_JS`.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-appsyncruntime.html#cfn-appsync-functionconfiguration-appsyncruntime-name)` propriedade de um `AWS::AppSync::FunctionConfiguration AppSyncRuntime` objeto.

`Version`  <a name="sam-graphqlapi-function-runtime-version"></a>
A versão do tempo de execução a ser usada. Atualmente, a única versão permitida é `1.0.0`.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[RuntimeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-appsyncruntime.html#cfn-appsync-functionconfiguration-appsyncruntime-runtimeversion)` propriedade de um `AWS::AppSync::FunctionConfiguration AppSyncRuntime` objeto.

# Resolvedor
<a name="sam-property-graphqlapi-resolver"></a>

Configure resolvedores para os campos da sua GraphQL API. AWS Serverless Application Model (AWS SAM) suporta [resolvedores de JavaScript pipeline](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html).

## Sintaxe
<a name="sam-property-graphqlapi-resolver-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-resolver-syntax-yaml"></a>

```
OperationType:
  LogicalId:
    Caching: [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html)
    CodeUri: String
    FieldName: String
    InlineCode: String 
    MaxBatchSize: Integer
    Pipeline: List
    Runtime: Runtime
    Sync: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html)
```

## Propriedades
<a name="sam-property-graphqlapi-resolver-properties"></a>

`Caching`  <a name="sam-graphqlapi-resolver-caching"></a>
A configuração de cache para o resolvedor que tenha o cache ativado.  
*Digite*: [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-cachingconfig)` propriedade de um `AWS::AppSync::Resolver` recurso.

`CodeUri`  <a name="sam-graphqlapi-resolver-codeuri"></a>
O URI do código da função do resolvedor Amazon Simple Storage Service (Amazon S3) ou o caminho para uma pasta local.  
Se você especificar um caminho para uma pasta local, CloudFormation exigirá que o arquivo seja primeiro carregado no Amazon S3 antes da implantação. Você pode usar o AWS SAMCLI para facilitar esse processo. Para obter mais informações, consulte [Como AWS SAM carrega arquivos locais na implantação](deploy-upload-local-files.md).  
Se nenhum deles `CodeUri` `InlineCode` for fornecido, AWS SAM será gerado `InlineCode` que redirecionará a solicitação para a primeira função do pipeline e receberá a resposta da última função do pipeline.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[CodeS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-codes3location)` propriedade de um `AWS::AppSync::Resolver` recurso.

`FieldName`  <a name="sam-graphqlapi-resolver-fieldname"></a>
O nome do seu resolvedor. Especifique essa propriedade para substituir o valor `LogicalId`.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[FieldName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-fieldname)` propriedade de um `AWS::AppSync::Resolver` recurso.

`InlineCode`  <a name="sam-graphqlapi-resolver-inlinecode"></a>
O código do resolvedor que contém as funções de solicitação e resposta.  
Se nenhum deles `CodeUri` `InlineCode` for fornecido, AWS SAM será gerado `InlineCode` que redirecionará a solicitação para a primeira função do pipeline e receberá a resposta da última função do pipeline.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-code)` propriedade de um `AWS::AppSync::Resolver` recurso.

`LogicalId`  <a name="sam-graphqlapi-resolver-logicalid"></a>
O nome exclusivo do seu resolvedor. Em um esquema GraphQL, o nome do resolvedor deve corresponder ao nome do campo para o qual ele é usado. Use o mesmo nome de campo para `LogicalId`.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`MaxBatchSize`  <a name="sam-graphqlapi-resolver-maxbatchsize"></a>
O número máximo de entradas de solicitações do resolvedor que serão enviadas a uma única função do AWS Lambda em uma operação `BatchInvoke`.  
*Tipo*: inteiro  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[MaxBatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-maxbatchsize)` propriedade de um `AWS::AppSync::Resolver` recurso.

`OperationType`  <a name="sam-graphqlapi-resolver-operationtype"></a>
O tipo de operação GraphQL associada ao seu resolvedor. Por exemplo, `Query`, `Mutation` ou `Subscription`. Você pode agrupar vários resolvedores por `LogicalId` em um único `OperationType`.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[TypeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-typename)` propriedade de um `AWS::AppSync::Resolver` recurso.

`Pipeline`  <a name="sam-graphqlapi-resolver-pipeline"></a>
Funções vinculadas ao resolvedor de pipeline. Especifique as funções por ID lógica em uma lista.  
*Tipo*: lista  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente. É semelhante à propriedade `[PipelineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-pipelineconfig)` de um recurso `AWS::AppSync::Resolver`.

`Runtime`  <a name="sam-graphqlapi-resolver-runtime"></a>
O tempo de execução do seu resolvedor ou função de pipeline. Especifica o nome e a versão a serem usados.  
*Tipo*: [Tempo de execução](sam-property-graphqlapi-resolver-runtime.md)  
*Obrigatório*: sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente. É semelhante à propriedade `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-runtime)` de um recurso `AWS::AppSync::Resolver`.

`Sync`  <a name="sam-graphqlapi-resolver-sync"></a>
Descreve uma configuração de sincronização para um resolvedor.  
Especifica quais estratégias de detecção de conflitos e de resolução devem ser usadas quando o resolvedor for invocado.  
*Digite*: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-syncconfig)` propriedade de um `AWS::AppSync::Resolver` recurso.

## Exemplos
<a name="sam-property-graphqlapi-resolver-examples"></a>

### Use o código da função resolvedor AWS SAM gerada e salve os campos como variáveis
<a name="sam-property-graphqlapi-resolver-examples-example1"></a>

Aqui está o esquema GraphQL do nosso exemplo:

```
schema {
  query: Query
  mutation: Mutation
}

type Query {
  getPost(id: ID!): Post
}

type Mutation {
  addPost(author: String!, title: String!, content: String!): Post!
}

type Post {
  id: ID!
  author: String
  title: String
  content: String
}
```

Aqui está um trecho do nosso AWS SAM modelo:

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyGraphQLApi:
    Type: AWS::Serverless::GraphQLApi
    Properties:
      ...
      Functions:
        preprocessPostItem:
          ...
        createPostItem:
          ...
      Resolvers:
        Mutation:
          addPost:
            Runtime:
              Name: APPSYNC_JS
              Version: 1.0.0
            Pipeline:
            - preprocessPostItem
            - createPostItem
```

Em nosso AWS SAM modelo, não especificamos `CodeUri` ou`InlineCode`. Na implantação, gera AWS SAM automaticamente o seguinte código embutido para nosso resolvedor:

```
export function request(ctx) {
  return {};
}

export function response(ctx) {
  return ctx.prev.result;
}
```

Esse código de resolução padrão redireciona a solicitação para a primeira função do pipeline e recebe a resposta da última função do pipeline.

Em nossa primeira função de pipeline, podemos usar o campo `args` fornecido para analisar o objeto de solicitação e criar nossas variáveis. Podemos então usar essas variáveis em nossa função. Veja um exemplo da nossa função `preprocessPostItem`:

```
import { util } from "@aws-appsync/utils";

export function request(ctx) {
  const author = ctx.args.author;
  const title = ctx.args.title;
  const content = ctx.args.content;
  
  // Use variables to process data
  
}

export function response(ctx) {
  return ctx.result;
}
```

# Runtime
<a name="sam-property-graphqlapi-resolver-runtime"></a>

O tempo de execução do seu resolvedor ou função de pipeline. Especifica o nome e a versão a serem usados.

## Sintaxe
<a name="sam-property-graphqlapi-resolver-runtime-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-resolver-runtime-syntax-yaml"></a>

```
Name: String
Version: String
```

## Propriedades
<a name="sam-property-graphqlapi-resolver-runtime-properties"></a>

`Name`  <a name="sam-graphqlapi-resolver-runtime-name"></a>
O nome do tempo de execução a ser usado. Atualmente, o único valor permitido é `APPSYNC_JS`.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-name)` propriedade de um `AWS::AppSync::Resolver AppSyncRuntime` objeto.

`Version`  <a name="sam-graphqlapi-resolver-runtime-version"></a>
A versão do tempo de execução a ser usada. Atualmente, a única versão permitida é `1.0.0`.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[RuntimeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-runtimeversion)` propriedade de um `AWS::AppSync::Resolver AppSyncRuntime` objeto.