{"id":81477,"date":"2020-07-01T09:00:14","date_gmt":"2020-07-01T16:00:14","guid":{"rendered":""},"modified":"2025-06-24T11:16:00","modified_gmt":"2025-06-24T18:16:00","slug":"announcing-azure-functions-extension-for-dapr","status":"publish","type":"post","link":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/","title":{"rendered":"Announcing Azure Functions extension for Dapr"},"content":{"rendered":"\n<p>We\u2019re excited to announce a new extension for Azure Functions that lets a function seamlessly interact with Dapr for building cloud-native applications. Azure Functions provides an event-driven programming model and Dapr provides a set of essential cloud-native building blocks. With this new extension, you can now bring both together for serverless and event-driven apps that can use the growing set of capabilities Dapr provides. Developers, teams, and organizations can use these tools to build functions that use a powerful set of capabilities with little code. You can <a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\/blob\/master\/docs\/quickstart.md\" target=\"_blank\" rel=\"noopener noreferrer\">get started today<\/a> with the extension, which is fully open source <a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\" target=\"_blank\" rel=\"noopener noreferrer\">on GitHub<\/a>.<\/p>\n\n\n\n<p>Currently, this extension is focused on being used with the Azure Functions runtime hosted in Kubernetes or IoT Edge and is not currently available in the Azure Functions hosting plans.<\/p>\n\n\n\n<p>Late last year,&nbsp;<a href=\"https:\/\/cloudblogs.microsoft.com\/opensource\/2019\/10\/16\/announcing-dapr-open-source-project-build-microservice-applications\/\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft announced Dapr<\/a>, a distributed application runtime. Dapr provides a set of cloud-native building blocks including state management, service invocation, publish and subscribe, distributed tracing, and more. Dapr runs as a sidecar to any application to provide these capabilities across cloud and edge, integrating with any programming model or framework, including Express, Flask, ASP.NET, or Functions.<\/p>\n\n\n\n<figure class=\"wp-block-image alignleft\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/06\/Azure-Functions-and-Dapr-logos.png\" alt=\"Azure Functions and Dapr logos\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Azure Functions, in addition to the serverless offering within the Azure cloud, provides an event-driven runtime and programming model for those apps. Azure Functions enables you to write event-driven code that can trigger and\u00a0<a href=\"https:\/\/keda.sh\/\" target=\"_blank\" rel=\"noopener noreferrer\">scale on events<\/a>, with a number of out of the box triggers and bindings to push your data. It\u2019s a purpose-built runtime for event-driven applications, providing capabilities and tooling to run these apps anywhere.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"azure-functions-and-dapr-working-together\">Azure Functions and Dapr working together<\/h2>\n\n\n\n<p>This new extension allows you to more easily pair the Azure Functions programming model with capabilities from Dapr. For example, you may wish to keep some persistent and flexible state alongside your function. You can now create and retrieve state managed by Dapr directly within the functions programming model like below:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/07\/Dapr-Azure-Function-code-snippet-1.png\" alt=\"Dapr Azure Function code snippet\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>This state example would work alongside a Dapr persistent state store, deployed as a Dapr component, which can be interchanged for any of the <a href=\"https:\/\/github.com\/dapr\/components-contrib\/tree\/master\/state#state-stores\">many Dapr state stores<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"publish-and-subscribe-between-azure-functions\">Publish and subscribe between Azure Functions<\/h2>\n\n\n\n<p>As another example, you can use the Dapr extension to publish and subscribe to topics between functions. Extending on Dapr state, the code below shows an example of using Dapr publish and subscribe with a JavaScript Azure Function. The Azure Function will publish data to a topic named <em>myTopic<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/07\/Dapr-Azure-Function-code-snippet-2-657x1024.webp\" alt=\"Dapr Azure Function code snippet\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Another function can now subscribe to this published topic and trigger whenever data is sent.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"dapr-extension-bindings-and-triggers\">Dapr extension bindings and triggers<\/h2>\n\n\n\n<p>These are a couple of examples of how to use the Dapr extension. This extension has support for triggering functions on a Dapr service invocation, pub\/sub events, or Dapr input\/output bindings. It provides integration to use Dapr state, secrets, topics, and bindings from directly in your function code. The Dapr SDKs and contracts are managed completely through the Azure Functions host, enabling developers to surface these capabilities quickly and efficiently. Below is the list of bindings and triggers available.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Binding Type<\/strong><\/td><td><strong>Direction<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\/blob\/master\/docs\/input-bindings.md#state-input-binding\">daprState<\/a><\/td><td>Input<\/td><td>Pull in Dapr state for an execution<\/td><\/tr><tr><td><a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\/blob\/master\/docs\/input-bindings.md#secret-input-binding\">daprSecret<\/a><\/td><td>Input<\/td><td>Pull in Dapr secrets for an execution<\/td><\/tr><tr><td><a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\/blob\/master\/docs\/output-bindings.md#state-output-binding\">daprState<\/a><\/td><td>Output<\/td><td>Save a value to Dapr state<\/td><\/tr><tr><td><a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\/blob\/master\/docs\/output-bindings.md#service-invocation-output-binding\">daprInvoke<\/a><\/td><td>Output<\/td><td>Invoke another Dapr app<\/td><\/tr><tr><td><a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\/blob\/master\/docs\/output-bindings.md#topic-publish-output-binding\">daprPublish<\/a><\/td><td>Output<\/td><td>Publish a message to a Dapr topic<\/td><\/tr><tr><td><a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\/blob\/master\/docs\/output-bindings.md#dapr-binding-output-binding\">daprBinding<\/a><\/td><td>Output<\/td><td>Send a value to a Dapr output binding<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Trigger Type<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\/blob\/master\/docs\/triggers.md#input-binding-trigger\">daprBindingTrigger<\/a><\/td><td>Trigger on a Dapr input binding<\/td><\/tr><tr><td><a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\/blob\/master\/docs\/triggers.md#service-invocation-trigger\">daprServiceInvocationTrigger<\/a><\/td><td>Trigger on a Dapr service invocation<\/td><\/tr><tr><td><a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\/blob\/master\/docs\/triggers.md#topic-trigger\">daprTopicTrigger<\/a><\/td><td>Trigger on a Dapr topic subscription<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"give-this-a-try\">Give this a try!<\/h2>\n\n\n\n<p>Today the extension is supported in any environment that supports running Dapr and Azure Functions host<em>\u2014<\/em>primarily self-hosted and Kubernetes modes. Azure Functions, Dapr, and this extension are all fully open source and can be run across cloud, hybrid, and edge. You can get started with this <a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\">extension on GitHub<\/a>, and <a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\/blob\/master\/docs\/quickstart.md\">follow this quickstart<\/a> to build a JavaScript function that uses Dapr for state management and pub\/sub across functions in a Kubernetes cluster.<\/p>\n\n\n\n<p>We\u2019d love for you to try out this Functions extension for Dapr, give feedback by raising issues in <a href=\"https:\/\/github.com\/dapr\/azure-functions-extension\">the repo<\/a> and become a member of the community.<\/p>\n\n\n\n<p>Questions or feedback about this release? Let us know in the comments below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We\u2019re excited to announce a new extension for Azure Functions that lets a function seamlessly interact with Dapr for building cloud-native applications. Azure Functions provides an event-driven programming model and Dapr provides a set of essential cloud-native building blocks.<\/p>\n","protected":false},"author":5562,"featured_media":95465,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"msxcm_post_with_no_image":false,"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[723,158,2272],"content-type":[346,361],"topic":[2240,2241,2242],"programming-languages":[],"coauthors":[585,717],"class_list":["post-81477","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-dapr","tag-kubernetes","tag-microsoft","content-type-news","content-type-project-updates","topic-application-development","topic-cloud","topic-containers","review-flag-1593580428-734","review-flag-anywh-1593580318-567","review-flag-iot-1680213327-385","review-flag-new-1593580248-669"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Announcing Azure Functions extension for Dapr | Microsoft Open Source Blog<\/title>\n<meta name=\"description\" content=\"A new extension for Azure Functions lets a function seamlessly interact with Dapr for building cloud-native applications.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Announcing Azure Functions extension for Dapr | Microsoft Open Source Blog\" \/>\n<meta property=\"og:description\" content=\"A new extension for Azure Functions lets a function seamlessly interact with Dapr for building cloud-native applications.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Open Source Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-01T16:00:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-24T18:16:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/06\/Azure-Functions-Dapr-code-snippet.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1164\" \/>\n\t<meta property=\"og:image:height\" content=\"724\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jeff Hollan, Mark Fussell\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/06\/Azure-Functions-Dapr-code-snippet.png\" \/>\n<meta name=\"twitter:creator\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:site\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Hollan, Mark Fussell\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/\"},\"author\":[{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/jeff-hollan\/\",\"@type\":\"Person\",\"@name\":\"Jeff Hollan\"},{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/mark-fussell\/\",\"@type\":\"Person\",\"@name\":\"Mark Fussell\"}],\"headline\":\"Announcing Azure Functions extension for Dapr\",\"datePublished\":\"2020-07-01T16:00:14+00:00\",\"dateModified\":\"2025-06-24T18:16:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/\"},\"wordCount\":707,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp\",\"keywords\":[\"Dapr\",\"Kubernetes\",\"Microsoft\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/\",\"name\":\"Announcing Azure Functions extension for Dapr | Microsoft Open Source Blog\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp\",\"datePublished\":\"2020-07-01T16:00:14+00:00\",\"dateModified\":\"2025-06-24T18:16:00+00:00\",\"description\":\"A new extension for Azure Functions lets a function seamlessly interact with Dapr for building cloud-native applications.\",\"breadcrumb\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#primaryimage\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp\",\"width\":1170,\"height\":640},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/opensource.microsoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Announcing Azure Functions extension for Dapr\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"name\":\"Microsoft Open Source Blog\",\"description\":\"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability\",\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\",\"name\":\"Microsoft Open Source Blog\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft Open Source Blog\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/OpenAtMicrosoft\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Announcing Azure Functions extension for Dapr | Microsoft Open Source Blog","description":"A new extension for Azure Functions lets a function seamlessly interact with Dapr for building cloud-native applications.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/","og_locale":"en_US","og_type":"article","og_title":"Announcing Azure Functions extension for Dapr | Microsoft Open Source Blog","og_description":"A new extension for Azure Functions lets a function seamlessly interact with Dapr for building cloud-native applications.","og_url":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/","og_site_name":"Microsoft Open Source Blog","article_published_time":"2020-07-01T16:00:14+00:00","article_modified_time":"2025-06-24T18:16:00+00:00","og_image":[{"width":1164,"height":724,"url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/06\/Azure-Functions-Dapr-code-snippet.png","type":"image\/png"}],"author":"Jeff Hollan, Mark Fussell","twitter_card":"summary_large_image","twitter_image":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2020\/06\/Azure-Functions-Dapr-code-snippet.png","twitter_creator":"@OpenAtMicrosoft","twitter_site":"@OpenAtMicrosoft","twitter_misc":{"Written by":"Jeff Hollan, Mark Fussell","Est. reading time":"3 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#article","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/"},"author":[{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/jeff-hollan\/","@type":"Person","@name":"Jeff Hollan"},{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/mark-fussell\/","@type":"Person","@name":"Mark Fussell"}],"headline":"Announcing Azure Functions extension for Dapr","datePublished":"2020-07-01T16:00:14+00:00","dateModified":"2025-06-24T18:16:00+00:00","mainEntityOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/"},"wordCount":707,"commentCount":1,"publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp","keywords":["Dapr","Kubernetes","Microsoft"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/","url":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/","name":"Announcing Azure Functions extension for Dapr | Microsoft Open Source Blog","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#primaryimage"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp","datePublished":"2020-07-01T16:00:14+00:00","dateModified":"2025-06-24T18:16:00+00:00","description":"A new extension for Azure Functions lets a function seamlessly interact with Dapr for building cloud-native applications.","breadcrumb":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#primaryimage","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO19_Ubisoft_Azure_037.webp","width":1170,"height":640},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.microsoft.com\/blog\/2020\/07\/01\/announcing-azure-functions-extension-for-dapr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.microsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Announcing Azure Functions extension for Dapr"}]},{"@type":"WebSite","@id":"https:\/\/opensource.microsoft.com\/blog\/#website","url":"https:\/\/opensource.microsoft.com\/blog\/","name":"Microsoft Open Source Blog","description":"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability","publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/opensource.microsoft.com\/blog\/#organization","name":"Microsoft Open Source Blog","url":"https:\/\/opensource.microsoft.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft Open Source Blog"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/OpenAtMicrosoft"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Open Source Blog","distributor_original_site_url":"https:\/\/opensource.microsoft.com\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/81477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/users\/5562"}],"replies":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=81477"}],"version-history":[{"count":2,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/81477\/revisions"}],"predecessor-version":[{"id":97659,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/81477\/revisions\/97659"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media\/95465"}],"wp:attachment":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=81477"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/post_tag?post=81477"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/content-type?post=81477"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/topic?post=81477"},{"taxonomy":"programming-languages","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/programming-languages?post=81477"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/coauthors?post=81477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}