All Projects → scale-tone → az-func-as-a-graph

scale-tone / az-func-as-a-graph

Licence: MIT license
Visualizes your Azure Functions project in form of a graph

Programming Languages

typescript
32286 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
Dockerfile
14818 projects
Batchfile
5799 projects
CSS
56736 projects

Projects that are alternatives of or similar to az-func-as-a-graph

Fritz.HatCollection
A static website that displays a collection of Fritz's Hats
Stars: ✭ 21 (-47.5%)
Mutual labels:  azure-functions
QueueBatch
WebJobs/Azure Functions trigger providing batches of Azure Storage Queues messages directly to your function
Stars: ✭ 40 (+0%)
Mutual labels:  azure-functions
sprite
🖌 Draw charts in code. Render in real-time. Embed anywhere as .png.
Stars: ✭ 202 (+405%)
Mutual labels:  mermaid
azure-sql-db-change-stream-debezium
SQL Server Change Stream sample using Debezium
Stars: ✭ 74 (+85%)
Mutual labels:  azure-functions
multicloud
The serverless @multicloud library provides an easy way to write your serverless handlers 1 time and deploy them to multiple cloud providers include Azure & AWS.
Stars: ✭ 79 (+97.5%)
Mutual labels:  azure-functions
RazorComponents.Markdown
Razor component for Markdown rendering.
Stars: ✭ 30 (-25%)
Mutual labels:  mermaid
Xamarin.InAppPurchasing
Sample project for secure in-app purchases with Xamarin for iOS and Google Play
Stars: ✭ 26 (-35%)
Mutual labels:  azure-functions
Mermaid
Provides a parser function to generate diagrams and flowcharts with the help of the mermaid script language
Stars: ✭ 27 (-32.5%)
Mutual labels:  mermaid
powerbi-embed-v2
Power BI Embedded with Custom Controls PoC
Stars: ✭ 34 (-15%)
Mutual labels:  azure-functions
azure-maven-archetypes
Maven Archetypes for Microsoft Azure Services
Stars: ✭ 19 (-52.5%)
Mutual labels:  azure-functions
clean-architecture-azure-cosmos-db
A starting point to build a web API to work with Azure Cosmos DB using .NET 5 and Azure Cosmos DB .NET SDK V3, based on Clean Architecture and repository design pattern. Partition key is also implemented through the repository pattern.
Stars: ✭ 277 (+592.5%)
Mutual labels:  azure-functions
shorty
URL shortener available as library, microservice (even containerized), aws lambda, and azure function
Stars: ✭ 31 (-22.5%)
Mutual labels:  azure-functions
vscode-markdown-editor
A vscode extension to make your vscode become a full-featured WYSIWYG markdown editor
Stars: ✭ 249 (+522.5%)
Mutual labels:  mermaid
OSCI
Open Source Contributor Index
Stars: ✭ 107 (+167.5%)
Mutual labels:  azure-functions
azure-functions-language-worker-protobuf
Protobuf definitions for the gRPC connections between the script host and the language workers
Stars: ✭ 27 (-32.5%)
Mutual labels:  azure-functions
AzureContainerInstancesManagement
Hosting game servers at scale using Azure Container Instances, using Azure Functions and Event Grid. Demo with OpenArena game server!
Stars: ✭ 41 (+2.5%)
Mutual labels:  azure-functions
functions-extension-101
Learn how to create your own Azure Functions extension in 5 steps
Stars: ✭ 35 (-12.5%)
Mutual labels:  azure-functions
AzureFunctionsSecurity
Azure Functions Security
Stars: ✭ 23 (-42.5%)
Mutual labels:  azure-functions
Scavenger
A virtual "scavenger hunt" game for mobile devices using Unity, Azure, and PlayFab
Stars: ✭ 19 (-52.5%)
Mutual labels:  azure-functions
azure-functions-ts-essentials
Essential interfaces and tools for backend development on Azure Functions with TypeScript
Stars: ✭ 21 (-47.5%)
Mutual labels:  azure-functions

logo

az-func-as-a-graph

Visualizes your Azure Functions project in form of a graph. Accepts links to git repos (GitHub, Azure DevOps) or local paths.

UPD: is now also a part of Durable Functions Monitor VsCode extension. Command Palette -> Visualize Functions as a Graph...

How to run as a GitHub Codespace

This is the quickest way to get this tool operational, but you'll need to have GitHub Codespaces enabled for your org.

  • Click on this button:

    (If you don't see it, it means that GitHub Codespaces are not enabled)

  • Once a Codespace instance is started, type func start in Terminal window.

  • Click on this button:

    az-func-as-a-graph's UI will be opened in a separate browser tab.

  • Enter a link to any Azure Functions project (e.g. https://github.com/scale-tone/az-func-as-a-graph) into there and press 'Visualize'.

How to run locally

This tool is itself an Azure Function (written in TypeScript), so to run it you'll need:

Clone this repo to your devbox, then type the following from the project root folder:

npm install
npm run build
func start

Then navigate to http://localhost:7071 with your browser, specify either local path or link to a github repo and press 'Visualize'.

How to run as part of Azure DevOps build pipeline

Install this Azure DevOps extension into your org and then add az-func-as-a-graph task into your pipeline:

How to run from command line

This mode allows to programmatically generate diagrams out of your source code, e.g. as part of your build pipeline.

Clone this repo, then type the following from the project root folder:

npm install
node az-func-as-a-graph {path-to-my-functions-project-folder} {output-file-name} {json-file-with-settings}

This now became possible thanks to mermaid-cli NPM package (which will be locally installed by az-func-as-a-graph script at its first run).

npm install is only needed once, of course.

{path-to-my-functions-project-folder} can be either local folder or link to a GitHub repo. If it is a link, then it can as well point to a particular branch or tag and/or include a relative path. E.g. https://github.com/scale-tone/WhatIfDemo/tree/20190516.1/WhatIfDemo-Functions.

{output-file-name} should be a file name with local path.

  • If its extension is .svg, the graph will be written to this file in SVG format.
  • If its extension is .htm, a static HTML page will be generated. The tool will also try its best to make that page interactive, so that e.g. when you click on a graph node, the relevant Function's source code is shown. Here is an example of such a page. If the project link contains a branch/tag, the links to sources will be relative to that branch/tag.
  • If its extension is .json, a Functions Map file will be generated and saved as JSON. Then you can upload this file to your Durable Functions Monitor standalone/injected instance, to make it show you an interactive animated Functions Graph.
  • If its extension is .md, a Markdown file with embedded graph will be generated.

{json-file-with-settings} is an optional path to an optional JSON file with optional settings. Like this one:

{
    "templateFile": "path-to-my-custom-template-file",
    "repoInfo": {
        "originUrl": "e.g. https://github.com/scale-tone/repeating-map-reduce-sample",
        "repoName": "e.g. repeating-map-reduce-sample",
        "branchName": "e.g. main",
        "tagName": "e.g. v1.2.3"
    },
    "doNotRenderFunctions": true,
    "doNotRenderProxies": true
}

templateFile specifies a custom HTML or Markdown template to be used, when generating HTML pages or Markdown files. If omitted, this default one will be used for HTML and this default one will be used for Markdown.

repoInfo setting provides a way to customize source code repo information, when needed. It is only used for mapping and rendering links to source code. If omitted, this data will be retrieved automatically with relevant git commands. E.g. you might want to explicitly specify repoInfo.originUrl to point source code links to GitHub CodeSpaces (https://github.dev) instead of https://github.com.

doNotRenderFunctions hides functions from the graph.

doNotRenderProxies hides proxies from the graph.

How to deploy to Azure

Deploy to Azure

The above button will deploy these sources into your newly created Function App instance. Note that it will be in AppService pricing tier. Keep an eye on the cost of it and don't forget to remove it once not needed anymore.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].