O recurso Waiter aguarda até que alguma condição final em um recurso RuntimeConfig seja atingida antes de ser retornado. Por exemplo, suponha que você tenha um sistema distribuído em que cada nó grava em um recurso variável indicando a prontidão do nó como parte do processo de inicialização.
Em seguida, você configura um recurso Waiter com a condição de sucesso definida para aguardar até que determinado número de nodes tenha feito check-in. Na sequência, o aplicativo executa um código arbitrário depois que a condição é atingida e o waiter é retornado com sucesso.
[PROJECT_ID] precisa ser um código de projeto do Google Cloud válido, [CONFIG_NAME] precisa ser um recurso RuntimeConfig válido, [WAITER_NAME] precisa corresponder à especificação de segmento RFC 1035 e o comprimento de [WAITER_NAME] precisa ser inferior a 64 bytes.
Após criar um recurso Waiter, você não poderá alterar o nome dele.
[Obrigatório] Especifica o tempo limite do waiter em segundos, a partir do momento em que o método waiters().create é chamado. Se esse tempo passar antes que as condições de sucesso ou falha sejam atendidas, o encarregado falhará e definirá o código error como DEADLINE_EXCEEDED.
Uma duração em segundos com até nove dígitos fracionários, encerrada por "s". Exemplo: "3.5s".
[Opcional] A condição de falha deste waiter. Se essa condição for atendida, done será definido como true e o código error será definido como ABORTED. A condição de falha tem prioridade sobre a de sucesso. Se ambas as condições forem atingidas, será indicada uma falha. Esse valor é opcional. Se nenhuma condição de falha for definida, o único cenário de falha será de tempo limite.
[Obrigatório] A condição de sucesso. Se essa condição for atendida, done será definido como true e o valor de error não será definido. A condição de falha tem prioridade sobre a de sucesso. Se ambas as condições forem atingidas, será indicada uma falha.
Apenas saída. O instante em que esse recurso de espera foi criado. Adicionar o valor de timeout a esse instante gera o prazo de tempo limite para o atendente.
Um carimbo de data/hora no formato UTC “Zulu” RFC3339, medido com precisão de nanossegundos. Exemplo: "2014-10-02T15:01:23.045123456Z".
done
boolean
Apenas saída. Se o valor for false, significa que o garçom ainda está esperando que uma das condições seja atendida.
Se verdadeiro, o waiter foi concluído. Se o encarregado terminar devido a um tempo limite ou falha, error será definido.
A condição de cardinalidade do recurso Waiter. Ela é atingida quando o número de variáveis em um prefixo de caminho especificado alcança a quantidade predefinida. Por exemplo, se você definir uma condição de cardinalidade em que path for definido como /foo e o número de caminhos for definido como 2, as variáveis a seguir atenderão à condição em um recurso RuntimeConfig:
/foo/variable1 = "value1"
/foo/variable2 = "value2"
/bar/variable3 = "value3"
No entanto, ela não atenderia à mesma condição com o number definido como 3, porque há apenas dois caminhos que começam com /foo. As condições de cardinalidade são recursivas, todas as subárvores no prefixo do caminho específico são contadas.
Representação JSON
{"path": string,"number": number}
Campos
path
string
A raiz da subárvore de variáveis que será monitorada. Por exemplo, /foo
number
number
As variáveis numéricas em path que precisam existir para atender a essa condição. Se não for especificado, o padrão 1 será usado.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-03-04 UTC."],[[["\u003cp\u003eA Waiter resource monitors a RuntimeConfig resource, waiting for a specified success condition to be met before returning.\u003c/p\u003e\n"],["\u003cp\u003eWaiters have a timeout period and can also be configured with a failure condition, which takes precedence over the success condition, causing the waiter to fail if both are met.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eEndCondition\u003c/code\u003e for a Waiter is defined by a \u003ccode\u003eCardinality\u003c/code\u003e, which checks if a certain number of variables exist under a specific path prefix in the RuntimeConfig.\u003c/p\u003e\n"],["\u003cp\u003eCardinality conditions are recursive and count all subtrees under a specified path, and the \u003ccode\u003enumber\u003c/code\u003e field defaults to 1 if not set.\u003c/p\u003e\n"],["\u003cp\u003eYou can create, delete, get, list, and check permissions on a waiter with the various methods provided.\u003c/p\u003e\n"]]],[],null,["# REST Resource: projects.configs.waiters\n\n- [Resource: Waiter](#Waiter)\n - [JSON representation](#Waiter.SCHEMA_REPRESENTATION)\n- [EndCondition](#EndCondition)\n - [JSON representation](#EndCondition.SCHEMA_REPRESENTATION)\n- [Cardinality](#Cardinality)\n - [JSON representation](#Cardinality.SCHEMA_REPRESENTATION)\n- [Methods](#METHODS_SUMMARY)\n\nResource: Waiter\n----------------\n\nA Waiter resource waits for some end condition within a RuntimeConfig resource to be met before it returns. For example, assume you have a distributed system where each node writes to a Variable resource indicating the node's readiness as part of the startup process.\n\nYou then configure a Waiter resource with the success condition set to wait until some number of nodes have checked in. Afterwards, your application runs some arbitrary code after the condition has been met and the waiter returns successfully.\n\nOnce created, a Waiter resource is immutable.\n\nTo learn more about using waiters, read the [Creating a Waiter](/deployment-manager/runtime-configurator/creating-a-waiter) documentation.\n\nEndCondition\n------------\n\nThe condition that a Waiter resource is waiting for.\n\nCardinality\n-----------\n\nA Cardinality condition for the Waiter resource. A cardinality condition is met when the number of variables under a specified path prefix reaches a predefined number. For example, if you set a Cardinality condition where the `path` is set to `/foo` and the number of paths is set to `2`, the following variables would meet the condition in a RuntimeConfig resource:\n\n- `/foo/variable1 = \"value1\"`\n- `/foo/variable2 = \"value2\"`\n- `/bar/variable3 = \"value3\"`\n\nIt would not satisfy the same condition with the `number` set to `3`, however, because there is only 2 paths that start with `/foo`. Cardinality conditions are recursive; all subtrees under the specific path prefix are counted."]]