次の方法で共有


CosmosScripts.CreateTriggerAsync メソッド

定義

Azure Cosmos DB サービスで非同期操作としてトリガーを作成します。

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

パラメーター

triggerProperties
TriggerProperties

TriggerProperties オブジェクト。

requestOptions
RequestOptions

(省略可能)ストアド プロシージャ要求のオプション RequestOptions

cancellationToken
CancellationToken

(省略可能) CancellationToken 要求の取り消しを表します。

戻り値

非同期操作のサービス応答を表すタスク オブジェクト。

例外

が設定されていない場合 triggerProperties

非同期処理中に発生したエラーの統合を表します。 InnerExceptions 内を見て、実際の例外を見つけます

この例外により、さまざまな種類のエラーがカプセル化される可能性があります。 特定のエラーを特定するには、常に StatusCode プロパティを参照してください。 ドキュメントの作成時に取得できる一般的なコードは次のとおりです。

StatusCode例外の理由
400BadRequest - これは、指定された要求に問題が発生したことを意味します。 新しいトリガーに ID が指定されていないか、本文の形式が正しくない可能性があります。
403禁止 - 指定されたコレクションのトリガーのクォータに達しました。 このクォータを増やすには、サポートにお問い合わせください。
409競合 - 指定した ID と一致する ID が既に存在する を意味 TriggerProperties します。
413RequestEntityTooLarge - 作成しようとした本文が TriggerProperties 大きすぎます。

これにより、トリガーが作成され、作成項目でトリガーが使用されます。

CosmosScripts scripts = this.container.Scripts;
Response<TriggerProperties> 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;

適用対象