{"id":1627,"date":"2018-02-09T13:51:06","date_gmt":"2018-02-09T12:51:06","guid":{"rendered":"http:\/\/blogs.encamina.com\/por-una-nube-sostenible\/?p=1627"},"modified":"2018-02-09T13:55:36","modified_gmt":"2018-02-09T12:55:36","slug":"serverless-en-modo-infinito","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/","title":{"rendered":"Serverless en modo infinito"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1637\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg\" alt=\"\" width=\"1378\" height=\"1378\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg 1378w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS-150x150.jpg 150w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS-300x300.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS-768x768.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS-1024x1024.jpg 1024w\" sizes=\"auto, (max-width: 1378px) 100vw, 1378px\" \/><\/p>\n<p>\u00bfVerdad que nadie ha escuchado el t\u00e9rmino <strong>Serverless<\/strong>? Y por supuesto <strong>Azure Functions<\/strong> es un aut\u00e9ntico desconocido \u00bfverdad? \ud83d\ude09\u00a0Sarcasmo aparte, el a\u00f1o pasado fue el a\u00f1o del Serverless y en concreto de Azure Functions, pero \u00e9sta tiene algunas limitaciones, la m\u00e1s importante el <em>timeout<\/em> m\u00e1ximo de 10 minutos\u00a0 y c\u00f3mo concatenar diferentes ejecuciones de functions.<\/p>\n<p><!--more--><\/p>\n<p>Para solucionar estos problemas Microsoft ha sacado la versi\u00f3n preliminar de <strong>Durable Azure Functions<\/strong>, que como su nombre indica, sirve para <strong>crear funciones que duren en el tiempo<\/strong>.\u00a0En este art\u00edculo veremos una breve introducci\u00f3n de qu\u00e9 son y para qu\u00e9 sirven.<\/p>\n<h2>Durable Azure Functions<\/h2>\n<p>Las<strong> Durable Azure Functions<\/strong>, a partir de ahora DAF, nos permitir\u00e1n crear workflows de trabajo en functions mediante c\u00f3digo, sin cajitas ni configuraciones. \u00c9sto nos permitir\u00e1 orquestar diferentes llamadas a functions que bien tengan relaci\u00f3n entre s\u00ed,\u00a0 o bien relaci\u00f3n con el flujo de negocio.<\/p>\n<p>Las DAF se basan en el patr\u00f3n <em>event sourcing<\/em>, que consiste que va guardando los diferentes estados en los que se encuentra. As\u00ed, en el momento en que se suspende el flujo,\u00a0 al reanudarlo puede continuar donde estaba, a la vez que nos permite ir consultando este estado mediante llamadas a su API.<\/p>\n<p>Los tres conceptos b\u00e1sicos a la hora de desarrollar una DAF son:<\/p>\n<ul>\n<li><strong>OrchestrationClient \u00e0 Trigger<\/strong> que se lanzar\u00e1 cuando queramos interactuar con una DAF.<\/li>\n<li><strong>DurableOrchestrationClient \u00e0 Vinculado al trigger OrchestrationClient<\/strong>, esta clase contiene todo lo necesario para lanzar el orquestador de funciones: iniciarlas, paralas, ver su estado, enviarle eventos\u2026.<\/li>\n<li><strong>OrchestrationTrigger \u00e0 Trigger<\/strong> que se ejecutar\u00e1 cuando se interact\u00faa con el orquestador.<\/li>\n<li><strong>DurableOrchestrationContext \u00e0 Clase<\/strong> que contiene todas las clases necesarias para realizar la orquestaci\u00f3n: esperar eventos, reiniciar el orquestador, llamar a funciones\u2026<\/li>\n<li><strong>ActivityTrigger \u00e0 Trigger<\/strong> que se lanzar\u00e1 cuando desde un DAF orquestadora llamemos a una function.<\/li>\n<\/ul>\n<p>En la siguiente URL pod\u00e9is ver algunos patrones de c\u00f3mo utilizarlas:<\/p>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-US\/azure\/azure-functions\/durable-functions-overview\">https:\/\/docs.microsoft.com\/en-US\/azure\/azure-functions\/durable-functions-overview<\/a><\/p>\n<p>Podemos ver el siguiente ejemplo, como muestra muy b\u00e1sica de que lo que hace es llamar tres veces a una funci\u00f3n y escribimos el resultado.<\/p>\n<p>Primero tenemos la function que nos permitir\u00e1 ejecutar la functions que orquestar\u00e1 las llamadas:<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1628\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito.jpg\" alt=\"Serverless en modo infinito\" width=\"765\" height=\"648\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito.jpg 765w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-300x254.jpg 300w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1629\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-modo-infinito.jpg\" alt=\"\" width=\"613\" height=\"50\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-modo-infinito.jpg 613w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-modo-infinito-300x24.jpg 300w\" sizes=\"auto, (max-width: 613px) 100vw, 613px\" \/><\/p>\n<p>Como podemos ver esta function para ejecutarse espera que pongamos un elemento en una cola con el nombre de la function a ejecutar.<\/p>\n<p>Por otro lado, tenemos la function que es invocada por la anterior que, a su vez,\u00a0 es la que realizar\u00e1 la orquestaci\u00f3n:<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1630\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-modo-infinito-2.jpg\" alt=\"Serverless modo infinito \" width=\"798\" height=\"373\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-modo-infinito-2.jpg 798w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-modo-infinito-2-300x140.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-modo-infinito-2-768x359.jpg 768w\" sizes=\"auto, (max-width: 798px) 100vw, 798px\" \/><\/p>\n<p>Como podemos ver, se llaman tres functions (llamadas RodolfoExecute) mediante el m\u00e9todo CallActivityAsync. En este caso, cada vez que se llama a la function, la function RodolfoSay entra en stand by hasta que llega el resultado y continua.<\/p>\n<p>Por \u00faltimo, la function RodolfoExectue:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1631\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito2.jpg\" alt=\"\" width=\"756\" height=\"110\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito2.jpg 756w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito2-300x44.jpg 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/p>\n<p>En las siguientes im\u00e1genes se puede ver c\u00f3mo a\u00f1adimos un mensaje en la cola y el resultado:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1632\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-3.jpg\" alt=\"Serverless en modo infinito 3\" width=\"1297\" height=\"865\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-3.jpg 1297w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-3-300x200.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-3-768x512.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-3-1024x683.jpg 1024w\" sizes=\"auto, (max-width: 1297px) 100vw, 1297px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1633\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-4.jpg\" alt=\"Serverless en modo infinito \" width=\"2736\" height=\"1824\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-4.jpg 2736w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-4-300x200.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-4-768x512.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-4-1024x683.jpg 1024w\" sizes=\"auto, (max-width: 2736px) 100vw, 2736px\" \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1634\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-5.jpg\" alt=\"Serverless en modo infinito \" width=\"2736\" height=\"1824\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-5.jpg 2736w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-5-300x200.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-5-768x512.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-5-1024x683.jpg 1024w\" sizes=\"auto, (max-width: 2736px) 100vw, 2736px\" \/><\/p>\n<p>Todo el stack trace de los eventos se guarda en una table, en la cual podemos ver los estados por los que han pasado las functions:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1635\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-6.jpg\" alt=\"Serverless en modo infinito \" width=\"2736\" height=\"1824\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-6.jpg 2736w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-6-300x200.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-6-768x512.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Serverless-en-modo-infinito-6-1024x683.jpg 1024w\" sizes=\"auto, (max-width: 2736px) 100vw, 2736px\" \/><\/p>\n<p>Esto es s\u00f3lo una visi\u00f3n muy preliminar, pero si os interesa el tema pod\u00e9is mirar m\u00e1s\u00a0 documentaci\u00f3n:<\/p>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-US\/azure\/azure-functions\/durable-functions-overview\">https:\/\/docs.microsoft.com\/en-US\/azure\/azure-functions\/durable-functions-overview<\/a><\/p>\n<p>El c\u00f3digo lo pod\u00e9is ver en: <a href=\"https:\/\/github.com\/bermejoblasco\/DurableFunctions\/tree\/master\">https:\/\/github.com\/bermejoblasco\/DurableFunctions\/tree\/master<\/a><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>\u00bfVerdad que nadie ha escuchado el t\u00e9rmino Serverless? Y por supuesto Azure Functions es un aut\u00e9ntico desconocido \u00bfverdad? \ud83d\ude09\u00a0Sarcasmo aparte, el a\u00f1o pasado fue el a\u00f1o del Serverless y en concreto de Azure Functions, pero \u00e9sta tiene algunas limitaciones, la &hellip; <a href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":180,"featured_media":1637,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1627","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Serverless en modo Infinito | ENCAMINA<\/title>\n<meta name=\"description\" content=\"\u00bfQu\u00e9 son y para qu\u00e9 sirven las Durable Azure Functions? En este art\u00edculo Robert Bermejo explica c\u00f3mo crear workflows de trabajo en functions mediante c\u00f3digo\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Serverless en modo infinito\" \/>\n<meta property=\"og:description\" content=\"\u00bfQu\u00e9 son y para qu\u00e9 sirven las Durable Azure Functions? En este art\u00edculo Robert Bermejo explica c\u00f3mo crear workflows de trabajo en functions mediante c\u00f3digo\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/\" \/>\n<meta property=\"og:site_name\" content=\"Por una nube sostenible\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-09T12:51:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-02-09T12:55:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1378\" \/>\n\t<meta property=\"og:image:height\" content=\"1378\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Robert Bermejo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Robert Bermejo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/\"},\"author\":{\"name\":\"Robert Bermejo\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#\\\/schema\\\/person\\\/68bf0b11185930e37ca20de48f3a1d5d\"},\"headline\":\"Serverless en modo infinito\",\"datePublished\":\"2018-02-09T12:51:06+00:00\",\"dateModified\":\"2018-02-09T12:55:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/\"},\"wordCount\":554,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2018\\\/02\\\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg\",\"articleSection\":[\"Azure\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/\",\"name\":\"Serverless en modo Infinito | ENCAMINA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2018\\\/02\\\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg\",\"datePublished\":\"2018-02-09T12:51:06+00:00\",\"dateModified\":\"2018-02-09T12:55:36+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#\\\/schema\\\/person\\\/68bf0b11185930e37ca20de48f3a1d5d\"},\"description\":\"\u00bfQu\u00e9 son y para qu\u00e9 sirven las Durable Azure Functions? En este art\u00edculo Robert Bermejo explica c\u00f3mo crear workflows de trabajo en functions mediante c\u00f3digo\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2018\\\/02\\\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2018\\\/02\\\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg\",\"width\":1378,\"height\":1378},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/serverless-en-modo-infinito\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Serverless en modo infinito\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/\",\"name\":\"Por una nube sostenible\",\"description\":\"C\u00f3mo no romper los l\u00edmites, c\u00f3mo crear una buena arquitectura y c\u00f3mo hacer un buen mantenimiento\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#\\\/schema\\\/person\\\/68bf0b11185930e37ca20de48f3a1d5d\",\"name\":\"Robert Bermejo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g\",\"caption\":\"Robert Bermejo\"},\"description\":\"Robert Bermejo lleva m\u00e1s de 10 a\u00f1os en el mundo Microsoft, principalmente en entornos web y desde hace 4 a\u00f1os en Azure, siendo MVP en esta categor\u00eda. Organizador de la comunidad de Azure en Barcelona (@CAT_zure) donde mensualmente organiza meetups sobre esta tem\u00e1tica, tambi\u00e9n escribe en la revista CompartiMOSS as\u00ed como se le puede ver en los diversos eventos nacionales hablando sobre Azure. Actualmente es Team Leader en ENCAMINA y se puede decir que vive en la nube ;)\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/author\\\/rbermejo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Serverless en modo Infinito | ENCAMINA","description":"\u00bfQu\u00e9 son y para qu\u00e9 sirven las Durable Azure Functions? En este art\u00edculo Robert Bermejo explica c\u00f3mo crear workflows de trabajo en functions mediante c\u00f3digo","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:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/","og_locale":"es_ES","og_type":"article","og_title":"Serverless en modo infinito","og_description":"\u00bfQu\u00e9 son y para qu\u00e9 sirven las Durable Azure Functions? En este art\u00edculo Robert Bermejo explica c\u00f3mo crear workflows de trabajo en functions mediante c\u00f3digo","og_url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/","og_site_name":"Por una nube sostenible","article_published_time":"2018-02-09T12:51:06+00:00","article_modified_time":"2018-02-09T12:55:36+00:00","og_image":[{"width":1378,"height":1378,"url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg","type":"image\/jpeg"}],"author":"Robert Bermejo","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Robert Bermejo","Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/#article","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/"},"author":{"name":"Robert Bermejo","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#\/schema\/person\/68bf0b11185930e37ca20de48f3a1d5d"},"headline":"Serverless en modo infinito","datePublished":"2018-02-09T12:51:06+00:00","dateModified":"2018-02-09T12:55:36+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/"},"wordCount":554,"commentCount":0,"image":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg","articleSection":["Azure"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/","url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/","name":"Serverless en modo Infinito | ENCAMINA","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/#primaryimage"},"image":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg","datePublished":"2018-02-09T12:51:06+00:00","dateModified":"2018-02-09T12:55:36+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#\/schema\/person\/68bf0b11185930e37ca20de48f3a1d5d"},"description":"\u00bfQu\u00e9 son y para qu\u00e9 sirven las Durable Azure Functions? En este art\u00edculo Robert Bermejo explica c\u00f3mo crear workflows de trabajo en functions mediante c\u00f3digo","breadcrumb":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/#primaryimage","url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg","contentUrl":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Paso-de-par\u00e1metros-a-aplicaci\u00f3n-ReactJS.jpg","width":1378,"height":1378},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/serverless-en-modo-infinito\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/"},{"@type":"ListItem","position":2,"name":"Serverless en modo infinito"}]},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#website","url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/","name":"Por una nube sostenible","description":"C\u00f3mo no romper los l\u00edmites, c\u00f3mo crear una buena arquitectura y c\u00f3mo hacer un buen mantenimiento","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#\/schema\/person\/68bf0b11185930e37ca20de48f3a1d5d","name":"Robert Bermejo","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g","caption":"Robert Bermejo"},"description":"Robert Bermejo lleva m\u00e1s de 10 a\u00f1os en el mundo Microsoft, principalmente en entornos web y desde hace 4 a\u00f1os en Azure, siendo MVP en esta categor\u00eda. Organizador de la comunidad de Azure en Barcelona (@CAT_zure) donde mensualmente organiza meetups sobre esta tem\u00e1tica, tambi\u00e9n escribe en la revista CompartiMOSS as\u00ed como se le puede ver en los diversos eventos nacionales hablando sobre Azure. Actualmente es Team Leader en ENCAMINA y se puede decir que vive en la nube ;)","url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/author\/rbermejo\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/posts\/1627","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/users\/180"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/comments?post=1627"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/posts\/1627\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/media\/1637"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/media?parent=1627"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/categories?post=1627"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/tags?post=1627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}