Pular para o conteúdo principal
Quando um manipulador do CloudScript é iniciado a partir de uma ação do PlayStream, esse manipulador tem acesso a mais dados sobre o motivo pelo qual está sendo executado (o contexto), que você pode usar para conduzir sua lógica do lado do servidor. Este tutorial mostra tudo o que está disponível no contexto e como usá-lo nos seus manipuladores do CloudScript.

Noções básicas do CloudScript

A chave para aproveitar ao máximo o CloudScript é saber como trabalhar com as entradas disponíveis, ou seja, os args e o contexto do seu manipulador. Por exemplo, aqui está o exemplo helloWorld do CloudScript inicial, carregado como Revisão 1 em todos os títulos recém-criados (também disponível no nosso GitHub, mostrado abaixo).
Este exemplo demonstra o caso de uso comum de chamar o CloudScript a partir de um cliente, por meio de ExecuteCloudScript. Ele verifica se há um argumento passado com a chave inputValue e usa o valor dessa chave como parte do texto retornado nas informações do log de depuração da execução.

O parâmetro de entrada context

No entanto, também é possível chamar um CloudScript como resultado de um evento no PlayStream, por meio de uma Regra (Automation->Rules), uma Ação de Entrada/Saída de Segmento (Players->Segments) ou o Serviço de Tarefas (Automation->Tasks). Quando você faz isso, o contexto passado para a função fornece todas as informações necessárias para executar a ação apropriada. Para ler sobre os conceitos básicos de como os eventos do PlayStream funcionam, consulte o nosso blog Introducing PlayStream e, para obter uma lista dos tipos de eventos do PlayStream e suas propriedades, consulte a nossa Referência da API do PlayFab. Para ver essa ação, dê uma olhada no manipulador handlePlayStreamEventAndProfile do mesmo CloudScript de exemplo.
No caso de uma chamada do CloudScript disparada pelo PlayStream, o contexto contém 3 elementos que podem ser usados para conduzir a lógica do seu manipulador com autoridade do servidor.
  1. Há o playStreamEvent, que você pode ver no código de exemplo acima. O playStreamEvent contém o evento completo que disparou o manipulador como um objeto JSON, com todos os parâmetros que você vê na documentação de eventos do PlayStream. Assim, por exemplo, se você configurar uma regra no seu título que chame handlePlayStreamEventAndProfile em qualquer player_logged_in event, playStreamEvent.EventName seria player_logged_in etc. (aqui está o conjunto completo de parâmetros desse evento).
  2. Em seguida, há o playerProfile, também mostrado no exemplo anterior. Ele contém informações sobre o jogador que disparou o evento. Você pode encontrar todos os detalhes dos parâmetros do perfil aqui, mas, entre outras coisas, ele contém o conjunto completo de estatísticas do jogador no seu título e quaisquer marcas personalizadas que você tenha atribuído ao jogador, para que você possa usar esses dados para uma tomada de decisão avançada.
  3. O último elemento do contexto é triggeredByTask. Ao contrário dos dois primeiros, que são definidos ao usar Regras e gatilhos de Entrada/Saída de Segmento, triggeredByTask só é aplicável quando o manipulador está sendo executado como resultado de uma tarefa, seja manual ou por temporizador. Ele contém apenas dois parâmetros:
  • Name: o nome exclusivo que você deu à tarefa quando a criou.
  • ID: o identificador exclusivo gerado automaticamente pelo PlayFab para a tarefa.
Para uma tarefa executada em um segmento de usuários, você também terá o playerProfile, mas não terá um playStreamEvent. E, para uma tarefa executada simplesmente no seu jogo, mas sem nenhum segmento, não haverá um playerProfile, pois a intenção é executar algo mais geral, como definir alguns dados de título para um evento. Portanto, name é o elemento que você vai querer usar no fluxo de código do seu manipulador para determinar a ação apropriada a ser executada.

PlayStream mais CloudScript

De muitas maneiras, os manipuladores do CloudScript disparados por ações do PlayStream têm ainda mais funcionalidade potencial do que aqueles disparados diretamente por meio de chamadas para ExecuteCloudScript, pois há um conjunto avançado de dados disponibilizado por meio do contexto. Isso oferece a capacidade de atualizar seus manipuladores após o lançamento com mais lógica que usa elementos do evento ou do perfil do jogador que você não havia previsto originalmente, sem precisar atualizar o código do cliente de forma alguma. Além disso, continuaremos fazendo acréscimos ao perfil do jogador em atualizações futuras do serviço PlayFab, o que fornecerá ainda mais opções para a lógica do lado do servidor.
Última modificação em 6 de outubro de 2026