{"id":4020,"date":"2017-09-15T11:54:46","date_gmt":"2017-09-15T18:54:46","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=4020"},"modified":"2025-06-13T20:57:01","modified_gmt":"2025-06-14T03:57:01","slug":"azure-functions-lazy-initialization-couchbase-server","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/azure-functions-lazy-initialization-couchbase-server\/","title":{"rendered":"Azure Functions e Lazy Initialization com o Couchbase Server"},"content":{"rendered":"<div class=\"paragraph\">\n<p>O Azure Functions ainda \u00e9 novo para mim, e estou aprendendo \u00e0 medida que avan\u00e7o. Escrevi em um blog sobre minha incurs\u00e3o no Azure Functions com o Couchbase <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/azure-functions-couchbase-server\/\">mais de um m\u00eas atr\u00e1s<\/a>. Logo depois de publicar isso, recebi alguns coment\u00e1rios \u00fateis sobre a maneira como eu estava instanciando um cluster (e um bucket) do Couchbase.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Eu havia assumido (erroneamente) que n\u00e3o havia como salvar o estado entre as chamadas do Azure Function. Foi por isso que criei um <code>GetCluster()<\/code> que era chamado toda vez que a fun\u00e7\u00e3o era executada. No entanto, a inicializa\u00e7\u00e3o de um m\u00e9todo do Couchbase <code>Aglomerado<\/code> \u00e9 uma opera\u00e7\u00e3o cara. Quanto menos vezes voc\u00ea o instanciar, melhor.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><em>Voc\u00ea pode acompanhar a atualiza\u00e7\u00e3o do <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/080AzureFunctionsFollowUp\/src\/CouchbaseWithAzureFunctions\">c\u00f3digo-fonte para esta postagem de blog no Github<\/a>.<\/em><\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_static_state\">Estado est\u00e1tico<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Tive dificuldade em encontrar documenta\u00e7\u00e3o sobre a possibilidade de usar um <code>est\u00e1tico<\/code> para reutiliza\u00e7\u00e3o entre chamadas de fun\u00e7\u00e3o. Suponho que eu deveria ter feito experimentos, como <a href=\"https:\/\/markheath.net\/post\/sharing-state-between-azure-functions\">colega Microsoft MVP Mark Heath<\/a> fez. Em vez disso, eu <a href=\"https:\/\/stackoverflow.com\/questions\/46162151\/azure-functions-singleton-for-expensive-object\">fez a pergunta ao StackOverflow<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Em resumo: sim. A <code>Aglomerado<\/code>O valor de um valor, instanciado e salvo em um membro est\u00e1tico, pode ser reutilizado entre chamadas de fun\u00e7\u00e3o. De acordo com a postagem de Mark acima, n\u00e3o h\u00e1 garantia de quanto tempo esse valor sobreviver\u00e1. Mas essa \u00e9 uma troca esperada que voc\u00ea faz ao adotar a abordagem \"sem servidor\".<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_lazy_initializing_within_azure_functions\">Inicializa\u00e7\u00e3o pregui\u00e7osa no Azure Functions<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>O simples uso de um membro est\u00e1tico funcionaria, mas n\u00e3o \u00e9 seguro para threads. H\u00e1 algumas maneiras de resolver esse problema, mas uma maneira f\u00e1cil que est\u00e1 incorporada diretamente na estrutura do .NET \u00e9 usar <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/framework\/performance\/lazy-initialization\">Inicializa\u00e7\u00e3o pregui\u00e7osa<\/a> com <code>Pregui\u00e7oso<\/code>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/09\/08001-lazy-initialization-in-azure-functions.png\" alt=\"Lazy Initialization in Azure Functions\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Primeiro, removi o <code>GetBucket<\/code> e <code>GetCluster<\/code> m\u00e9todos. Em seguida, criei um <code>Pregui\u00e7oso<\/code> propriedade para substitu\u00ed-los.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">private static readonly Lazy&lt;IBucket&gt; Bucket = new Lazy&lt;IBucket&gt;(() =&gt;\r\n{\r\n    var uri = ConfigurationManager.AppSettings[\"couchbaseUri\"];\r\n    var bucketName = ConfigurationManager.AppSettings[\"couchbaseBucketName\"];\r\n    var bucketPassword = ConfigurationManager.AppSettings[\"couchbaseBucketPassword\"];\r\n    var cluster = new Cluster(new ClientConfiguration\r\n    {\r\n        Servers = new List&lt;Uri&gt; { new Uri(uri) }\r\n    });\r\n    return cluster.OpenBucket(bucketName, bucketPassword);\r\n});<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Criei apenas uma \u00fanica propriedade para um bucket, pois \u00e9 tudo de que preciso para este exemplo. Mas se voc\u00ea precisar usar o cluster, poder\u00e1 facilmente criar sua pr\u00f3pria propriedade <code>Pregui\u00e7oso<\/code> propriedade. (Quando voc\u00ea tem um cluster, obter um bucket \u00e9 uma opera\u00e7\u00e3o relativamente barata).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_using_a_lazy_property\">Usando uma propriedade Lazy<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Quando voc\u00ea instanciar um <code>Pregui\u00e7oso<\/code> voc\u00ea o fornece com um lambda de inicializa\u00e7\u00e3o. Esse lambda n\u00e3o ser\u00e1 executado at\u00e9 que o objeto <code>Valor<\/code> \u00e9 de fato chamada pela primeira vez.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">var lazyObject = new Lazy&lt;string&gt;(() =&gt;\r\n{\r\n    \/\/ this code won't be called until 'lazyObject.Value' is referenced\r\n    \/\/ for the first time\r\n    return \"I'm lazy!\";\r\n});<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Por exemplo, observe o <code>Valor<\/code> entre <code>Balde<\/code> e <code>GetAsync<\/code> na vers\u00e3o atualizada do meu Azure Functions:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">var doc = await Bucket.Value.GetAsync&lt;MyDocument&gt;(id);<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Se essa for a primeira vez <code>Valor<\/code> for usado, o cluster ser\u00e1 inicializado. Caso contr\u00e1rio, ele usar\u00e1 o cluster j\u00e1 inicializado (tente experimentar com um <code>Guia<\/code> em vez de um <code>Balde<\/code>).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_summary\">Resumo<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>O estado pode ser salvo entre as chamadas da Fun\u00e7\u00e3o do Azure usando um membro est\u00e1tico. Certifique-se de que ele seja thread-safe (usando <code>Pregui\u00e7oso<\/code> ou algo do g\u00eanero). N\u00e3o fa\u00e7a nenhuma suposi\u00e7\u00e3o sobre quanto tempo esse objeto permanecer\u00e1 no local.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Mais alguma coisa que eu tenha perdido? Voc\u00ea est\u00e1 usando o Azure Functions com o Couchbase? Gostaria muito de ouvir sua opini\u00e3o. Por favor, deixe um coment\u00e1rio abaixo ou me envie um ping em <a href=\"https:\/\/twitter.com\/mgroves\">Twitter @mgroves<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Azure Functions are still new to me, and I\u2019m learning as I\u2019m going. I blogged about my foray into Azure Functions with Couchbase over a month ago. Right after I posted that, I got some helpful feedback about the way [&hellip;]<\/p>","protected":false},"author":71,"featured_media":3934,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,10127,1816],"tags":[1245,1673,1772],"ppma_author":[8937],"class_list":["post-4020","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-c-sharp","category-couchbase-server","tag-cloud","tag-microsoft-azure","tag-visual-studio"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Lazy initializing within Azure Functions - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"A Couchbase cluster is an expensive object to create. You can lazily instantiate and share between Azure Functions calls.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/azure-functions-lazy-initialization-couchbase-server\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Azure Functions and Lazy Initialization with Couchbase Server\" \/>\n<meta property=\"og:description\" content=\"A Couchbase cluster is an expensive object to create. You can lazily instantiate and share between Azure Functions calls.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/azure-functions-lazy-initialization-couchbase-server\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-15T18:54:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:57:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"922\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\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:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Azure Functions and Lazy Initialization with Couchbase Server\",\"datePublished\":\"2017-09-15T18:54:46+00:00\",\"dateModified\":\"2025-06-14T03:57:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/\"},\"wordCount\":453,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"keywords\":[\"cloud\",\"Microsoft Azure\",\"Visual Studio\"],\"articleSection\":[\".NET\",\"C#\",\"Couchbase Server\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/\",\"name\":\"Lazy initializing within Azure Functions - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"datePublished\":\"2017-09-15T18:54:46+00:00\",\"dateModified\":\"2025-06-14T03:57:01+00:00\",\"description\":\"A Couchbase cluster is an expensive object to create. You can lazily instantiate and share between Azure Functions calls.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"width\":1920,\"height\":922,\"caption\":\"National Cloud Database Day\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Azure Functions and Lazy Initialization with Couchbase Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Lazy initializing within Azure Functions - The Couchbase Blog","description":"A cria\u00e7\u00e3o de um cluster do Couchbase \u00e9 um objeto caro. Voc\u00ea pode instanciar e compartilhar de forma pregui\u00e7osa entre as chamadas do Azure Functions.","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:\/\/www.couchbase.com\/blog\/pt\/azure-functions-lazy-initialization-couchbase-server\/","og_locale":"pt_BR","og_type":"article","og_title":"Azure Functions and Lazy Initialization with Couchbase Server","og_description":"A Couchbase cluster is an expensive object to create. You can lazily instantiate and share between Azure Functions calls.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/azure-functions-lazy-initialization-couchbase-server\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-09-15T18:54:46+00:00","article_modified_time":"2025-06-14T03:57:01+00:00","og_image":[{"width":1920,"height":922,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","type":"image\/jpeg"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Azure Functions and Lazy Initialization with Couchbase Server","datePublished":"2017-09-15T18:54:46+00:00","dateModified":"2025-06-14T03:57:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/"},"wordCount":453,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","keywords":["cloud","Microsoft Azure","Visual Studio"],"articleSection":[".NET","C#","Couchbase Server"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/","url":"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/","name":"Lazy initializing within Azure Functions - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","datePublished":"2017-09-15T18:54:46+00:00","dateModified":"2025-06-14T03:57:01+00:00","description":"A cria\u00e7\u00e3o de um cluster do Couchbase \u00e9 um objeto caro. Voc\u00ea pode instanciar e compartilhar de forma pregui\u00e7osa entre as chamadas do Azure Functions.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","width":1920,"height":922,"caption":"National Cloud Database Day"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-lazy-initialization-couchbase-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Azure Functions and Lazy Initialization with Couchbase Server"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"Matthew Groves","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"Matthew D. Groves \u00e9 um cara que adora programar. N\u00e3o importa se \u00e9 C#, jQuery ou PHP: ele enviar\u00e1 solicita\u00e7\u00f5es de pull para qualquer coisa. Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90. Atualmente, ele trabalha como gerente s\u00eanior de marketing de produtos da Couchbase. Seu tempo livre \u00e9 passado com a fam\u00edlia, assistindo aos Reds e participando da comunidade de desenvolvedores. Ele \u00e9 autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","author_category":"","last_name":"Groves","first_name":"Matthew","job_title":"","user_url":"https:\/\/crosscuttingconcerns.com","description":"Matthew D. Groves \u00e9 um cara que adora programar.  N\u00e3o importa se \u00e9 C#, jQuery ou PHP: ele enviar\u00e1 solicita\u00e7\u00f5es de pull para qualquer coisa.  Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90.  Atualmente, ele trabalha como gerente s\u00eanior de marketing de produtos da Couchbase. Seu tempo livre \u00e9 passado com a fam\u00edlia, assistindo aos Reds e participando da comunidade de desenvolvedores.  Ele \u00e9 autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/4020","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=4020"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/4020\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/3934"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=4020"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=4020"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=4020"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=4020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}