Partager via


Scripts.CreateTriggerAsync Méthode

Définition

Crée un déclencheur en tant qu’opération asynchrone dans le service Azure Cosmos DB.

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

Paramètres

triggerProperties
TriggerProperties

Objet TriggerProperties.

requestOptions
RequestOptions

(Facultatif) Options de la demande de procédure stockée.

cancellationToken
CancellationToken

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

Retours

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

Exceptions

Si triggerProperties 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’un document :

StatusCodeRaison de l’exception
400BadRequest : cela signifie qu’un problème s’est produit avec la demande fournie. Il est probable qu’un ID n’a pas été fourni pour le nouveau déclencheur ou que le corps a été mal formé.
403Interdit : vous avez atteint votre quota de déclencheurs pour la collection fournie. Contactez le support technique pour augmenter ce quota.
409Conflit : cela signifie qu’un TriggerProperties avec un ID correspondant à l’ID que vous avez fourni existait déjà.
413RequestEntityTooLarge : cela signifie que le corps du que TriggerProperties vous avez tenté de créer était trop grand.

Exemples

Cela crée un déclencheur, puis utilise le déclencheur dans un élément de création.

Scripts scripts = this.container.Scripts;
TriggerResponse triggerResponse = await scripts.CreateTriggerAsync(
    new TriggerProperties
    {
        Id = "addTax",
        Body = @"function AddTax() {
            var item = getContext().getRequest().getBody();

            // calculate the tax.
            item.tax = item.cost * .15;

            // Update the request -- this is what is going to be inserted.
            getContext().getRequest().setBody(item);
        }",
        TriggerOperation = TriggerOperation.All,
        TriggerType = TriggerType.Pre
    });

ItemRequestOptions options = new ItemRequestOptions()
{
    PreTriggers = new List<string>() { triggerResponse.Id },
};

// Create a new item with trigger set in the request options
ItemResponse<dynamic> createdItem = await this.container.Items.CreateItemAsync<dynamic>(item.status, item, options);
double itemTax = createdItem.Resource.tax;

S’applique à