> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Modèles de contexte de PlayFab CloudScript avec Azure Functions

> Référence des modèles de contexte de PlayFab CloudScript exposés à Azure Functions lorsque des scripts s'exécutent via ExecuteFunction, des tâches planifiées, des joueurs ou des entités.

# Tutoriel : utilisation des modèles de contexte CloudScript

PlayFab exécute des scripts au moyen de plusieurs mécanismes, notamment via les API, les tâches planifiées, les événements PlayStream, ainsi que lorsqu'un joueur entre dans un segment ou en sort. Dans de nombreux cas, le contexte d'exécution du script est important pour son fonctionnement. Par exemple, il peut être nécessaire de connaître le Player ID du joueur pour le compte duquel le script est exécuté. Le contexte dans lequel votre script s'exécute détermine le modèle de données disponible et fournit des données propres au contexte, utilisées dans votre script.

Dans ce tutoriel, vous allez apprendre à :

<Note>
  \[!div class="checklist"]
</Note>

>

<Note>
  * Utiliser le modèle de contexte partagé \* Utiliser le modèle de contexte lors d'une exécution via l'API ExecuteFunction. \* Utiliser le modèle de contexte lors d'une exécution via une tâche planifiée. \* Utiliser le modèle de contexte lors d'une exécution dans le contexte d'un joueur. \* Utiliser le modèle de contexte lors d'une exécution dans le contexte d'une entité.
</Note>

## Utiliser le modèle de contexte partagé Title Authentication

Quelle que soit la méthode d'exécution d'un script, le contexte Title Authentication est toujours fourni. Il comprend le Title ID et l'Entity Token (voir [GetEntityToken](https://learn.microsoft.com/en-us/rest/api/playfab/authentication/authentication/get-entity-token) pour plus de détails) utilisés pour exécuter le script. La connaissance de ce contexte vous permet d'effectuer, dans votre script, des appels d'API supplémentaires vers PlayFab à l'aide des API Server.

```C# theme={null}
// Shared models
public class TitleAuthenticationContext
{
    public string Id { get; set; }
    public string EntityToken { get; set; }
}
```

## Utiliser le modèle de contexte lors d'une exécution via l'API ExecuteFunction

Lorsque vous utilisez l'[API ExecuteFunction](https://learn.microsoft.com/en-us/rest/api/playfab/cloudscript/server-side-cloud-script/execute-function) pour exécuter un script, le contexte fourni comprend les informations suivantes :

* Le profil d'entité de l'appelant
* Le contexte Title Authentication
* Une valeur booléenne indiquant si un événement PlayStream est envoyé dans le cadre de la fonction exécutée
* Les arguments de fonction utilisés lors de l'appel du script

```C# theme={null}
// Models via ExecuteFunction API
public class FunctionExecutionContext<T>
{
    public PlayFab.ProfilesModels.EntityProfileBody CallerEntityProfile { get; set; }
    public TitleAuthenticationContext TitleAuthenticationContext { get; set; }
    public bool? GeneratePlayStreamEvent { get; set; }
    public T FunctionArgument { get; set; }
}

public class FunctionExecutionContext : FunctionExecutionContext<object>
{
}
```

## Utiliser le modèle de contexte lors d'une exécution via une tâche planifiée

Lorsque vous utilisez des [tâches planifiées](/fr/services/playfab/data-analytics/acting-data/scheduled-tasks) pour exécuter un script, le contexte fourni comprend les informations suivantes :

* Le Name Id de la tâche planifiée
* L'historique des événements, qui comprend une pile d'événements PlayStream
* Le contexte Title Authentication
* Une valeur booléenne indiquant si un événement PlayStream est envoyé dans le cadre de la fonction exécutée
* L'argument de fonction utilisé lors de l'appel du script

```C# theme={null}
// Models via Scheduled task
public class PlayStreamEventHistory
{
    public string ParentTriggerId { get; set; }
    public string ParentEventId { get; set; }
    public bool TriggeredEvents { get; set; }
}

public class ScheduledTaskFunctionExecutionContext<T>
{
    public PlayFab.CloudScriptModels.NameIdentifier ScheduledTaskNameId { get; set; }
    public Stack<PlayStreamEventHistory> EventHistory { get; set; }
    public TitleAuthenticationContext TitleAuthenticationContext { get; set; }
    public bool? GeneratePlayStreamEvent { get; set; }
    public T FunctionArgument { get; set; }
}

public class ScheduledTaskFunctionExecutionContext : ScheduledTaskFunctionExecutionContext<object>
{
}
```

## Utiliser le modèle de contexte lors d'une exécution dans le contexte d'un joueur

Lors de l'exécution d'un script via des événements PlayStream de joueur, lors de l'entrée dans un segment ou de la sortie d'un segment, ou dans le cadre d'une tâche planifiée basée sur un segment, le contexte fourni comprend les informations suivantes :

* Le profil du joueur
* Une valeur booléenne indiquant si le profil du joueur est tronqué.
  * Le profil du joueur est tronqué s'il dépasse 2 048 octets. Dans ce cas, vous devrez utiliser les API de profil (API serveur, client ou d'entité) pour récupérer le profil complet.
* L'événement PlayStream qui a déclenché le script.
* Une valeur booléenne indiquant si un événement PlayStream est envoyé dans le cadre de la fonction exécutée
* Les arguments de fonction utilisés lors de l'appel du script

```C# theme={null}
// Models via Player PlayStream event, entering or leaving a 
// player segment or as part of a player segment based scheduled task.
public class PlayerPlayStreamFunctionExecutionContext<T>
{
    public PlayFab.CloudScriptModels.PlayerProfileModel PlayerProfile { get; set; }
    public bool PlayerProfileTruncated { get; set; }
    public PlayFab.CloudScriptModels.PlayStreamEventEnvelopeModel PlayStreamEventEnvelope { get; set; }
    public TitleAuthenticationContext TitleAuthenticationContext { get; set; }
    public bool? GeneratePlayStreamEvent { get; set; }
    public T FunctionArgument { get; set; }
}

public class PlayerPlayStreamFunctionExecutionContext : PlayerPlayStreamFunctionExecutionContext<object>
{
}
```

## Utiliser le modèle de contexte lors d'une exécution via des événements PlayStream d'entité, l'entrée dans un segment d'entité ou la sortie d'un tel segment, ou dans le cadre d'une tâche planifiée basée sur un segment d'entité

Lors de l'exécution d'un script via des événements PlayStream d'entité, lors de l'entrée dans un segment d'entité ou de la sortie d'un tel segment, ou dans le cadre d'une tâche planifiée basée sur un segment d'entité, le contexte fourni comprend les informations suivantes :

* Le profil d'entité
* L'événement PlayStream qui a déclenché le script.
* Une valeur booléenne indiquant si un événement PlayStream est envoyé dans le cadre de la fonction exécutée

```C# theme={null}
// Models via Entity PlayStream event, entering or leaving an 
// entity segment or as part of an entity segment based scheduled task.
public class EventFullName
{
    public string Name { get; set; }
    public string Namespace { get; set; }
}

public class OriginInfo
{
    public string Id { get; set; }
    public DateTime? Timestamp { get; set; }
}

public class EntityPlayStreamEvent<T>
{
    public string SchemaVersion { get; set; }
    public EventFullName FullName { get; set; }
    public string Id { get; set; }
    public DateTime Timestamp { get; set; }
    public PlayFab.CloudScriptModels.EntityKey Entity { get; set; }
    public PlayFab.CloudScriptModels.EntityKey Originator { get; set; }
    public OriginInfo OriginInfo { get; set; }
    public T Payload { get; set; }
    public PlayFab.ProfilesModels.EntityLineage EntityLineage { get; set; }
}

public class EntityPlayStreamEvent : EntityPlayStreamEvent<object>
{
}

public class EntityPlayStreamFunctionExecutionContext<TPayload, TArg>
{
    public PlayFab.ProfilesModels.EntityProfileBody CallerEntityProfile { get; set; }
    public EntityPlayStreamEvent<TPayload> PlayStreamEvent { get; set; }
    public TitleAuthenticationContext TitleAuthenticationContext { get; set; }
    public bool? GeneratePlayStreamEvent { get; set; }
    public TArg FunctionArgument { get; set; }
}

public class EntityPlayStreamFunctionExecutionContext : EntityPlayStreamFunctionExecutionContext<object, object>
{
}
```

<Note>
  Vous pouvez télécharger la [classe d'assistance complète de CloudScript avec Azure Functions](https://github.com/PlayFab/PlayFab-Samples/blob/master/Samples/CSharp/AzureFunctions/CS2AFHelperClasses.cs).
</Note>


## Related topics

- [Guide de démarrage rapide de PlayFab CloudScript avec Azure Functions](/fr/services/playfab/live-service-management/service-gateway/automation/cloudscript-af/quickstart.md)
- [PlayFab CloudScript avec Azure Functions](/fr/services/playfab/live-service-management/service-gateway/automation/cloudscript-af/index.md)
- [Débogage local de CloudScript avec Azure Functions](/fr/services/playfab/live-service-management/service-gateway/automation/cloudscript-af/local-debugging-for-cloudscript-using-azure-functions.md)
- [Déboguer CloudScript avec Azure Functions dans le portail Azure](/fr/services/playfab/live-service-management/service-gateway/automation/cloudscript-af/debugging-with-CloudScript-AF-Azure.md)
- [Déboguer CloudScript avec Azure Functions dans Visual Studio Code](/fr/services/playfab/live-service-management/service-gateway/automation/cloudscript-af/debugging-with-CloudScript-AF-VSCode.md)
