From 36d722e310d62b23b6cf61982375a54f63e92d60 Mon Sep 17 00:00:00 2001 From: Donovan Brown Date: Fri, 17 Sep 2021 11:17:09 -0500 Subject: [PATCH] hello-service-fabric (#68) * Adding hello-service-fabric sample * Updating .gitIgnore for Service Fabric demo. * Fixed http file and readme * Polished the readme * Made changes from code review. Co-authored-by: Donovan Brown --- .gitignore | 5 +- hello-service-fabric/README.md | 138 ++++++ .../daprsfpkg/ApplicationManifest.xml | 13 + .../MyService/CodeDapr/components/.gitkeep | 0 .../daprsfpkg/MyService/CodeUserApp/app.js | 48 +++ .../MyService/CodeUserApp/package-lock.json | 393 ++++++++++++++++++ .../MyService/CodeUserApp/package.json | 16 + .../daprsfpkg/MyService/ServiceManifest.xml | 32 ++ .../img/Architecture_Diagram.png | Bin 0 -> 90401 bytes hello-service-fabric/requests.http | 8 + 10 files changed, 652 insertions(+), 1 deletion(-) create mode 100644 hello-service-fabric/README.md create mode 100644 hello-service-fabric/daprsfpkg/ApplicationManifest.xml create mode 100644 hello-service-fabric/daprsfpkg/MyService/CodeDapr/components/.gitkeep create mode 100644 hello-service-fabric/daprsfpkg/MyService/CodeUserApp/app.js create mode 100644 hello-service-fabric/daprsfpkg/MyService/CodeUserApp/package-lock.json create mode 100644 hello-service-fabric/daprsfpkg/MyService/CodeUserApp/package.json create mode 100644 hello-service-fabric/daprsfpkg/MyService/ServiceManifest.xml create mode 100644 hello-service-fabric/img/Architecture_Diagram.png create mode 100644 hello-service-fabric/requests.http diff --git a/.gitignore b/.gitignore index 4dcd3a4..d22f8fe 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,7 @@ package-lock.json vendor/** twitter-sentiment-processor/demos/demo2/viewer/handler twitter-sentiment-processor/demos/demo3/demochart/templates/twitter.yaml -.venv/ \ No newline at end of file +hello-service-fabric/daprsfpkg/MyService/CodeDapr/daprd.exe +hello-service-fabric/daprsfpkg/MyService/CodeDapr/components/pubsub.yaml +hello-service-fabric/daprsfpkg/MyService/CodeDapr/components/statestore.yaml +.venv/ diff --git a/hello-service-fabric/README.md b/hello-service-fabric/README.md new file mode 100644 index 0000000..5f60ec0 --- /dev/null +++ b/hello-service-fabric/README.md @@ -0,0 +1,138 @@ +# Dapr on Service Fabric Sample + +## Sample info + +| Attribute | Details | +|--------|--------| +| Dapr runtime version | v1.4.0 | +| Language | Javascript | +| Environment | Service Fabric | + +## Overview + +The following is a sample of how to host a Dapr app on a Service Fabric cluster. We'll be deploying a Node.js app that subscribes to order messages and persists them. The following architecture diagram illustrates the components that make up this sample: + +![Architecture Diagram](./img/Architecture_Diagram.png) + +Some Dapr functionality, including Pub/Sub, Secrets and Bindings work without any integration with SF. However, service invocation, will not work without additional changes and is out of scope for this post. + +## Prerequisites + +Clone this repo using `git clone https://github.com/dapr/samples.git` and go to the directory named *\hello-service-fabric*. All commands should be executed from a PowerShell terminal. + +- [Docker](https://docs.docker.com/) +- [PowerShell](https://github.com/powershell/powershell) +- [REST Client extension](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) +- [Node.js version 8 or greater](https://nodejs.org/en/) +- [Microsoft Azure Service Fabric SDK](https://www.microsoft.com/web/handlers/webpi.ashx?command=getinstallerredirect&appid=MicrosoftAzure-ServiceFabric-CoreSDK) + +## Step 1 - Setup Dapr + +Follow these [instructions](https://docs.dapr.io/getting-started/install-dapr/#install-dapr-in-self-hosted-mode) to download and install the Dapr CLI and initialize Dapr with `dapr init`. + +```PowerShell +dapr init +``` + +## Step 2 - Setup Service Fabric + +1. Create a basic Service Fabric cluster through the SDK as described [here](https://docs.microsoft.com/azure/service-fabric/service-fabric-get-started). + +1. Right click "Service Fabric Local Cluster Manager" in the taskbar and select "Start Local Cluster". + +## Step 3 - Create the Service Fabric Application Package + +This section will create an application package where daprd.exe and the user node.js app will be run as guest executables in two separate code packages under the same Service Fabric service. They'll always be co-located. + +1. Copy daprd.exe from your local Dapr installation, `c:\Users\[user]\.dapr\bin`, into `\daprsfpkg\MyService\CodeDapr\`. + + ```PowerShell + copy c:\Users\$env:username\.dapr\bin\daprd.exe .\daprsfpkg\MyService\CodeDapr\ + ``` + +1. Copy the components from your local Dapr installation, `c:\Users\[user]\.dapr\components`, into `\daprsfpkg\MyService\CodeDapr\components`. + + ```PowerShell + copy c:\Users\$env:username\.dapr\components\*.* .\daprsfpkg\MyService\CodeDapr\components\ + ``` + +1. From `\daprsfpkg\MyService\CodeUserApp\`, run `npm install` to install the node.js app's dependencies and return to `\hello-service-fabric`. + + ```PowerShell + cd .\daprsfpkg\MyService\CodeUserApp\ + npm install + cd ..\..\.. + ``` + +1. From `\hello-service-fabric`, confirm the application package is well-formed: + + ```PowerShell + Test-ServiceFabricApplicationPackage .\daprsfpkg\ + ``` + +Notes: + +- the application package includes the Dapr `components` folder, which stores Dapr component configurations, in the Dapr code package. In Dapr standalone (local) mode, this is generated by the Dapr CLI. It is included so daprd.exe can read it when running on a Service Fabric cluster. + +- the service manifest contains a command to invoke daprd.exe with the same args that the Dapr CLI does in the sample. + +## Step 4 - Create the Service Fabric Application + +Copy the application package to the cluster, register it, then create the application. + +Connect to the cluster: + +```PowerShell +Connect-ServiceFabricCluster +``` + +Copy the application package to the cluster: + +```PowerShell +Copy-ServiceFabricApplicationPackage daprsfpkg +``` + +Register it: + +```PowerShell +Register-ServiceFabricApplicationType daprsfpkg +``` + +Create the application instance: + +```PowerShell +New-ServiceFabricApplication -ApplicationName fabric:/dapr1 -ApplicationTypeName daprsf -ApplicationTypeVersion 1.0 +``` + +daprd.exe and the node.js app will run on the same node. + +## Part 5 - Post Messages to the Service + +Now that Dapr and the Node.js app are running, you can POST messages against it, using the Visual Studio Code [REST Client extension](https://marketplace.visualstudio.com/items?itemName=humao.rest-client). + +Open the `requests.http` file in the root folder to execute the following requests. + +```text +POST http://localhost:3500/v1.0/invoke/mynode/method/neworder +Content-Type: application/json + +{"data":{"orderId":"42"}} + +### + +GET http://localhost:3500/v1.0/invoke/mynode/method/order +``` + +## Part 6 - Cleanup + +1. Delete the Service Fabric application instance: + + ```PowerShell + Remove-ServiceFabricApplication -ApplicationName fabric:/dapr1 -Force + ``` + +1. Unregister the Service Fabric application type + + ```PowerShell + Unregister-ServiceFabricApplicationType -ApplicationTypeName daprsf -ApplicationTypeVersion 1.0 -Force + ``` diff --git a/hello-service-fabric/daprsfpkg/ApplicationManifest.xml b/hello-service-fabric/daprsfpkg/ApplicationManifest.xml new file mode 100644 index 0000000..0569c43 --- /dev/null +++ b/hello-service-fabric/daprsfpkg/ApplicationManifest.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/hello-service-fabric/daprsfpkg/MyService/CodeDapr/components/.gitkeep b/hello-service-fabric/daprsfpkg/MyService/CodeDapr/components/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/hello-service-fabric/daprsfpkg/MyService/CodeUserApp/app.js b/hello-service-fabric/daprsfpkg/MyService/CodeUserApp/app.js new file mode 100644 index 0000000..c9b3cac --- /dev/null +++ b/hello-service-fabric/daprsfpkg/MyService/CodeUserApp/app.js @@ -0,0 +1,48 @@ +// ------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +// ------------------------------------------------------------ + +const express = require('express'); +require('isomorphic-fetch'); + +const app = express(); +app.use(express.json()); + +const port = process.env.APP_HTTP_PORT || 3000; +const daprPort = process.env.DAPR_HTTP_PORT || 3500; +const stateUrl = `http://localhost:${daprPort}/v1.0/state/statestore/`; + +app.get('/order', (_req, res) => { + fetch(`${stateUrl}/order`) + .then((response) => { + return response.json(); + }).then((orders) => { + res.send(orders); + }); +}); + +app.post('/neworder', (req, res) => { + const data = req.body.data; + const orderId = data.orderId; + console.log("Got a new order! Order ID: " + orderId); + + const state = [{ + key: "order", + value: data + }]; + + fetch(stateUrl, { + method: "POST", + body: JSON.stringify(state), + headers: { + "Content-Type": "application/json" + } + }).then((response) => { + console.log((response.ok) ? "Successfully persisted state" : "Failed to persist state" + response); + }); + + res.status(200).send(); +}); + +app.listen(port, () => console.log(`Node App listening on port ${port}!`)); \ No newline at end of file diff --git a/hello-service-fabric/daprsfpkg/MyService/CodeUserApp/package-lock.json b/hello-service-fabric/daprsfpkg/MyService/CodeUserApp/package-lock.json new file mode 100644 index 0000000..03d0e68 --- /dev/null +++ b/hello-service-fabric/daprsfpkg/MyService/CodeUserApp/package-lock.json @@ -0,0 +1,393 @@ +{ + "name": "node_server", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + }, + "mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "requires": { + "mime-db": "1.49.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + } + } +} diff --git a/hello-service-fabric/daprsfpkg/MyService/CodeUserApp/package.json b/hello-service-fabric/daprsfpkg/MyService/CodeUserApp/package.json new file mode 100644 index 0000000..a73d429 --- /dev/null +++ b/hello-service-fabric/daprsfpkg/MyService/CodeUserApp/package.json @@ -0,0 +1,16 @@ +{ + "name": "node_server", + "version": "1.0.0", + "description": "Dapr service that saves data to a state store.", + "main": "app.js", + "repository": {}, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "express": "^4.17.1", + "isomorphic-fetch": "^3.0.0" + } +} diff --git a/hello-service-fabric/daprsfpkg/MyService/ServiceManifest.xml b/hello-service-fabric/daprsfpkg/MyService/ServiceManifest.xml new file mode 100644 index 0000000..7a93b69 --- /dev/null +++ b/hello-service-fabric/daprsfpkg/MyService/ServiceManifest.xml @@ -0,0 +1,32 @@ + + + + + + + + + node.exe + app.js + CodePackage + + + + + + + + + + + + + + + daprd.exe + --app-id mynode --components-path ./components --app-protocol http --app-port 3000 --dapr-http-port 3500 --dapr-grpc-port 43693 --log-level debug --app-max-concurrency -1 + CodeBase + + + + \ No newline at end of file diff --git a/hello-service-fabric/img/Architecture_Diagram.png b/hello-service-fabric/img/Architecture_Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..ff85930d9ec9261170a52231dd491cfae4189805 GIT binary patch literal 90401 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�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 literal 0 HcmV?d00001 diff --git a/hello-service-fabric/requests.http b/hello-service-fabric/requests.http new file mode 100644 index 0000000..a156ec4 --- /dev/null +++ b/hello-service-fabric/requests.http @@ -0,0 +1,8 @@ +POST http://localhost:3500/v1.0/invoke/mynode/method/neworder +Content-Type: application/json + +{"data":{"orderId":"42"}} + +### + +GET http://localhost:3500/v1.0/invoke/mynode/method/order