diff --git a/daprdocs/content/en/developing-applications/building-blocks/service-invocation/howto-invoke-services-grpc.md b/daprdocs/content/en/developing-applications/building-blocks/service-invocation/howto-invoke-services-grpc.md index 3c3ffb7ec..21e1aae3e 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/service-invocation/howto-invoke-services-grpc.md +++ b/daprdocs/content/en/developing-applications/building-blocks/service-invocation/howto-invoke-services-grpc.md @@ -170,7 +170,7 @@ var call = client.SayHello(new HelloRequest { Name = "Darth Nihilus" }, metadata {{% codetab %}} ```python -metadata = (('dapr-app-id', 'server')) +metadata = (('dapr-app-id', 'server'),) response = stub.SayHello(request={ name: 'Darth Revan' }, metadata=metadata) ``` {{% /codetab %}} diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md index 7dc236582..50b314a16 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md @@ -50,6 +50,7 @@ Table captions: |------|:----------------:|:-----------------:|--------| ------ |----------| | [Alibaba Cloud DingTalk]({{< ref alicloud-dingtalk.md >}}) | ✅ | ✅ | Alpha | v1 | 1.2 | | [Alibaba Cloud OSS]({{< ref alicloudoss.md >}}) | | ✅ | Alpha | v1 | 1.0 | +| [Alibaba Cloud Tablestore]({{< ref alicloudtablestore.md >}}) | | ✅ | Alpha | v1 | 1.4 | ### Amazon Web Services (AWS) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/alicloudtablestore.md b/daprdocs/content/en/reference/components-reference/supported-bindings/alicloudtablestore.md new file mode 100644 index 000000000..754e1195c --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/alicloudtablestore.md @@ -0,0 +1,143 @@ +--- +type: docs +title: "Alibaba Cloud Tablestore binding spec" +linkTitle: "Alibaba Cloud Tablestore" +description: "Detailed documentation on the Alibaba Tablestore binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/alicloudtablestore/" +--- + +## Component format + +To setup an Alibaba Cloud Tablestore binding create a component of type `bindings.alicloud.tablestore`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: mytablestore + namespace: default +spec: + type: bindings.alicloud.tablestore + version: v1 + metadata: + - name: endpoint + value: "[endpoint]" + - name: accessKeyID + value: "[key-id]" + - name: accessKey + value: "[access-key]" + - name: instanceName + value: "[instance]" + - name: tableName + value: "[table]" + - name: endpoint + value: "[endpoint]" +``` + +{{% alert title="Warning" color="warning" %}} +The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here]({{< ref component-secrets.md >}}). +{{% /alert %}} + +## Spec metadata fields + +| Field | Required | Binding support | Details | Example | +|---------------|----------|---------|---------|---------| +| `endpoint` | Y | Output | Alicloud Tablestore endpoint. | https://tablestore-cn-hangzhou.aliyuncs.com +| `accessKeyID` | Y | Output | Access key ID credential. | +| `accessKey` | Y | Output | Access key credential. | +| `instanceName` | Y | Output | Name of the instance. | +| `tableName` | Y | Output | Name of the table. | + +## Binding support + +This component supports **output binding** with the following operations: +- `create`: [Create object](#create-object) + + +### Create object + +To perform a create object operation, invoke the binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "create", + "data": "YOUR_CONTENT", + "metadata": { + "primaryKeys": "pk1" + } +} +``` + +{{% alert title="Note" color="primary" %}} +Note the `metadata.primaryKeys` field is mandatory. +{{% /alert %}} + +### Delete object + +To perform a delete object operation, invoke the binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "delete", + "metadata": { + "primaryKeys": "pk1", + "columnToGet": "name,age,date" + }, + "data": { + "pk1": "data1" + } +} +``` + +{{% alert title="Note" color="primary" %}} +Note the `metadata.primaryKeys` field is mandatory. +{{% /alert %}} + +### List objects + +To perform a list objects operation, invoke the binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "delete", + "metadata": { + "primaryKeys": "pk1", + "columnToGet": "name,age,date" + }, + "data": { + "pk1": "data1", + "pk2": "data2" + } +} +``` + +{{% alert title="Note" color="primary" %}} +Note the `metadata.primaryKeys` field is mandatory. +{{% /alert %}} + +### Get object + +To perform a get object operation, invoke the binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "delete", + "metadata": { + "primaryKeys": "pk1" + }, + "data": { + "pk1": "data1" + } +} +``` + +{{% alert title="Note" color="primary" %}} +Note the `metadata.primaryKeys` field is mandatory. +{{% /alert %}} + +## Related links + +- [Bindings building block]({{< ref bindings >}}) +- [How-To: Use bindings to interface with external resources]({{< ref howto-bindings.md >}}) +- [Bindings API reference]({{< ref bindings_api.md >}}) diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-dynamodb.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-dynamodb.md index 96fdcb07e..3379004dc 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-dynamodb.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-dynamodb.md @@ -39,6 +39,10 @@ spec: The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here]({{< ref component-secrets.md >}}). {{% /alert %}} +## Primary Key + +In order to use DynamoDB as a Dapr state store, the table must have a primary key named `key`. + ## Spec metadata fields | Field | Required | Details | Example |