

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Résolveur
<a name="sam-property-graphqlapi-resolver"></a>

Configurez des résolveurs pour les champs de votre GraphQL API. AWS Serverless Application Model (AWS SAM) prend en charge les [résolveurs de JavaScript pipeline](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html).

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

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

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

## Propriétés
<a name="sam-property-graphqlapi-resolver-properties"></a>

`Caching`  <a name="sam-graphqlapi-resolver-caching"></a>
La configuration de mise en cache pour un résolveur dont la mise en cache est activée.  
*Type :* [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-cachingconfig)` propriété d'une `AWS::AppSync::Resolver` ressource.

`CodeUri`  <a name="sam-graphqlapi-resolver-codeuri"></a>
L'URI ou le chemin d'accès à un dossier local d'Amazon Simple Storage Service (Amazon S3) du code de la fonction de résolution.  
Si vous spécifiez un chemin d'accès à un dossier local, le fichier CloudFormation doit d'abord être chargé sur Amazon S3 avant le déploiement. Vous pouvez utiliser la CLI  AWS SAM pour faciliter ce processus. Pour de plus amples informations, veuillez consulter [Comment AWS SAM télécharge les fichiers locaux lors du déploiement](deploy-upload-local-files.md).  
Si aucun `CodeUri` des deux `InlineCode` n'est fourni, AWS SAM générera `InlineCode` qui redirigera la demande vers la première fonction de pipeline et recevra la réponse de la dernière fonction de pipeline.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[CodeS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-codes3location)` propriété d'une `AWS::AppSync::Resolver` ressource.

`FieldName`  <a name="sam-graphqlapi-resolver-fieldname"></a>
Le nom de votre résolveur. Spécifiez cette propriété pour remplacer la valeur `LogicalId`.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[FieldName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-fieldname)` propriété d'une `AWS::AppSync::Resolver` ressource.

`InlineCode`  <a name="sam-graphqlapi-resolver-inlinecode"></a>
Code de votre résolveur contenant les fonctions de demande et de réponse.  
Si aucun `CodeUri` des deux `InlineCode` n'est fourni, AWS SAM générera `InlineCode` qui redirigera la demande vers la première fonction de pipeline et recevra la réponse de la dernière fonction de pipeline.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-code)` propriété d'une `AWS::AppSync::Resolver` ressource.

`LogicalId`  <a name="sam-graphqlapi-resolver-logicalid"></a>
Le nom unique de votre résolveur. Dans un schéma GraphQL, le nom de votre résolveur doit correspondre au nom du champ pour lequel il est utilisé. Utilisez le même nom de champ pour `LogicalId`.  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

`MaxBatchSize`  <a name="sam-graphqlapi-resolver-maxbatchsize"></a>
Le nombre maximal d'entrées de requêtes de résolveur qui seront envoyées à une seule fonction AWS Lambda dans une opération `BatchInvoke`.  
*Type* : entier  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[MaxBatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-maxbatchsize)` propriété d'une `AWS::AppSync::Resolver` ressource.

`OperationType`  <a name="sam-graphqlapi-resolver-operationtype"></a>
Type d'opération GraphQL associé à votre résolveur. Par exemple, `Query`, `Mutation` ou `Subscription`. Vous pouvez imbriquer plusieurs résolveurs `LogicalId` au sein d'un même `OperationType`.  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[TypeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-typename)` propriété d'une `AWS::AppSync::Resolver` ressource.

`Pipeline`  <a name="sam-graphqlapi-resolver-pipeline"></a>
Fonctions liées avec le résolveur de pipeline. Spécifiez les fonctions par ID logique dans une liste.  
*Type* : liste  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent. Elle est similaire à la propriété `[PipelineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-pipelineconfig)` d'une ressource `AWS::AppSync::Resolver`.

`Runtime`  <a name="sam-graphqlapi-resolver-runtime"></a>
Le temps d'exécution de votre résolveur ou de votre fonction de pipeline. Spécifie le nom et la version à utiliser.  
*Type* : [Temps d'exécution](sam-property-graphqlapi-resolver-runtime.md)  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent. Elle est similaire à la propriété `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-runtime)` d'une propriété `AWS::AppSync::Resolver`.

`Sync`  <a name="sam-graphqlapi-resolver-sync"></a>
Décrit une configuration Sync pour un résolveur.  
Spécifie la stratégie de détection de conflits et de résolution à utiliser lorsque le résolveur est appelé.  
*Type :* [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-syncconfig)` propriété d'une `AWS::AppSync::Resolver` ressource.

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

### Utilisez le code de fonction de résolution AWS SAM généré et enregistrez les champs sous forme de variables
<a name="sam-property-graphqlapi-resolver-examples-example1"></a>

Voici le schéma GraphQL de notre exemple :

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

Voici un extrait de notre AWS SAM modèle :

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

Dans notre AWS SAM modèle, nous ne spécifions pas `CodeUri` ou`InlineCode`. Lors du déploiement, génère AWS SAM automatiquement le code en ligne suivant pour notre résolveur :

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

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

Ce code de résolution par défaut redirige la demande vers la première fonction de pipeline et reçoit la réponse de la dernière fonction de pipeline.

Dans notre première fonction de pipeline, nous pouvons utiliser le champ `args` fourni pour analyser l'objet de la requête et créer nos variables. Nous pouvons ensuite utiliser ces variables dans notre fonction. Voici un exemple de notre fonction `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;
}
```

# Environnement d’exécution
<a name="sam-property-graphqlapi-resolver-runtime"></a>

Le temps d'exécution de votre résolveur ou de votre fonction de pipeline. Spécifie le nom et la version d'exécution à utiliser.

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

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

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

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

## Propriétés
<a name="sam-property-graphqlapi-resolver-runtime-properties"></a>

`Name`  <a name="sam-graphqlapi-resolver-runtime-name"></a>
Le nom du temps d'exécution à utiliser. Actuellement, la seule valeur autorisée est `APPSYNC_JS`.  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-name)` propriété d'un `AWS::AppSync::Resolver AppSyncRuntime` objet.

`Version`  <a name="sam-graphqlapi-resolver-runtime-version"></a>
La version du temps d'exécution à utiliser. Actuellement, la seule version autorisée est `1.0.0`.  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[RuntimeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-runtimeversion)` propriété d'un `AWS::AppSync::Resolver AppSyncRuntime` objet.