Azure Cosmos DBアクションを使用すると、ワークフローから直接、Azure Cosmos DB内のドキュメントやデータベースの読み取り、書き込み、管理を行うことができます。すべてのアクションは、Azure ADサービスプリンシパルを使用して認証を行い、Cosmos DBデータプレーンと通信します。
アイテムの取得
このアクションは、Azure Cosmos DB - Get Document REST APIを使用して、Azure Cosmos DBコンテナからIDで単一のドキュメントを読み取ります。
入力 | タイプ | 説明 |
|---|---|---|
| 弦 | 必須。 Azure ADアプリ(クライアント)ID。シークレットとして渡す必要があります。 方法を参照してください。 |
| 弦 | 必須。 Azure ADクライアントシークレット。シークレットとして渡す必要があります。 方法を参照してください。 |
| 弦 | 必須。 Azure ADテナント識別子。シークレットとして渡すことができます。 |
| 弦 | 必須。 Cosmos DBアカウント名。例:
。 |
| 弦 | 必須。 データベース識別子。例:
。 |
| 弦 | 必須。 コンテナ(コレクション)識別子。例:
。 |
| 弦 | 必須。 読み取るドキュメント
。たとえば、
。 |
| 弦 | 必須。 ドキュメントのパーティションキーの値。例:
。 |
| リスト | オプション。 レスポンスから特定の値を抽出するために使用されるセレクターのリスト。例:
。 |
出力 | タイプ | 説明 |
|---|---|---|
| ブール値 |
成功時は、エラーまたはドキュメントが見つからない場合は
。 |
| 弦 | メッセージとしての失敗理由。 |
| オブジェクト | ドキュメントボディ。詳細については、 Azure Cosmos DB - Get Document REST APIを参照してください。 |
| 弦 | 楽観的同時実行制御に使用される、返されたドキュメントのETag。 |
| 弦 | 操作によって消費された要求ユニット(RU)。 |
name: cosmosGetItemWorkflowdescription: ''steps: - name: get_item type: action action: azure.cosmos.getItem version: 1 inputs: clientId: ${{ :secrets:azure-client-id }} clientSecret: ${{ :secrets:azure-client-secret }} tenantId: ${{ :secrets:azure-client-tenant }} accountName: my-cosmos-account databaseId: TestDb collectionId: Items itemId: "121" partitionKey: beta selectors: - name: item expression: ".response" next: log_result - name: log_result type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'azure.cosmos.getItem result: ${{ .steps.get_item.outputs | tostring }}' next: endアイテムの作成
このアクションは、Azure Cosmos DB - Create Document REST APIを使用して、Azure Cosmos DBコンテナに新しいドキュメントを作成します。
入力 | タイプ | 説明 |
|---|---|---|
| 弦 | 必須。 Azure ADアプリ(クライアント)ID。シークレットとして渡す必要があります。 方法を参照してください。 |
| 弦 | 必須。 Azure ADクライアントシークレット。シークレットとして渡す必要があります。 方法を参照してください。 |
| 弦 | 必須。 Azure ADテナント識別子。シークレットとして渡すことができます。 |
| 弦 | 必須。 Cosmos DBアカウント名。例:
。 |
| 弦 | 必須。 データベース識別子。例:
。 |
| 弦 | 必須。 コンテナ(コレクション)識別子。例:
。 |
| 弦 | 必須。 新しいドキュメントのパーティションキーの値。ドキュメントのパーティションキープロパティの値と一致する必要があります。例:
。 |
| 地図 | 必須。 作成するドキュメント。
と同じ値に設定されたパーティションキープロパティ(たとえば、
)、および通常は
を含める必要があります。 |
| リスト | オプション。 レスポンスから特定の値を抽出するために使用されるセレクターのリスト。例:
。 |
出力 | タイプ | 説明 |
|---|---|---|
| ブール値 |
201 Created時、エラー時は
。 |
| 弦 | メッセージとしての失敗理由。 |
| オブジェクト | システムフィールドを含めて保存された、作成されたドキュメント。詳細については、 REST API を参照してください。 |
| 弦 | 作成されたドキュメントのETag。楽観的同時実行制御に使用されます。 |
| 弦 | 操作によって消費された要求ユニット(RU)。 |
name: cosmosCreateItemWorkflowdescription: ''steps: - name: create_item type: action action: azure.cosmos.createItem version: 1 inputs: clientId: ${{ :secrets:azure-client-id }} clientSecret: ${{ :secrets:azure-client-secret }} tenantId: ${{ :secrets:azure-client-tenant }} accountName: my-cosmos-account databaseId: TestDb collectionId: Items partitionKey: beta item: id: "423" pk: beta name: created-by-workflow category: demo value: 42 selectors: - name: newId expression: .response.id next: log_result - name: log_result type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'azure.cosmos.createItem succeeded=${{ .steps.create_item.outputs.success }} newId=${{ .steps.create_item.outputs.newId }}' next: endアイテムの更新
このアクションは、Azure Cosmos DB - Replace Document REST APIを使用して、Azure Cosmos DBコンテナ内のドキュメントを置換またはアップサートします。デフォルト(upsert: false)では、ドキュメントがすでに存在している必要があります。upsert: trueを設定すると、ドキュメントが存在しない場合は作成されます。
入力 | タイプ | 説明 |
|---|---|---|
| 弦 | 必須。 Azure ADアプリ(クライアント)ID。シークレットとして渡す必要があります。 方法を参照してください。 |
| 弦 | 必須。 Azure ADクライアントシークレット。シークレットとして渡す必要があります。 方法を参照してください。 |
| 弦 | 必須。 Azure ADテナント識別子。シークレットとして渡すことができます。 |
| 弦 | 必須。 Cosmos DBアカウント名。例:
。 |
| 弦 | 必須。 データベース識別子。例:
。 |
| 弦 | 必須。 コンテナ(コレクション)識別子。例:
。 |
| 弦 | 必須。 置換対象の文書
。例:
。 |
| 弦 | 必須。 ドキュメントのパーティションキーの値。例:
。 |
| 地図 | 必須。 完全な置換ドキュメント。既存のドキュメントと同じ
とパーティションキーの値を含める必要があります。 |
| ブール値 | オプション。
(デフォルト)の場合、ドキュメントを置換し、存在しない場合はエラーを返します。
の場合、ドキュメントが存在しない場合は作成されます。
または
を受け入れます。 |
| リスト | オプション。 レスポンスから特定の値を抽出するために使用されるセレクターのリスト。例:
。 |
出力 | タイプ | 説明 |
|---|---|---|
| ブール値 |
成功時は
、エラー時は 。 |
| 弦 | メッセージとしての失敗理由。 |
| オブジェクト | 書き込み後に保存されたドキュメント。詳細については、 Azure Cosmos DB - Replace Document REST APIを参照してください。 |
| 弦 | 楽観的同時実行制御に使用される、書き込み後に保存されたドキュメントのETag。 |
| 弦 | 操作によって消費された要求ユニット(RU)。 |
name: cosmosUpdateItemWorkflowdescription: ''steps: - name: update_item type: action action: azure.cosmos.updateItem version: 1 inputs: clientId: ${{ :secrets:azure-client-id }} clientSecret: ${{ :secrets:azure-client-secret }} tenantId: ${{ :secrets:azure-client-tenant }} accountName: my-cosmos-account databaseId: TestDb collectionId: Items itemId: "323" partitionKey: beta upsert: false item: id: "323" pk: beta name: updated-by-workflow category: demo value: 43 selectors: - name: updatedId expression: .response.id - name: eTag expression: .response._etag next: log_result - name: log_result type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'azure.cosmos.updateItem succeeded=${{ .steps.update_item.outputs.success }} updatedId=${{ .steps.update_item.outputs.updatedId }} eTag=${{ .steps.update_item.outputs.eTag }}' next: endアイテムの削除
このアクションは、Azure Cosmos DB - Delete Document REST APIを使用して、Azure Cosmos DBコンテナからドキュメントを削除します。
入力 | タイプ | 説明 |
|---|---|---|
| 弦 | 必須。 Azure ADアプリ(クライアント)ID。シークレットとして渡す必要があります。 方法を参照してください。 |
| 弦 | 必須。 Azure ADクライアントシークレット。シークレットとして渡す必要があります。 方法を参照してください。 |
| 弦 | 必須。 Azure ADテナント識別子。シークレットとして渡すことができます。 |
| 弦 | 必須。 Cosmos DBアカウント名。例:
。 |
| 弦 | 必須。 データベース識別子。例:
。 |
| 弦 | 必須。 コンテナ(コレクション)識別子。例:
。 |
| 弦 | 必須。 削除するドキュメント
。例:
。 |
| 弦 | 必須。 ドキュメントのパーティションキーの値。ドキュメントのパーティションキープロパティの値と一致する必要があります。例:
。 |
| リスト | オプション。 レスポンスから特定の値を抽出するために使用されるセレクターのリスト。例:
。 |
出力 | タイプ | 説明 |
|---|---|---|
| ブール値 |
204 No Content時、エラー時は
。 |
| 弦 | メッセージとしての失敗理由。 |
| オブジェクト | 削除レスポンス。通常、成功時は空です。ステータスを確認するには、
などのセレクタを使用します。詳細については、 Azure Cosmos DB - Delete Document REST APIを参照してください。 |
| 弦 | 操作によって消費された要求ユニット(RU)。 |
name: cosmosDeleteItemWorkflowdescription: ''steps: - name: delete_item type: action action: azure.cosmos.deleteItem version: 1 inputs: clientId: ${{ :secrets:azure-client-id }} clientSecret: ${{ :secrets:azure-client-secret }} tenantId: ${{ :secrets:azure-client-tenant }} accountName: my-cosmos-account databaseId: TestDb collectionId: Items itemId: "121" partitionKey: beta selectors: - name: statusCode expression: ".response.status_code" next: log_result - name: log_result type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'azure.cosmos.deleteItem result: ${{ .steps.delete_item.outputs | tostring }}' next: endデータベースの記述
このアクションは、Azure Cosmos DB - Get Database REST APIを使用して、Azure Cosmos DBデータベースのメタデータを取得します。
入力 | タイプ | 説明 |
|---|---|---|
| 弦 | 必須。 Azure ADアプリ(クライアント)ID。シークレットとして渡す必要があります。 方法を参照してください。 |
| 弦 | 必須。 Azure ADクライアントシークレット。シークレットとして渡す必要があります。 方法を参照してください。 |
| 弦 | 必須。 Azure ADテナント識別子。シークレットとして渡すことができます。 |
| 弦 | 必須。 Cosmos DBアカウント名。例:
。 |
| 弦 | 必須。 記述するデータベース。例:
。 |
| リスト | オプション。 レスポンスから特定の値を抽出するために使用されるセレクターのリスト。例:
。 |
出力 | タイプ | 説明 |
|---|---|---|
| ブール値 |
成功した場合は
、エラーまたはデータベースが見つからない場合は。 |
| 弦 | メッセージとしての失敗理由。 |
| オブジェクト |
、
、
、
、
、
などのフィールドを含むデータベースリソース。詳細については、 Azure Cosmos DB - Get Database REST APIを参照してください。 |
| 弦 | データベースリソースのETag。 |
name: cosmosDescribeDatabaseWorkflowdescription: ''steps: - name: describeDatabase type: action action: azure.cosmos.describeDatabase version: 1 inputs: clientId: ${{ :secrets:azure-client-id }} clientSecret: ${{ :secrets:azure-client-secret }} tenantId: ${{ :secrets:azure-client-tenant }} accountName: my-cosmos-account databaseId: TestDb selectors: - name: database expression: ".response" - name: id expression: ".response.id" - name: eTag expression: ".eTag" - name: logResult type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'azure.cosmos.describeDatabase database: ${{ .steps.describeDatabase.outputs.database | tostring }}' attributes: success: ${{ .steps.describeDatabase.outputs.success }} id: ${{ .steps.describeDatabase.outputs.id }} eTag: ${{ .steps.describeDatabase.outputs.eTag }} next: end