Partilhar via


CosmosScripts.CreateUserDefinedFunctionAsync Método

Definição

Cria uma função definida pelo usuário como uma operação assíncrona no serviço do Azure Cosmos DB.

public abstract System.Threading.Tasks.Task<Azure.Response<Azure.Cosmos.Scripts.UserDefinedFunctionProperties>> CreateUserDefinedFunctionAsync (Azure.Cosmos.Scripts.UserDefinedFunctionProperties userDefinedFunctionProperties, Azure.Cosmos.RequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member CreateUserDefinedFunctionAsync : Azure.Cosmos.Scripts.UserDefinedFunctionProperties * Azure.Cosmos.RequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Azure.Response<Azure.Cosmos.Scripts.UserDefinedFunctionProperties>>
Public MustOverride Function CreateUserDefinedFunctionAsync (userDefinedFunctionProperties As UserDefinedFunctionProperties, Optional requestOptions As RequestOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of Response(Of UserDefinedFunctionProperties))

Parâmetros

userDefinedFunctionProperties
UserDefinedFunctionProperties

O objeto UserDefinedFunctionProperties.

requestOptions
RequestOptions

(Opcional) As opções para a solicitação de função definida pelo usuário RequestOptions

cancellationToken
CancellationToken

(Opcional) CancellationToken que representa o cancelamento da solicitação.

Retornos

Um objeto de tarefa que representa a resposta de serviço para a operação assíncrona.

Exceções

Se userDefinedFunctionProperties não estiver definido.

Representa uma consolidação de falhas que ocorreram durante o processamento assíncrono. Procure dentro de InnerExceptions para encontrar as exceções reais

Essa exceção pode encapsular muitos tipos diferentes de erros. Para determinar o erro específico, sempre examine a propriedade StatusCode. Alguns códigos comuns que você pode obter ao criar uma função definida pelo usuário são:

StatusCodeMotivo da exceção
400BadRequest - Isso significa que algo estava errado com a solicitação fornecida. É provável que uma ID não tenha sido fornecida para a nova função definida pelo usuário ou que o Corpo tenha sido malformado.
403Proibido – você atingiu sua cota de funções definidas pelo usuário para a coleção fornecida. Entre em contato com o suporte para aumentar essa cota.
409Conflito – isso significa que um UserDefinedFunctionProperties com uma ID correspondente à ID que você forneceu já existia.
413RequestEntityTooLarge - Isso significa que o corpo do que UserDefinedFunctionProperties você tentou criar era muito grande.

Exemplos

Isso cria uma função definida pelo usuário e usa a função em uma consulta de item.

CosmosScripts scripts = this.container.Scripts;
await scripts.UserDefinedFunctions.CreateUserDefinedFunctionAsync(
    new UserDefinedFunctionProperties 
    { 
        Id = "calculateTax", 
        Body = @"function(amt) { return amt * 0.05; }" 
    });

QueryDefinition sqlQuery = new QueryDefinition(
    "SELECT VALUE udf.calculateTax(t.cost) FROM toDoActivity t where t.cost > @expensive and t.status = @status")
    .WithParameter("@expensive", 9000)
    .WithParameter("@status", "Done");

await foreach (double tax in this.container.Items.GetItemsQueryIterator<double>(
    sqlQueryDefinition: sqlQuery,
    partitionKey: "Done"))
{
    Console.WriteLine(tax);
}

Aplica-se a