<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Devprime | Documentação – Google</title>
    <link>https://docs.Devprime.io/pt-br/deployment/google/</link>
    <description>Recent content in Google on Devprime | Documentação</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    
	  <atom:link href="https://docs.Devprime.io/pt-br/deployment/google/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Deployment: Google Run</title>
      <link>https://docs.Devprime.io/pt-br/deployment/google/google-run/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.Devprime.io/pt-br/deployment/google/google-run/</guid>
      <description>
        
        
        &lt;h3 id=&#34;introdução&#34;&gt;Introdução&lt;/h3&gt;
&lt;p&gt;A plataforma Devprime acelera a produtividade do desenvolvedor de software, oferecendo um projeto completo de arquitetura de software, componentes com comportamentos inteligentes, aceleradores para implementação de código e atualizações com novos recursos.&lt;/p&gt;
&lt;p&gt;Neste artigo, abordaremos o uso do Google Run, uma plataforma para containers serverless baseada no stack do Google Cloud. A implementação desse cenário utilizará um microsserviço baseado na plataforma &lt;a href=&#34;https://devprime.io&#34;&gt;Devprime&lt;/a&gt;. Este microsserviço será vinculado a uma conta ativa no Google Cloud, com um projeto contendo um Stream criado no Google Pub/Sub, um banco de dados no Google Cloud SQL (compatível com MySQL, PostgreSQL e SQL Server), um repositório no Google Artifact Registry e um novo serviço no Google Run.&lt;/p&gt;
&lt;p&gt;Durante este artigo, utilizaremos um microsserviço com uma regra de negócio relacionada a pedidos, e o banco de dados PostgreSQL estará integrado a uma fila criada no Google Pub/Sub. Demonstraremos os passos para criar o microsserviço e, em seguida, abordaremos as configurações necessárias para disponibilizá-lo no Google Run.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://docs.Devprime.io/images/deployment/google/cloud-run.png&#34; alt=&#34;Google Run&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cheklist e preperação do ambiente inicial:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abra uma conta na &lt;a href=&#34;https://devprime.io&#34;&gt;plataforma Devprime&lt;/a&gt; e adquira uma &lt;a href=&#34;https://devprime.io/pricing&#34;&gt;licença (Developer/Enterprise)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Instale uma versão atualizada do .NET (Linux, macOS e Windows)&lt;/li&gt;
&lt;li&gt;Instale e/ou atualize o Visual Studio Code e/ou o Visual Studio 2023 Community / Professional / Enterprise.&lt;/li&gt;
&lt;li&gt;Instale e/ou atualize o Docker (Para Windows, utilize o WSL2).&lt;/li&gt;
&lt;li&gt;Instale o Powershell ou utilize o Bash no Linux&lt;/li&gt;
&lt;li&gt;Instale e ative a versão mais nova do &lt;a href=&#34;../../../quick-start/install-devprime-cli/&#34;&gt;Devprime CLI&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Crie uma pasta para os seus projetos e defina as permissões de leitura e gravação.&lt;/li&gt;
&lt;li&gt;Consulte o artigo &amp;ldquo;&lt;a href=&#34;../../../quick-start/creating-the-first-microservice/&#34;&gt;Criando o primeiro microsserviço&lt;/a&gt;&amp;rdquo; para explorar os primeiros passos na plataforma Devprime.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Checklist Google Cloud&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uma conta ativa no &lt;a href=&#34;https://cloud.google.com&#34;&gt;Google Cloud&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Instale o &lt;a href=&#34;https://cloud.google.com/sdk/docs/install&#34;&gt;Google Cloud CLI&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Efetue o login pelo Google CLI (&lt;code&gt;gcloud init&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Crie um banco de dados PostgreSQL no &lt;a href=&#34;https://console.cloud.google.com/sql&#34;&gt;Google Cloud SQL&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Obtenha o IP e credenciais do PostgreSQL e libere o network 0.0.0.0/0 para acesso externo.&lt;/li&gt;
&lt;li&gt;Crie um tópico &amp;ldquo;oderevents&amp;rdquo; no Google Pub/Sub (&lt;a href=&#34;https://console.cloud.google.com/cloudpubsub)&#34;&gt;https://console.cloud.google.com/cloudpubsub)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Crie e obtenha json com as &lt;a href=&#34;https://console.cloud.google.com/apis/credentials&#34;&gt;credenciais as permissões de aceesso&lt;/a&gt; aos serviços.&lt;/li&gt;
&lt;li&gt;A criação e publicação no &lt;a href=&#34;https://console.cloud.google.com/artifacts&#34;&gt;Google Artifact Registry&lt;/a&gt; e um novo serviço no &lt;a href=&#34;https://console.cloud.google.com/run&#34;&gt;Google Run&lt;/a&gt; será feita pelo script.&lt;/li&gt;
&lt;li&gt;Você pode utilizar localmente um cliente PostgreSQL para validar acesso ao Google Cloud SQL.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Criando um novo microsserviço&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Criando o primeiro microsserviço&lt;br&gt;
&lt;code&gt;dp new ms-order --stream googlepubsub --state postgresql&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Adicionando uma regra de negócio de exemplo&lt;br&gt;
&lt;code&gt;dp marketplace order&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Inicializando e acelerando implementações do microsserviço&lt;br&gt;
&lt;code&gt;dp init&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Neste momento, o microsserviço destinado a este exemplo já está pronto para utilização em produção, sendo possível sua execução local. O próximo passo consistirá na adição das credenciais do Google Cloud ao microsserviço.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Adicionando credenciais no microsserviço&lt;/strong&gt;&lt;br&gt;
Esse microsserviço utilizará utilizando as credenciais para acesso ao Google PubSub e Google Cloud SQL e devem ser informadas no arquivo de configuração &lt;code&gt;src/App/appsettings.json&lt;/code&gt; conforme padrão definido no &lt;a href=&#34;../../../settings/stream/google-pub-sub/&#34;&gt;Adapter de Stream com o Google PubSub&lt;/a&gt; e no &lt;a href=&#34;../../../settings/state/db/postgresql/&#34;&gt;Adapter de State com o PostgreSQL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Abra no Visual Studio Code&lt;br&gt;
&lt;code&gt; code src/App/appsettings.json&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Localize as configurações do Adapter ed Stream e inclua as credenciais obtidas&lt;br&gt;
no json&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;
&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 1
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 2
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 3
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 4
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 5
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 6
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 7
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 8
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 9
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;10
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;11
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;12
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;13
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;14
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;15
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;16
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;17
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;18
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;19
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;20
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;21
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;DevPrime_Stream&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;:&lt;/span&gt; [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Alias&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Stream1&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Enable&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Default&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;StreamType&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;GooglePubSub&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Project_ID&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Private_Key_ID&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Private_Key&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Client_Email&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Client_ID&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Auth_URI&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Token_URI&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Auth_Provider_x509_Cert_Url&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Client_X509_Cert_Url&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Retry&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;3&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Fallback&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;State1&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Threads&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;10&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;Subscribe&amp;#34;&lt;/span&gt;: []
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ]&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Localize a chave Adapter de State e coloque as credenciais de acesso ao Google Cloud SQL&lt;br&gt;
como o  endereço IP a ser informado no Host, usuário e senha.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;
&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 1
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 2
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 3
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 4
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 5
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 6
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 7
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 8
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 9
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;10
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;11
&lt;/span&gt;&lt;span style=&#34;white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;DevPrime_State&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;:&lt;/span&gt; [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;enable&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;alias&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;State1&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;dbtype&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;postgresql&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt; : &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;db&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;connection&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Host=localhost;Username=postgres;Password=LltF8Nx*yo;Database=ms-order&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;timeout&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;5&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;retry&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;durationofbreak&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;45&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ]&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Aplicando estrutura do banco de dados&lt;/strong&gt;&lt;br&gt;
O banco de dados nesse cenário é o PostgreSQL e antes de executar o microsserviço é fundamental executar um script para criação das tabelas no banco de dados necessárias ao microsserviço. Você pode utilizar a ferramenta do Devprime CLI para gerar os arquivos SQL e aplicar manualmente ou aplicar diretamente no banco de dados.&lt;/p&gt;
&lt;p&gt;Execute o comando para aplicar no banco de dados.&lt;br&gt;
&lt;code&gt;dp state apply state1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exportando configurações para publicação no Google Run&lt;/strong&gt;&lt;br&gt;
O &lt;a href=&#34;../../../cli/&#34;&gt;Devprime CLI&lt;/a&gt; oferece um utilitário para facilitar a criação de um script com o objetivo de realizar a publicação da imagem Docker do microsserviço no repositório privado do Google Artifact Registry e, em seguida, a criação de um novo serviço no Google Run.&lt;/p&gt;
&lt;p&gt;Execute o comando export&lt;br&gt;
&lt;code&gt;dp export googlerun&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Após o export, serão criados dois arquivos (Powershell ou Bash) que contêm o script para executar a publicação no Google Cloud.&lt;/p&gt;
&lt;p&gt;Escolha o arquivo de preferência e edite-o usando o Visual Studio Code, alterando as configurações iniciais, como nome do projeto no Google Cloud, nome da aplicação e repositório.&lt;/p&gt;
&lt;p&gt;Abra pelo Visual Studio Code&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;code .devprime/google/googlerun.ps1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;code .devprime/google/googlerun.sh&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Executando o script&lt;/strong&gt;&lt;br&gt;
Antes de rodar o script, verifique se o Docker está em execução no seu ambiente, se você está logado nele e se o CLI do Google Cloud está instalado e ativo. O script deve ser executado a partir do diretório raiz do projeto.&lt;/p&gt;
&lt;p&gt;Execute um dos comandos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt; .\.devprime\google\googlerun.ps1&lt;/code&gt; (Windows)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.devprime/google/googlerun.sh&lt;/code&gt; (MacOS and Linux)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Considerações finais&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Neste exemplo, você pode conferir como é fácil desenvolver um novo microsserviço utilizando a plataforma Devprime e seus aceleradores, seguido pelo processo de publicação no Google Cloud em questão de segundos.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Substitua esse script por um processo de DevOps, automatizando o procedimento.&lt;/li&gt;
&lt;li&gt;No ambiente de produção, implemente medidas de segurança, como um API Gateway e um vault para armazenamento seguro de credenciais.&lt;/li&gt;
&lt;li&gt;Adote os procedimentos isolando a rede para export apenas os serviços públicos.&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
