Partager via


Scripts.CreateUserDefinedFunctionAsync Méthode

Définition

Crée une fonction définie par l’utilisateur en tant qu’opération asynchrone dans le service Azure Cosmos DB.

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

Paramètres

userDefinedFunctionProperties
UserDefinedFunctionProperties

Objet UserDefinedFunctionProperties.

requestOptions
RequestOptions

(Facultatif) Options pour la demande de fonction définie par l’utilisateur.

cancellationToken
CancellationToken

(Facultatif) CancellationToken représentant l’annulation de la demande.

Retours

Objet de tâche représentant la réponse de service pour l’opération asynchrone.

Exceptions

Si userDefinedFunctionProperties n’est pas défini.

Représente une consolidation des échecs qui se sont produits pendant le traitement asynchrone. Recherchez la ou les exceptions réelles dans InnerExceptions

Cette exception peut encapsuler de nombreux types d’erreurs différents. Pour déterminer l’erreur spécifique, examinez toujours la propriété StatusCode. Voici quelques codes courants que vous pouvez obtenir lors de la création d’une fonction définie par l’utilisateur :

StatusCodeRaison de l’exception
400BadRequest : cela signifie qu’il y a eu un problème avec la demande fournie. Il est probable qu’un ID n’a pas été fourni pour la nouvelle fonction définie par l’utilisateur ou que le corps a été mal formé.
403Interdit : vous avez atteint votre quota de fonctions définies par l’utilisateur pour la collection fournie. Contactez le support technique pour augmenter ce quota.
409Conflit : cela signifie qu’un UserDefinedFunctionProperties avec un ID correspondant à l’ID que vous avez fourni existait déjà.
413RequestEntityTooLarge : cela signifie que le corps du UserDefinedFunctionProperties que vous avez essayé de créer était trop grand.

Exemples

Cela crée une fonction définie par l’utilisateur, puis utilise la fonction dans une requête d’élément.

Scripts 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");

using (FeedIterator<double> setIterator = this.container.Items.GetItemsQueryIterator<double>(
    sqlQueryDefinition: sqlQuery,
    partitionKey: "Done")
{
    while (setIterator.HasMoreResults)
    {
        foreach (var tax in await setIterator.ReadNextAsync())
        {
            Console.WriteLine(tax);
        }
    }
}

S’applique à