mirror of https://github.com/dapr/docs.git
Merge pull request #3363 from hhunter-ms/upmerge_may-01
Upmerge - May 1
This commit is contained in:
commit
cfc0749aa1
|
@ -71,7 +71,7 @@ To provide scalability and reliability, actors instances are throughout the clu
|
|||
|
||||
You can invoke actor methods by calling them over HTTP, as shown in the general example below.
|
||||
|
||||
<img src="/images/actors_background_placement_service_registration.png" width=600>
|
||||
<img src="/images/actors-calling-method.png" width=900>
|
||||
|
||||
1. The service calls the actor API on the sidecar.
|
||||
1. With the cached partitioning information from the placement service, the sidecar determines which actor service instance will host actor ID **3**. The call is forwarded to the appropriate sidecar.
|
||||
|
|
|
@ -270,7 +270,11 @@ const daprHost = "127.0.0.1";
|
|||
async function sendOrder(orderId) {
|
||||
const BINDING_NAME = "checkout";
|
||||
const BINDING_OPERATION = "create";
|
||||
const client = new DaprClient(daprHost, process.env.DAPR_HTTP_PORT, CommunicationProtocolEnum.HTTP);
|
||||
const client = new DaprClient({
|
||||
daprHost,
|
||||
daprPort: process.env.DAPR_HTTP_PORT,
|
||||
communicationProtocol: CommunicationProtocolEnum.HTTP,
|
||||
});
|
||||
//Using Dapr SDK to invoke output binding
|
||||
const result = await client.binding.send(BINDING_NAME, BINDING_OPERATION, orderId);
|
||||
console.log("Sending message: " + orderId);
|
||||
|
|
|
@ -237,7 +237,15 @@ start().catch((e) => {
|
|||
});
|
||||
|
||||
async function start() {
|
||||
const server = new DaprServer(serverHost, serverPort, daprHost, daprPort, CommunicationProtocolEnum.HTTP);
|
||||
const server = new DaprServer({
|
||||
serverHost,
|
||||
serverPort,
|
||||
communicationProtocol: CommunicationProtocolEnum.HTTP,
|
||||
clientOptions: {
|
||||
daprHost,
|
||||
daprPort,
|
||||
}
|
||||
});
|
||||
await server.binding.receive('checkout', async (orderId) => console.log(`Received Message: ${JSON.stringify(orderId)}`));
|
||||
await server.startServer();
|
||||
}
|
||||
|
|
|
@ -355,13 +355,15 @@ start().catch((e) => {
|
|||
});
|
||||
|
||||
async function start(orderId) {
|
||||
const server = new DaprServer(
|
||||
serverHost,
|
||||
serverPort,
|
||||
daprHost,
|
||||
process.env.DAPR_HTTP_PORT,
|
||||
CommunicationProtocolEnum.HTTP
|
||||
);
|
||||
const server = new DaprServer({
|
||||
serverHost,
|
||||
serverPort,
|
||||
communicationProtocol: CommunicationProtocolEnum.HTTP,
|
||||
clientOptions: {
|
||||
daprHost,
|
||||
daprPort: process.env.DAPR_HTTP_PORT,
|
||||
},
|
||||
});
|
||||
//Subscribe to a topic
|
||||
await server.pubsub.subscribe("order-pub-sub", "orders", async (orderId) => {
|
||||
console.log(`Subscriber received: ${JSON.stringify(orderId)}`)
|
||||
|
@ -625,7 +627,11 @@ var main = function() {
|
|||
async function start(orderId) {
|
||||
const PUBSUB_NAME = "order-pub-sub"
|
||||
const TOPIC_NAME = "orders"
|
||||
const client = new DaprClient(daprHost, process.env.DAPR_HTTP_PORT, CommunicationProtocolEnum.HTTP);
|
||||
const client = new DaprClient({
|
||||
daprHost,
|
||||
daprPort: process.env.DAPR_HTTP_PORT,
|
||||
communicationProtocol: CommunicationProtocolEnum.HTTP
|
||||
});
|
||||
console.log("Published data:" + orderId)
|
||||
//Using Dapr SDK to publish a topic
|
||||
await client.pubsub.publish(PUBSUB_NAME, TOPIC_NAME, orderId);
|
||||
|
|
|
@ -313,10 +313,17 @@ A JSON-encoded payload body with the processing status against each entry needs
|
|||
|
||||
```json
|
||||
{
|
||||
"statuses": {
|
||||
"entryId": "<entryId>",
|
||||
"statuses":
|
||||
[
|
||||
{
|
||||
"entryId": "<entryId1>",
|
||||
"status": "<status>"
|
||||
}
|
||||
},
|
||||
{
|
||||
"entryId": "<entryId2>",
|
||||
"status": "<status>"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -334,7 +341,7 @@ Please refer [Expected HTTP Response for Bulk Subscribe]({{< ref pubsub_api.md >
|
|||
|
||||
Please refer following code samples for how to use Bulk Subscribe:
|
||||
|
||||
{{< tabs "Java" "JavaScript" ".NET" "HTTP API (Bash)" "HTTP API (PowerShell)" >}}
|
||||
{{< tabs "Java" "JavaScript" ".NET" >}}
|
||||
|
||||
{{% codetab %}}
|
||||
|
||||
|
@ -387,13 +394,20 @@ import { DaprServer } from "@dapr/dapr";
|
|||
const pubSubName = "orderPubSub";
|
||||
const topic = "topicbulk";
|
||||
|
||||
const DAPR_HOST = process.env.DAPR_HOST || "127.0.0.1";
|
||||
const DAPR_HTTP_PORT = process.env.DAPR_HTTP_PORT || "3502";
|
||||
const SERVER_HOST = process.env.SERVER_HOST || "127.0.0.1";
|
||||
const SERVER_PORT = process.env.APP_PORT || 5001;
|
||||
const daprHost = process.env.DAPR_HOST || "127.0.0.1";
|
||||
const daprPort = process.env.DAPR_HTTP_PORT || "3502";
|
||||
const serverHost = process.env.SERVER_HOST || "127.0.0.1";
|
||||
const serverPort = process.env.APP_PORT || 5001;
|
||||
|
||||
async function start() {
|
||||
const server = new DaprServer(SERVER_HOST, SERVER_PORT, DAPR_HOST, DAPR_HTTP_PORT);
|
||||
const server = new DaprServer({
|
||||
serverHost,
|
||||
serverPort,
|
||||
clientOptions: {
|
||||
daprHost,
|
||||
daprPort,
|
||||
},
|
||||
});
|
||||
|
||||
// Publish multiple messages to a topic with default config.
|
||||
await client.pubsub.bulkSubscribeWithDefaultConfig(pubSubName, topic, (data) => console.log("Subscriber received: " + JSON.stringify(data)));
|
||||
|
|
|
@ -218,7 +218,11 @@ import { DaprClient, HttpMethod, CommunicationProtocolEnum } from '@dapr/dapr';
|
|||
const daprHost = "127.0.0.1";
|
||||
|
||||
async function main() {
|
||||
const client = new DaprClient(daprHost, process.env.DAPR_HTTP_PORT, CommunicationProtocolEnum.HTTP);
|
||||
const client = new DaprClient({
|
||||
daprHost,
|
||||
daprPort: process.env.DAPR_HTTP_PORT,
|
||||
communicationProtocol: CommunicationProtocolEnum.HTTP,
|
||||
});
|
||||
const SECRET_STORE_NAME = "localsecretstore";
|
||||
//Using Dapr SDK to get a secret
|
||||
var secret = await client.secret.get(SECRET_STORE_NAME, "secret");
|
||||
|
|
|
@ -347,7 +347,12 @@ var main = function() {
|
|||
}
|
||||
|
||||
async function start(orderId) {
|
||||
const client = new DaprClient(daprHost, process.env.DAPR_HTTP_PORT, CommunicationProtocolEnum.HTTP);
|
||||
const client = new DaprClient({
|
||||
daprHost: daprHost,
|
||||
daprPort: process.env.DAPR_HTTP_PORT,
|
||||
communicationProtocol: CommunicationProtocolEnum.HTTP
|
||||
});
|
||||
|
||||
//Using Dapr SDK to invoke a method
|
||||
const result = await client.invoker.invoke('checkoutservice' , "checkout/" + orderId , HttpMethod.GET);
|
||||
console.log("Order requested: " + orderId);
|
||||
|
|
|
@ -266,7 +266,11 @@ var main = function() {
|
|||
}
|
||||
|
||||
async function start(orderId) {
|
||||
const client = new DaprClient(daprHost, process.env.DAPR_HTTP_PORT, CommunicationProtocolEnum.HTTP);
|
||||
const client = new DaprClient({
|
||||
daprHost,
|
||||
daprPort: process.env.DAPR_HTTP_PORT,
|
||||
communicationProtocol: CommunicationProtocolEnum.HTTP,
|
||||
});
|
||||
const STATE_STORE_NAME = "statestore";
|
||||
//Using Dapr SDK to save and get state
|
||||
await client.state.save(STATE_STORE_NAME, [
|
||||
|
@ -483,7 +487,12 @@ const daprHost = "127.0.0.1";
|
|||
var main = function() {
|
||||
const STATE_STORE_NAME = "statestore";
|
||||
//Using Dapr SDK to save and get state
|
||||
const client = new DaprClient(daprHost, process.env.DAPR_HTTP_PORT, CommunicationProtocolEnum.HTTP);
|
||||
const client = new DaprClient({
|
||||
daprHost,
|
||||
daprPort: process.env.DAPR_HTTP_PORT,
|
||||
communicationProtocol: CommunicationProtocolEnum.HTTP,
|
||||
});
|
||||
|
||||
await client.state.delete(STATE_STORE_NAME, "order_1");
|
||||
}
|
||||
|
||||
|
@ -630,7 +639,12 @@ var main = function() {
|
|||
const STATE_STORE_NAME = "statestore";
|
||||
var orderId = 100;
|
||||
//Using Dapr SDK to save and retrieve multiple states
|
||||
const client = new DaprClient(daprHost, process.env.DAPR_HTTP_PORT, CommunicationProtocolEnum.HTTP);
|
||||
const client = new DaprClient({
|
||||
daprHost,
|
||||
daprPort: process.env.DAPR_HTTP_PORT,
|
||||
communicationProtocol: CommunicationProtocolEnum.HTTP,
|
||||
});
|
||||
|
||||
await client.state.save(STATE_STORE_NAME, [
|
||||
{
|
||||
key: "order_1",
|
||||
|
@ -870,7 +884,12 @@ var main = function() {
|
|||
}
|
||||
|
||||
async function start(orderId) {
|
||||
const client = new DaprClient(daprHost, process.env.DAPR_HTTP_PORT, CommunicationProtocolEnum.HTTP);
|
||||
const client = new DaprClient({
|
||||
daprHost,
|
||||
daprPort: process.env.DAPR_HTTP_PORT,
|
||||
communicationProtocol: CommunicationProtocolEnum.HTTP,
|
||||
});
|
||||
|
||||
const STATE_STORE_NAME = "statestore";
|
||||
//Using Dapr SDK to save and retrieve multiple states
|
||||
await client.state.transaction(STATE_STORE_NAME, [
|
||||
|
|
|
@ -44,7 +44,7 @@ When running Dapr (or the Dapr runtime directly) in stand-alone mode, you have t
|
|||
FOO=bar daprd --app-id myapp
|
||||
```
|
||||
|
||||
If you have [configured named AWS profiles](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) locally , you can tell Dapr (or the Dapr runtime) which profile to use by specifying the "AWS_PROFILE" environment variable:
|
||||
If you have [configured named AWS profiles](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) locally , you can tell Dapr (or the Dapr runtime) which profile to use by specifying the "AWS_PROFILE" environment variable:
|
||||
|
||||
```bash
|
||||
AWS_PROFILE=myprofile dapr run...
|
||||
|
|
|
@ -273,7 +273,7 @@ dapr run --app-id checkout --app-protocol http --dapr-http-port 3500 --resources
|
|||
In the `checkout` publisher service, we're publishing the orderId message to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. As soon as the service starts, it publishes in a loop:
|
||||
|
||||
```js
|
||||
const client = new DaprClient(DAPR_HOST, DAPR_HTTP_PORT);
|
||||
const client = new DaprClient();
|
||||
|
||||
await client.pubsub.publish(PUBSUB_NAME, PUBSUB_TOPIC, order);
|
||||
console.log("Published data: " + JSON.stringify(order));
|
||||
|
|
|
@ -177,29 +177,19 @@ dapr run --app-id order-processor --resources-path ../../../resources/ -- npm ru
|
|||
The `order-processor` service writes, reads, and deletes an `orderId` key/value pair to the `statestore` instance [defined in the `statestore.yaml` component]({{< ref "#statestoreyaml-component-file" >}}). As soon as the service starts, it performs a loop.
|
||||
|
||||
```js
|
||||
const client = new DaprClient(DAPR_HOST, DAPR_HTTP_PORT);
|
||||
const client = new DaprClient()
|
||||
|
||||
// Save state into the state store
|
||||
client.state.save(STATE_STORE_NAME, [
|
||||
{
|
||||
key: orderId.toString(),
|
||||
value: order
|
||||
}
|
||||
]);
|
||||
console.log("Saving Order: ", order);
|
||||
// Save state into a state store
|
||||
await client.state.save(DAPR_STATE_STORE_NAME, state)
|
||||
console.log("Saving Order: ", order)
|
||||
|
||||
// Get state from the state store
|
||||
var result = client.state.get(STATE_STORE_NAME, orderId.toString());
|
||||
result.then(function(val) {
|
||||
console.log("Getting Order: ", val);
|
||||
});
|
||||
|
||||
// Delete state from the state store
|
||||
client.state.delete(STATE_STORE_NAME, orderId.toString());
|
||||
result.then(function(val) {
|
||||
console.log("Deleting Order: ", val);
|
||||
});
|
||||
// Get state from a state store
|
||||
const savedOrder = await client.state.get(DAPR_STATE_STORE_NAME, order.orderId)
|
||||
console.log("Getting Order: ", savedOrd)
|
||||
|
||||
// Delete state from the state store
|
||||
await client.state.delete(DAPR_STATE_STORE_NAME, order.orderId)
|
||||
console.log("Deleting Order: ", order)
|
||||
```
|
||||
### Step 3: View the order-processor outputs
|
||||
|
||||
|
|
|
@ -34,7 +34,8 @@ The table below shows the versions of Dapr releases that have been tested togeth
|
|||
|
||||
| Release date | Runtime | CLI | SDKs | Dashboard | Status |
|
||||
|--------------------|:--------:|:--------|---------|---------|---------|
|
||||
| March 16 2023 | 1.10.4</br> | 1.10.0 | Java 1.8.0 </br>Go 1.6.0 </br>PHP 1.1.0 </br>Python 1.9.0 </br>.NET 1.10.0 </br>JS 2.5.0 | 0.11.0 | Supported (current) |
|
||||
| April 13 2023 | 1.10.5</br> | 1.10.0 | Java 1.8.0 </br>Go 1.6.0 </br>PHP 1.1.0 </br>Python 1.9.0 </br>.NET 1.10.0 </br>JS 2.5.0 | 0.11.0 | Supported (current) |
|
||||
| March 16 2023 | 1.10.4</br> | 1.10.0 | Java 1.8.0 </br>Go 1.6.0 </br>PHP 1.1.0 </br>Python 1.9.0 </br>.NET 1.10.0 </br>JS 2.5.0 | 0.11.0 | Supported |
|
||||
| March 14 2023 | 1.10.3</br> | 1.10.0 | Java 1.8.0 </br>Go 1.6.0 </br>PHP 1.1.0 </br>Python 1.9.0 </br>.NET 1.10.0 </br>JS 2.5.0 | 0.11.0 | Supported |
|
||||
| February 24 2023 | 1.10.2</br> | 1.10.0 | Java 1.8.0 </br>Go 1.6.0 </br>PHP 1.1.0 </br>Python 1.9.0 </br>.NET 1.10.0 </br>JS 2.5.0 | 0.11.0 | Supported |
|
||||
| February 20 2023 | 1.10.1</br> | 1.10.0 | Java 1.8.0 </br>Go 1.6.0 </br>PHP 1.1.0 </br>Python 1.9.0 </br>.NET 1.10.0 </br>JS 2.5.0 | 0.11.0 | Supported |
|
||||
|
@ -91,17 +92,17 @@ General guidance on upgrading can be found for [self hosted mode]({{< ref self-h
|
|||
| | 1.6.2 | 1.7.5 |
|
||||
| | 1.7.5 | 1.8.6 |
|
||||
| | 1.8.6 | 1.9.6 |
|
||||
| | 1.9.6 | 1.10.4 |
|
||||
| | 1.9.6 | 1.10.5 |
|
||||
| 1.6.0 to 1.6.2 | N/A | 1.7.5 |
|
||||
| | 1.7.5 | 1.8.6 |
|
||||
| | 1.8.6 | 1.9.6 |
|
||||
| | 1.9.6 | 1.10.4 |
|
||||
| | 1.9.6 | 1.10.5 |
|
||||
| 1.7.0 to 1.7.5 | N/A | 1.8.6 |
|
||||
| | 1.8.6 | 1.9.6 |
|
||||
| | 1.9.6 | 1.10.4 |
|
||||
| | 1.9.6 | 1.10.5 |
|
||||
| 1.8.0 to 1.8.6 | N/A | 1.9.6 |
|
||||
| 1.9.0 | N/A | 1.9.6 |
|
||||
| 1.10.0 | N/A | 1.10.4 |
|
||||
| 1.10.0 | N/A | 1.10.5 |
|
||||
|
||||
## Breaking changes and deprecations
|
||||
|
||||
|
|
|
@ -262,10 +262,17 @@ A JSON-encoded payload body with the processing status against each entry needs
|
|||
|
||||
```json
|
||||
{
|
||||
"statuses": {
|
||||
"entryId": "<entryId>",
|
||||
"statuses":
|
||||
[
|
||||
{
|
||||
"entryId": "<entryId1>",
|
||||
"status": "<status>"
|
||||
}
|
||||
},
|
||||
{
|
||||
"entryId": "<entryId2>",
|
||||
"status": "<status>"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ app.post('/scheduled', async function(req, res){
|
|||
});
|
||||
```
|
||||
|
||||
When running this code, note that the `/scheduled` endpoint is called every five minutes by the Dapr sidecar.
|
||||
When running this code, note that the `/scheduled` endpoint is called every fifteen minutes by the Dapr sidecar.
|
||||
|
||||
|
||||
## Binding support
|
||||
|
|
|
@ -1 +1 @@
|
|||
{{- if .Get "short" }}1.10{{ else if .Get "long" }}1.10.4{{ else if .Get "cli" }}1.10.0{{ else }}1.10.4{{ end -}}
|
||||
{{- if .Get "short" }}1.10{{ else if .Get "long" }}1.10.5{{ else if .Get "cli" }}1.10.0{{ else }}1.10.5{{ end -}}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 64 KiB |
Loading…
Reference in New Issue