Skip to main content
Cuando un controlador de CloudScript se inicia desde una acción de PlayStream, ese controlador tiene acceso a más datos sobre por qué se está ejecutando (el contexto), que puede usar para impulsar su lógica del lado servidor. Este tutorial le guía por todo lo que está disponible en el contexto y cómo usarlo en sus controladores de CloudScript.

Aspectos básicos de CloudScript

La clave para sacar el máximo partido a CloudScript es saber cómo trabajar con las entradas que tiene disponibles, es decir, los args y el contexto de su controlador. Por ejemplo, este es el ejemplo helloWorld del CloudScript inicial, cargado como revisión 1 en todos los títulos recién creados (también disponible en nuestro GitHub, que se muestra a continuación).
Este ejemplo demuestra el caso de uso común de llamar a CloudScript desde un cliente, mediante ExecuteCloudScript. Comprueba si hay un argumento pasado con la clave inputValue y usa el valor de esa clave como parte del texto devuelto en la información del registro de depuración de la ejecución.

El parámetro de entrada context

Sin embargo, también es posible llamar a un CloudScript como resultado de un evento en PlayStream, mediante una regla (Automation->Rules), una acción de entrada/salida de segmento (Players->Segments) o el servicio de tareas (Automation->Tasks). Cuando lo hace, el contexto pasado a la función proporciona toda la información que necesitará para realizar la acción adecuada. Para leer sobre los aspectos básicos del funcionamiento de los eventos de PlayStream, consulte nuestro blog Introducing PlayStream y, para obtener una lista de los tipos de eventos de PlayStream y sus propiedades, consulte nuestra referencia de API de PlayFab. Para ver esta acción, eche un vistazo al controlador handlePlayStreamEventAndProfile del mismo CloudScript de ejemplo.
En el caso de una llamada de CloudScript desencadenada por PlayStream, el contexto contiene 3 elementos que se pueden usar para impulsar la lógica de su controlador con autoridad del servidor.
  1. Está el playStreamEvent, que puede ver en el código de ejemplo anterior. El playStreamEvent contiene el evento completo que desencadenó el controlador como un objeto JSON, con todos los parámetros que ve en la documentación de eventos de PlayStream. Así, por ejemplo, si configura una regla en su título que llame a handlePlayStreamEventAndProfile en cualquier evento player_logged_in, playStreamEvent.EventName sería player_logged_in, etc. (aquí está el conjunto completo de parámetros para ese evento).
  2. A continuación, está el playerProfile, que también se muestra en el ejemplo anterior. Contiene información sobre el jugador que desencadenó el evento. Puede encontrar todos los detalles de los parámetros del perfil aquí, pero, entre otras cosas, contiene el conjunto completo de estadísticas del jugador en su título y las etiquetas personalizadas que haya asignado al jugador, para que pueda usar esos datos para una toma de decisiones enriquecida.
  3. El último elemento del contexto es triggeredByTask. A diferencia de los dos primeros, que se establecen al usar reglas y desencadenadores de entrada/salida de segmento, triggeredByTask solo es aplicable cuando el controlador se ejecuta como resultado de una tarea, ya sea manual o con temporizador. Contiene solo dos parámetros:
  • Name: el nombre único que le dio a su tarea cuando la creó.
  • ID: el identificador único generado automáticamente por PlayFab para su tarea.
Para una tarea ejecutada en un segmento de usuarios, también tendrá el playerProfile, pero no tendrá un playStreamEvent. Y para una tarea que simplemente se ejecuta en su juego pero sin ningún segmento, no habrá un playerProfile, ya que la intención es ejecutar algo más general, como establecer algunos datos del título para un evento. Por lo tanto, el nombre es el elemento que le conviene usar en el flujo de código de su controlador para determinar la acción adecuada que se debe realizar.

PlayStream más CloudScript

En muchos sentidos, los controladores de CloudScript desencadenados por acciones de PlayStream tienen incluso más funcionalidad potencial que los desencadenados directamente mediante llamadas a ExecuteCloudScript, ya que hay un conjunto enriquecido de datos disponible a través del contexto. Esto le brinda la posibilidad de actualizar sus controladores después del lanzamiento con más lógica que use elementos del evento o del perfil del jugador que no había previsto originalmente, sin necesidad de actualizar el código del cliente de ninguna manera. Además, seguiremos realizando incorporaciones al perfil del jugador en futuras actualizaciones del servicio de PlayFab, lo que proporcionará incluso más opciones para la lógica del lado servidor.
Última modificación el 28 de agosto de 2026