

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Utilizzate il tipo di `AWS::Serverless::GraphQLApi` risorsa AWS Serverless Application Model (AWS SAM) per creare e configurare un' AWS AppSync GraphQLAPI per la vostra applicazione serverless.

Per ulteriori informazioni AWS AppSync, consulta [What is AWS AppSync?](https://docs.aws.amazon.com/appsync/latest/devguide/what-is-appsync.html) nella *Guida per gli AWS AppSync sviluppatori*.

## Sintassi
<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
```

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

`ApiKeys`  <a name="sam-graphqlapi-apikeys"></a>
Crea una chiave univoca che può essere utilizzata per eseguire GraphQL operazioni che richiedono una chiave API.  
*Tipo:* [ApiKeys](sam-property-graphqlapi-apikeys.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`Auth`  <a name="sam-graphqlapi-auth"></a>
Configura l'autenticazione per la tua GraphQL API.  
*Tipo*: [autenticazione](sam-property-graphqlapi-auth.md)  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`Cache`  <a name="sam-graphqlapi-cache"></a>
L'input di un'`CreateApiCache`operazione.  
*Tipo:* [AWS::AppSync::ApiCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla [AWS::AppSync::ApiCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)risorsa.

`DataSources`  <a name="sam-graphqlapi-datasources"></a>
Crea sorgenti di dati per le funzioni AWS AppSync a cui connettersi. AWS SAM supporta Amazon DynamoDB e fonti di dati. AWS Lambda   
*Tipo:* [DataSource](sam-property-graphqlapi-datasource.md)  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`DomainName`  <a name="sam-graphqlapi-domainname"></a>
Nome di dominio personalizzato per la tua GraphQL API.  
*Tipo:* [AWS::AppSync::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla [AWS::AppSync::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)risorsa. AWS SAM genera automaticamente la [AWS::AppSync::DomainNameApiAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainnameapiassociation.html)risorsa.

`Functions`  <a name="sam-graphqlapi-functions"></a>
Configura le funzioni in GraphQL APIs per eseguire determinate operazioni.  
*Tipo*: [funzione](sam-property-graphqlapi-function.md)  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`Logging`  <a name="sam-graphqlapi-logging"></a>
Configura Amazon CloudWatch logging per la tua GraphQL API.  
Se non specifichi questa proprietà, AWS SAM genererà `CloudWatchLogsRoleArn` e imposterà i seguenti valori:  
+ `ExcludeVerboseContent: true`
+ `FieldLogLevel: ALL`
Per disattivare la registrazione, specificate quanto segue:  

```
Logging: false
```
*Tipo:* [LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-logconfig)` proprietà di una `AWS::AppSync::GraphQLApi` risorsa.

`LogicalId`  <a name="sam-graphqlapi-logicalid"></a>
Il nome univoco della tua GraphQL API.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-name)` proprietà di una `AWS::AppSync::GraphQLApi` risorsa.

`Name`  <a name="sam-graphqlapi-name"></a>
Il nome della tua GraphQL API. Specificate questa proprietà per sovrascrivere il `LogicalId` valore.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-name)` proprietà di una `AWS::AppSync::GraphQLApi` risorsa.

`Resolvers`  <a name="sam-graphqlapi-resolvers"></a>
Configura i resolver per i campi della tua API. GraphQL AWS SAM [supporta i resolver JavaScript per 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)  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`SchemaInline`  <a name="sam-graphqlapi-schemainline"></a>
La rappresentazione testuale di uno GraphQL schema in SDL formato.  
▬*Tipo:* stringa  
*Obbligatorio:* condizionale. È necessario specificare `SchemaInline` o`SchemaUri`.  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Definition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definition)` proprietà di una `AWS::AppSync::GraphQLSchema` risorsa.

`SchemaUri`  <a name="sam-graphqlapi-schemauri"></a>
L'URI del bucket Amazon Simple Storage Service (Amazon S3) S3 dello schema o il percorso di una cartella locale.  
Se specifichi un percorso verso una cartella locale, è CloudFormation necessario che il file venga prima caricato su Amazon S3 prima della distribuzione. Puoi usare il AWS SAMCLI per facilitare questo processo. Per ulteriori informazioni, consulta [Come AWS SAM vengono caricati i file locali al momento della distribuzione](deploy-upload-local-files.md).  
▬*Tipo:* stringa  
*Obbligatorio:* condizionale. È necessario specificare `SchemaInline` o`SchemaUri`.  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[DefinitionS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definitions3location)` proprietà di una `AWS::AppSync::GraphQLSchema` risorsa.

`Tags`  <a name="sam-graphqlapi-tags"></a>
Tag (coppie chiave-valore) per questa GraphQL API. Usa i tag per identificare e classificare le risorse.  
*Tipo:* elenco di [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-tags)` proprietà di una `AWS::AppSync::GraphQLApi` risorsa.

`XrayEnabled`  <a name="sam-graphqlapi-xrayenabled"></a>
Indicare se utilizzare il [tracciamento AWS X-Ray per questa risorsa](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html).  
*Tipo*: Booleano  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[XrayEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-xrayenabled)` proprietà di una `AWS::AppSync::GraphQLApi` risorsa.

## Valori restituiti
<a name="sam-resource-graphqlapi-return-values"></a>

Per un elenco dei valori restituiti, consulta la [Guida per [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)l'CloudFormation utente](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

### GraphQL APIcon origine dati DynamoDB
<a name="sam-resource-graphqlapi-examples-example1"></a>

In questo esempio, creiamo un'GraphQLAPI che utilizza una tabella DynamoDB come origine dati.

**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!
}
```

**modello.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;
}
```

Ecco il nostro codice resolver:

**getPost.js**

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

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

### GraphQLAPI con una funzione Lambda come origine dati
<a name="sam-resource-graphqlapi-examples-example2"></a>

In questo esempio, creiamo un'GraphQLAPI che utilizza una funzione Lambda come origine dati.

**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
}
```

Ecco le nostre funzioni:

**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>

Crea una chiave univoca che può essere utilizzata per eseguire GraphQL operazioni che richiedono una chiave API.

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

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

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

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

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

`ApiKeyId`  <a name="sam-graphqlapi-apikeys-apikeyid"></a>
Il nome univoco della tua chiave API. Specificare di sovrascrivere il `LogicalId` valore.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ApiKeyId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apikeyid)` proprietà di una `AWS::AppSync::ApiKey` risorsa.

`Description`  <a name="sam-graphqlapi-apikeys-description"></a>
Descrizione della tua chiave API.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-description)` proprietà di una `AWS::AppSync::ApiKey` risorsa.

`ExpiresOn`  <a name="sam-graphqlapi-apikeys-expireson"></a>
Tempo dopo il quale scade la chiave API. La data è rappresentata come secondi dall'epoca, arrotondati per difetto all'ora più vicina.  
*Tipo:* numero a doppia precisione  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Expires](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-expires)` proprietà di una `AWS::AppSync::ApiKey` risorsa.

`LogicalId`  <a name="sam-graphqlapi-apikeys-logicalid"></a>
Il nome univoco della tua chiave API.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ApiKeyId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apikeyid)` proprietà di una `AWS::AppSync::ApiKey` risorsa.

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

Configura l'autorizzazione per la tua GraphQL API.

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

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

### 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)
```

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

`Additional`  <a name="sam-graphqlapi-auth-additional"></a>
Un elenco di tipi di autorizzazione aggiuntivi per la tua GraphQL API.  
*Tipo*: Elenco di [AuthProvider](sam-property-graphqlapi-auth-authprovider.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`LambdaAuthorizer`  <a name="sam-graphqlapi-auth-lambdaauthorizer"></a>
Specificate la configurazione di autorizzazione opzionale per l'autorizzatore della funzione Lambda. È possibile configurare questa proprietà opzionale quando `Type` è specificata come. `AWS_LAMBDA`  
*Tipo*: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)` proprietà di una `AWS::AppSync::GraphQLApi` risorsa.

`OpenIDConnect`  <a name="sam-graphqlapi-auth-openidconnect"></a>
Specificate la configurazione di autorizzazione opzionale per il OpenID Connect servizio conforme. È possibile configurare questa proprietà opzionale quando `Type` è specificata come. `OPENID_CONNECT`  
*Tipo*: [Open IDConnect Config](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)` proprietà di una `AWS::AppSync::GraphQLApi` risorsa.

`Type`  <a name="sam-graphqlapi-auth-type"></a>
Il tipo di autorizzazione predefinito tra le applicazioni e l' AWS AppSync GraphQLAPI.  
Per un elenco e una descrizione dei valori consentiti, consulta [Autorizzazione e autenticazione](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html) nella *Guida per gli AWS AppSync sviluppatori*.  
Quando specifichi un Lambda authorizer (`AWS_LAMBDA`), AWS SAM crea una policy AWS Identity and Access Management (IAM) per fornire le autorizzazioni tra l'API GraphQL e la funzione Lambda.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[AuthenticationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-authenticationtype)` proprietà di una risorsa. `AWS::AppSync::GraphQLApi`

`UserPool`  <a name="sam-graphqlapi-auth-userpool"></a>
Specificare la configurazione di autorizzazione opzionale per l'utilizzo dei pool di utenti di Amazon Cognito. Puoi configurare questa proprietà opzionale quando `Type` è specificata come`AMAZON_COGNITO_USER_POOLS`.  
*Tipo*: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)` proprietà di una `AWS::AppSync::GraphQLApi` risorsa.

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

### Configura un tipo di autorizzazione predefinito e aggiuntivo
<a name="sam-property-graphqlapi-auth-examples-example1"></a>

In questo esempio, iniziamo configurando un autorizzatore Lambda come tipo di autorizzazione predefinito per la nostra 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
```

Successivamente, configuriamo tipi di autorizzazione aggiuntivi per la nostra GraphQL API aggiungendo quanto segue al nostro modello: AWS SAM 

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

Ciò si traduce nel seguente AWS SAM modello:

```
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>

Configurazione di autorizzazione opzionale per i tipi di autorizzazione GraphQL API aggiuntivi.

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

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

### 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)
```

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

`LambdaAuthorizer`  <a name="sam-graphqlapi-auth-authprovider-lambdaauthorizer"></a>
Specificate la configurazione di autorizzazione opzionale per l'autorizzatore della AWS Lambda funzione. È possibile configurare questa proprietà opzionale quando `Type` è specificata come`AWS_LAMBDA`.  
*Tipo*: [ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)` proprietà di un `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` oggetto.

`OpenIDConnect`  <a name="sam-graphqlapi-auth-authprovider-openidconnect"></a>
Specificate la configurazione di autorizzazione opzionale per il OpenID Connect servizio conforme. È possibile configurare questa proprietà opzionale quando `Type` è specificata come. `OPENID_CONNECT`  
*Tipo*: [Open IDConnect Config](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)` proprietà di un `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` oggetto.

`Type`  <a name="sam-graphqlapi-auth-authprovider-type"></a>
Il tipo di autorizzazione predefinito tra le applicazioni e l' AWS AppSync GraphQLAPI.  
Per un elenco e una descrizione dei valori consentiti, consulta [Autorizzazione e autenticazione](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html) nella *Guida per gli AWS AppSync sviluppatori*.  
Quando specifichi un Lambda authorizer (`AWS_LAMBDA`), AWS SAM crea una policy AWS Identity and Access Management (IAM) per fornire le autorizzazioni tra l'API GraphQL e la funzione Lambda.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla proprietà di un `[ AuthenticationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-authenticationtype)` oggetto. `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)`

`UserPool`  <a name="sam-graphqlapi-auth-authprovider-userpool"></a>
Specificare la configurazione di autorizzazione opzionale per l'utilizzo dei pool di utenti di Amazon Cognito. Puoi configurare questa proprietà opzionale quando `Type` è specificata come`AMAZON_COGNITO_USER_POOLS`.  
*Tipo*: [ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)` proprietà di un `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` oggetto.

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

Configura una fonte di dati a cui il tuo resolver GraphQL API può connettersi. Puoi utilizzare i modelli AWS Serverless Application Model (AWS SAM) per configurare le connessioni alle seguenti fonti di dati:
+ Amazon DynamoDB
+ AWS Lambda

Per ulteriori informazioni sulle fonti di dati, consulta [Allegare una fonte di dati](https://docs.aws.amazon.com/appsync/latest/devguide/attaching-a-data-source.html) nella *Guida per gli AWS AppSync sviluppatori*.

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

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

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

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

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

`DynamoDb`  <a name="sam-graphqlapi-datasource-dynamodb"></a>
Configura una tabella DynamoDB come origine dati per GraphQL il tuo resolver API.  
*Tipo:* [DynamoDb](sam-property-graphqlapi-datasource-dynamodb.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un equivalente. CloudFormation 

`Lambda`  <a name="sam-graphqlapi-datasource-lambda"></a>
Configura una funzione Lambda come origine dati per il tuo resolver GraphQL API.  
*Type*: [Lambda](sam-property-graphqlapi-datasource-lambda.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un equivalente. CloudFormation 

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

Configura una tabella Amazon DynamoDB come origine dati per GraphQL il tuo resolver API.

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

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

### 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
```

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

`DeltaSync`  <a name="sam-graphqlapi-datasource-dynamodb-deltasync"></a>
Descrive una configurazione Delta Sync.  
*Tipo:* [DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-deltasyncconfig)` proprietà di un `AWS::AppSync::DataSource DynamoDBConfig` oggetto.

`Description`  <a name="sam-graphqlapi-datasource-dynamodb-description"></a>
La descrizione della tua fonte di dati.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-description)` proprietà di una `AWS::AppSync::DataSource` risorsa.

`LogicalId`  <a name="sam-graphqlapi-datasource-dynamodb-logicalid"></a>
Il nome univoco della tua fonte di dati.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` proprietà di una `AWS::AppSync::DataSource` risorsa.

`Name`  <a name="sam-graphqlapi-datasource-dynamodb-name"></a>
Il nome della tua fonte di dati. Specificate questa proprietà per sovrascrivere il `LogicalId` valore.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` proprietà di una `AWS::AppSync::DataSource` risorsa.

`Permissions`  <a name="sam-graphqlapi-datasource-dynamodb-permissions"></a>
Fornisci le autorizzazioni alla tua fonte di dati utilizzando[AWS SAM connettori](managing-permissions-connectors.md). È possibile fornire uno dei seguenti valori in un elenco:  
+ `Read`— Consenti al resolver di leggere la fonte dei dati.
+ `Write`— Consenti al resolver di scrivere sulla tua fonte di dati.
AWS SAM utilizza una `AWS::Serverless::Connector` risorsa che viene trasformata al momento dell'implementazione per fornire le autorizzazioni. Per maggiori informazioni sulle risorse generate, consulta[CloudFormation risorse generate quando si specifica AWS::Serverless::Connector](sam-specification-generated-resources-connector.md).  
Puoi specificare `Permissions` o `ServiceRoleArn`, ma non entrambi. Se non viene specificato nessuno dei due, AWS SAM genererà i valori predefiniti di `Read` and`Write`. Per revocare l'accesso all'origine dati, rimuovi l'oggetto DynamoDB dal modello. AWS SAM 
Tipo: elenco  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un equivalente. CloudFormation È simile alla `Permissions` proprietà di una `AWS::Serverless::Connector` risorsa.

`Region`  <a name="sam-graphqlapi-datasource-dynamodb-region"></a>
La tua Regione AWS tabella DynamoDB. Se non lo specifichi, AWS SAM utilizza. `[AWS::Region](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html#cfn-pseudo-param-region)`  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[AwsRegion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-awsregion)` proprietà di un `AWS::AppSync::DataSource DynamoDBConfig` oggetto.

`ServiceRoleArn`  <a name="sam-graphqlapi-datasource-dynamodb-servicerolearn"></a>
L'ARN del ruolo di servizio AWS Identity and Access Management (IAM) per l'origine dati. Il sistema assume questo ruolo durante l'accesso all'origine dati.  
Puoi specificare `Permissions` o `ServiceRoleArn`, ma non entrambi.  
▬*Tipo:* stringa  
*Obbligatorio*: No. Se non specificato, AWS SAM applica il valore predefinito per`Permissions`.  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ServiceRoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-servicerolearn)` proprietà di una `AWS::AppSync::DataSource` risorsa.

`TableArn`  <a name="sam-graphqlapi-datasource-dynamodb-tablearn"></a>
L'ARN per la tabella DynamoDB.  
▬*Tipo:* stringa  
*Obbligatorio:* condizionale. Se non lo specifichi`ServiceRoleArn`, `TableArn` è obbligatorio.  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`TableName`  <a name="sam-graphqlapi-datasource-dynamodb-tablename"></a>
Il nome della tabella.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[TableName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-tablename)` proprietà di un `AWS::AppSync::DataSource DynamoDBConfig` oggetto.

`UseCallerCredentials`  <a name="sam-graphqlapi-datasource-dynamodb-usecallercredentials"></a>
Imposta `true` per utilizzare IAM con questa fonte di dati.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[UseCallerCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-usecallercredentials)` proprietà di un `AWS::AppSync::DataSource DynamoDBConfig` oggetto.

`Versioned`  <a name="sam-graphqlapi-datasource-dynamodb-versioned"></a>
Imposta per `true` utilizzare [Conflict Detection, Conflict Resolution e Sync](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html) con questa fonte di dati.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Versioned](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-versioned)` proprietà di un `AWS::AppSync::DataSource DynamoDBConfig` oggetto.

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

Configura una AWS Lambda funzione come fonte di dati per il tuo resolver GraphQL API.

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

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

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

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

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

`Description`  <a name="sam-graphqlapi-datasource-lambda-description"></a>
La descrizione della tua fonte di dati.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-description)` proprietà di una `AWS::AppSync::DataSource` risorsa.

`FunctionArn`  <a name="sam-graphqlapi-datasource-lambda-functionarn"></a>
L'ARN per la funzione Lambda.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[LambdaFunctionArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html#cfn-appsync-datasource-lambdaconfig-lambdafunctionarn)` proprietà di un `AWS::AppSync::DataSource LambdaConfig` oggetto.

`LogicalId`  <a name="sam-graphqlapi-datasource-lambda-logicalid"></a>
Il nome univoco della tua fonte di dati.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` proprietà di una `AWS::AppSync::DataSource` risorsa.

`Name`  <a name="sam-graphqlapi-datasource-lambda-name"></a>
Il nome della tua fonte di dati. Specificate questa proprietà per sovrascrivere il `LogicalId` valore.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` proprietà di una `AWS::AppSync::DataSource` risorsa.

`ServiceRoleArn`  <a name="sam-graphqlapi-datasource-lambda-servicerolearn"></a>
L'ARN del ruolo di servizio AWS Identity and Access Management (IAM) per l'origine dati. Il sistema assume questo ruolo durante l'accesso all'origine dati.  
Per revocare l'accesso all'origine dati, rimuovi l'oggetto Lambda dal modello. AWS SAM 
▬*Tipo:* stringa  
*Obbligatorio*: No. Se non specificato, AWS SAM fornirà `Write` le autorizzazioni utilizzando[AWS SAM connettori](managing-permissions-connectors.md).  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ServiceRoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-servicerolearn)` proprietà di una `AWS::AppSync::DataSource` risorsa.

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

Configura le funzioni in GraphQL APIs per eseguire determinate operazioni.

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

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

### 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)
```

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

`CodeUri`  <a name="sam-graphqlapi-function-codeuri"></a>
L'URI o il percorso della cartella locale di Amazon Simple Storage Service (Amazon S3) del codice funzione.  
Se specifichi un percorso verso una cartella locale, è CloudFormation necessario che il file venga prima caricato su Amazon S3 prima della distribuzione. Puoi usare il AWS SAMCLI per facilitare questo processo. Per ulteriori informazioni, consulta [Come AWS SAM vengono caricati i file locali al momento della distribuzione](deploy-upload-local-files.md).  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[CodeS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-codes3location)` proprietà di una `AWS::AppSync::FunctionConfiguration` risorsa.

`DataSource`  <a name="sam-graphqlapi-function-datasource"></a>
Il nome della fonte di dati a cui verrà collegata questa funzione.  
+ Per fare riferimento a un'origine dati all'interno della `AWS::Serverless::GraphQLApi` risorsa, specificane l'ID logico.
+ Per fare riferimento a una fonte di dati esterna alla `AWS::Serverless::GraphQLApi` risorsa, fornisci il relativo `Name` attributo utilizzando la funzione `Fn::GetAtt` intrinseca. Ad esempio, `!GetAtt MyLambdaDataSource.Name`.
+ Per fare riferimento a una fonte di dati da uno stack diverso, usa. `[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)`
Se `[NONE | None | none]` viene specificata una variazione di, AWS SAM genererà un `None` valore per l'`AWS::AppSync::DataSource``[Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-type)`oggetto.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[DataSourceName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-datasourcename)` proprietà di una `AWS::AppSync::FunctionConfiguration` risorsa.

`Description`  <a name="sam-graphqlapi-function-description"></a>
La descrizione della tua funzione.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-description)` proprietà di una `AWS::AppSync::FunctionConfiguration` risorsa.

`Id`  <a name="sam-graphqlapi-function-id"></a>
L'ID della funzione per una funzione situata all'esterno della `AWS::Serverless::GraphQLApi` risorsa.  
+ Per fare riferimento a una funzione all'interno dello stesso AWS SAM modello, utilizzate la funzione `Fn::GetAtt` intrinseca. Ad esempio, `Id: !GetAtt createPostItemFunc.FunctionId`.
+ Per fare riferimento a una funzione da uno stack diverso, usa. `[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)`
Durante l'utilizzo`Id`, tutte le altre proprietà non sono consentite. AWS SAM passerà automaticamente l'ID funzione della funzione di riferimento.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`InlineCode`  <a name="sam-graphqlapi-function-inlinecode"></a>
Il codice della funzione che contiene le funzioni di richiesta e risposta.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-code)` proprietà di una `AWS::AppSync::FunctionConfiguration` risorsa.

`LogicalId`  <a name="sam-graphqlapi-function-logicalid"></a>
Il nome univoco della tua funzione.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-name)` proprietà di una `AWS::AppSync::FunctionConfiguration` risorsa.

`MaxBatchSize`  <a name="sam-graphqlapi-function-maxbatchsize"></a>
Il numero massimo di input di richiesta del resolver che verranno inviati a una singola funzione AWS Lambda in un'operazione `BatchInvoke`.  
*Tipo*: integer  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla [MaxBatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-maxbatchsize)proprietà di una `AWS::AppSync::FunctionConfiguration` risorsa.

`Name`  <a name="sam-graphqlapi-function-name"></a>
Il nome della funzione. Specificare di sovrascrivere il `LogicalId` valore.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-name)` proprietà di una `AWS::AppSync::FunctionConfiguration` risorsa.

`Runtime`  <a name="sam-graphqlapi-function-runtime"></a>
Descrive un runtime utilizzato da un resolver o da una funzione di AWS AppSync pipeline. AWS AppSync Specifica il nome e la versione del runtime da utilizzare.  
*[Tipo: Runtime](sam-property-graphqlapi-function-runtime.md)*  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente. È simile alla `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-runtime)` proprietà di una `AWS::AppSync::FunctionConfiguration` risorsa.

`Sync`  <a name="sam-graphqlapi-function-sync"></a>
Descrive una configurazione di sincronizzazione per una funzione.  
Speciifica la strategia di rilevamento dei conflitti e la strategia di risoluzione da utilizzare quando la funzione viene richiamata.  
*Tipo:* [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-syncconfig)` proprietà di una `AWS::AppSync::FunctionConfiguration` risorsa.

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

Il runtime del resolver o della funzione della pipeline. Specificate il nome e la versione da utilizzare.

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

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

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

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

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

`Name`  <a name="sam-graphqlapi-function-runtime-name"></a>
Il nome del runtime da usare. Attualmente, l'unico valore consentito è `APPSYNC_JS`.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-appsyncruntime.html#cfn-appsync-functionconfiguration-appsyncruntime-name)` proprietà di un `AWS::AppSync::FunctionConfiguration AppSyncRuntime` oggetto.

`Version`  <a name="sam-graphqlapi-function-runtime-version"></a>
La versione del runtime da utilizzare. Attualmente, l'unica versione consentita è `1.0.0`.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[RuntimeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-appsyncruntime.html#cfn-appsync-functionconfiguration-appsyncruntime-runtimeversion)` proprietà di un `AWS::AppSync::FunctionConfiguration AppSyncRuntime` oggetto.

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

Configura i resolver per i campi della tua API. GraphQL AWS Serverless Application Model [(AWS SAM) supporta JavaScript i resolver per pipeline.](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html)

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

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

### 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)
```

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

`Caching`  <a name="sam-graphqlapi-resolver-caching"></a>
La configurazione di memorizzazione nella cache per il resolver che ha attivato la memorizzazione nella cache.  
*Tipo:* [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-cachingconfig)` proprietà di una risorsa. `AWS::AppSync::Resolver`

`CodeUri`  <a name="sam-graphqlapi-resolver-codeuri"></a>
L'URI o il percorso di una cartella locale del codice della funzione resolver di Amazon Simple Storage Service (Amazon S3).  
Se specifichi un percorso verso una cartella locale, è CloudFormation necessario che il file venga prima caricato su Amazon S3 prima della distribuzione. Puoi usare il AWS SAMCLI per facilitare questo processo. Per ulteriori informazioni, consulta [Come AWS SAM vengono caricati i file locali al momento della distribuzione](deploy-upload-local-files.md).  
Se nessuno dei due `CodeUri` `InlineCode` viene fornito, AWS SAM genererà `InlineCode` che reindirizza la richiesta alla prima funzione di pipeline e riceve la risposta dall'ultima funzione di pipeline.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[CodeS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-codes3location)` proprietà di una risorsa. `AWS::AppSync::Resolver`

`FieldName`  <a name="sam-graphqlapi-resolver-fieldname"></a>
Il nome del tuo resolver. Specificate questa proprietà per sovrascrivere il valore. `LogicalId`  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[FieldName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-fieldname)` proprietà di una `AWS::AppSync::Resolver` risorsa.

`InlineCode`  <a name="sam-graphqlapi-resolver-inlinecode"></a>
Il codice del resolver che contiene le funzioni di richiesta e risposta.  
Se nessuna delle due `CodeUri` o `InlineCode` viene fornita, AWS SAM genererà un `InlineCode` messaggio che reindirizza la richiesta alla prima funzione di pipeline e riceve la risposta dall'ultima funzione di pipeline.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-code)` proprietà di una risorsa. `AWS::AppSync::Resolver`

`LogicalId`  <a name="sam-graphqlapi-resolver-logicalid"></a>
Il nome univoco del tuo resolver. In uno GraphQL schema, il nome del resolver deve corrispondere al nome del campo per cui viene utilizzato. Usa lo stesso nome di campo per. `LogicalId`  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`MaxBatchSize`  <a name="sam-graphqlapi-resolver-maxbatchsize"></a>
Il numero massimo di input di richiesta del resolver che verranno inviati a una singola funzione AWS Lambda in un'operazione `BatchInvoke`.  
*Tipo*: integer  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[MaxBatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-maxbatchsize)` proprietà di una `AWS::AppSync::Resolver` risorsa.

`OperationType`  <a name="sam-graphqlapi-resolver-operationtype"></a>
Il tipo di GraphQL operazione associato al resolver. Ad esempio, `Query`, `Mutation` o `Subscription`. È possibile annidare più resolver all'interno di un unico resolver. `LogicalId` `OperationType`  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[TypeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-typename)` proprietà di una risorsa. `AWS::AppSync::Resolver`

`Pipeline`  <a name="sam-graphqlapi-resolver-pipeline"></a>
Funzioni collegate al risolver della pipeline. Specificate le funzioni in base all'ID logico in un elenco.  
Tipo: elenco  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente. È simile alla `[PipelineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-pipelineconfig)` proprietà di una `AWS::AppSync::Resolver` risorsa.

`Runtime`  <a name="sam-graphqlapi-resolver-runtime"></a>
Il runtime del resolver o della funzione della pipeline. Specificate il nome e la versione da utilizzare.  
*Tipo*[: Runtime](sam-property-graphqlapi-resolver-runtime.md)  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente. È simile alla `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-runtime)` proprietà di una `AWS::AppSync::Resolver` risorsa.

`Sync`  <a name="sam-graphqlapi-resolver-sync"></a>
Descrive una configurazione di sincronizzazione per un resolver.  
Specifica quale strategia di rilevamento dei conflitti e strategia di risoluzione utilizzare quando viene richiamato il resolver.  
*Tipo:* [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-syncconfig)` proprietà di una `AWS::AppSync::Resolver` risorsa.

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

### Usa il codice della funzione resolver AWS SAM generato e salva i campi come variabili
<a name="sam-property-graphqlapi-resolver-examples-example1"></a>

Ecco GraphQL lo schema per il nostro esempio:

```
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
}
```

Ecco un frammento del nostro AWS SAM modello:

```
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
```

Nel nostro AWS SAM modello, non `CodeUri` specifichiamo o. `InlineCode` Al momento dell'implementazione, genera AWS SAM automaticamente il seguente codice in linea per il nostro resolver:

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

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

Questo codice resolver predefinito reindirizza la richiesta alla prima funzione di pipeline e riceve la risposta dall'ultima funzione di pipeline.

Nella nostra prima funzione pipeline, possiamo usare il `args` campo fornito per analizzare l'oggetto della richiesta e creare le nostre variabili. Possiamo quindi utilizzare queste variabili all'interno della nostra funzione. Ecco un esempio della nostra `preprocessPostItem` funzione:

```
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>

Il runtime del resolver o della funzione della pipeline. Specificate il nome e la versione da utilizzare.

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

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

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

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

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

`Name`  <a name="sam-graphqlapi-resolver-runtime-name"></a>
Il nome del runtime da usare. Attualmente, l'unico valore consentito è `APPSYNC_JS`.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-name)` proprietà di un `AWS::AppSync::Resolver AppSyncRuntime` oggetto.

`Version`  <a name="sam-graphqlapi-resolver-runtime-version"></a>
La versione del runtime da utilizzare. Attualmente, l'unica versione consentita è `1.0.0`.  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[RuntimeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-runtimeversion)` proprietà di un `AWS::AppSync::Resolver AppSyncRuntime` oggetto.