<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Secret Manager - 東東 GCP 教學 - GCP 實戰講師</title>
	<atom:link href="https://dongdonggcp.com/tag/secret-manager/feed/" rel="self" type="application/rss+xml" />
	<link>https://dongdonggcp.com</link>
	<description>助你考取證照，轉職成功</description>
	<lastBuildDate>Sat, 22 Jun 2024 04:55:15 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://dongdonggcp.com/wp-content/uploads/2025/04/cropped-340838097_121391010914395_5443948698124160121_n-32x32.jpg</url>
	<title>Secret Manager - 東東 GCP 教學 - GCP 實戰講師</title>
	<link>https://dongdonggcp.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>[Cloud Run 教學] 實作 Cloud Run 讀取 Secret Manager 呈現新的網頁</title>
		<link>https://dongdonggcp.com/2024/06/22/cloud-run-read-secret-manager/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cloud-run-read-secret-manager</link>
					<comments>https://dongdonggcp.com/2024/06/22/cloud-run-read-secret-manager/#respond</comments>
		
		<dc:creator><![CDATA[東東]]></dc:creator>
		<pubDate>Sat, 22 Jun 2024 04:55:15 +0000</pubDate>
				<category><![CDATA[Google Cloud Platform]]></category>
		<category><![CDATA[Cloud Run]]></category>
		<category><![CDATA[GCP]]></category>
		<category><![CDATA[Image]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Secret Manager]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=6546</guid>

					<description><![CDATA[<p>Cloud Run 是一種，你只要做好 Container Image，<br />
上傳到 GCP Arfitact Registry 之後，就可以直接部署的好東西。<br />
但是如果你想要調整任何一點小地方的話，<br />
你就是要重做你的容器映像檔 Container Image，所以就很麻煩。<br />
這裡提供的方法是，把你的設定檔放在 Secret Manager，<br />
然後 Cloud Run 每次啟動時，會自動去讀 Secret，<br />
這樣就能把最新的設定檔吃進 Container，<br />
你就不用一天到晚一直重新建立 Container Image了。</p>
<p>The post <a href="https://dongdonggcp.com/2024/06/22/cloud-run-read-secret-manager/">[Cloud Run 教學] 實作 Cloud Run 讀取 Secret Manager 呈現新的網頁</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Cloud Run 是一種，你只要做好 Container Image，</p>



<p class="wp-block-paragraph">上傳到 GCP Arfitact Registry 之後，就可以直接部署的好東西，</p>



<p class="wp-block-paragraph">如果你只是要小量測試，</p>



<p class="wp-block-paragraph">你不用開一台 VM 來跑你的 Container，</p>



<p class="wp-block-paragraph">更不用開一堆機器去跑 Google Kubernetes Engine 浪費錢，</p>



<p class="wp-block-paragraph">Cloud Run 還可以 Scale  to Zero，</p>



<p class="wp-block-paragraph">就是沒人在用，它就一台機器都不用開，</p>



<p class="wp-block-paragraph">讓你幾乎不用花什麼錢，就可以測試你的 Container，超方便！</p>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">不過還是有些麻煩的地方，</p>



<p class="wp-block-paragraph">就是如果你想要調整任何一點小地方的話，</p>



<p class="wp-block-paragraph">你就是要重做你的容器映像檔 Container Image，</p>



<p class="wp-block-paragraph">通常指的是設定檔，所以就很麻煩。</p>



<p class="wp-block-paragraph">這裡提供的方法是，把你的設定檔放在 Secret Manager，</p>



<p class="wp-block-paragraph">然後 Cloud Run 每次啟動時，會自動去讀 Secret，</p>



<p class="wp-block-paragraph">這樣就能把最新的設定檔吃進 Container，</p>



<p class="wp-block-paragraph">你就不用一天到晚一直重新建立 Container Image了。</p>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">為了簡單示範，這裡直接把首頁檔案 index.html 做為範例，</p>



<p class="wp-block-paragraph">然後整個環境都用 Cloud Shell，讓你方便進入狀況。</p>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">首先建立一個預設的首頁版本，</p>



<p class="wp-block-paragraph">確認正常顯示之後，再做一個從 Secret 讀取出來的 index.html</p>



<p class="wp-block-paragraph">建立一個獨立的資料夾</p>



<p class="wp-block-paragraph">mkdir nginx-mount-secret-index</p>



<p class="wp-block-paragraph">cd nginx-mount-secret-index</p>



<p class="wp-block-paragraph">建立預設的 index.html</p>



<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta charset="UTF-8"&gt;
  &lt;title&gt;Docker nginx&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  Hello world from Default Nginx.
&lt;/body&gt;
&lt;/html&gt;</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" width="299" height="164" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.37.09.png?w=299" alt="" class="wp-image-6555" /></figure>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">再建立 nginx.conf</p>



<p class="wp-block-paragraph">vim nginx.conf</p>



<pre class="wp-block-code"><code>server{
  listen       80 default_server;
  listen       &#091;::]:80 default_server;
  server_name  lou.com;
  root         /usr/share/nginx/html;
  index        index.html;
  charset utf-8;
  access_log /var/log/nginx/access_log;
  error_log /var/log/nginx/error_log;
}</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" width="326" height="153" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.39.29.png?w=326" alt="" class="wp-image-6558" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.39.29.png 326w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.39.29-300x141.png 300w" sizes="(max-width: 326px) 100vw, 326px" /></figure>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">做 Dockerfile</p>



<p class="wp-block-paragraph">vim Dockerfile</p>



<pre class="wp-block-code"><code>FROM nginx
COPY index.html /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" width="388" height="58" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.41.18.png?w=388" alt="" class="wp-image-6561" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.41.18.png 388w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.41.18-300x45.png 300w" sizes="(max-width: 388px) 100vw, 388px" /></figure>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">我們現在看到資料夾內已經有 3 個檔案了：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="681" height="101" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.48.25.png?w=681" alt="" class="wp-image-6625" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.48.25.png 681w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.48.25-300x44.png 300w" sizes="(max-width: 681px) 100vw, 681px" /></figure>



<p class="wp-block-paragraph">接下來去 Artifact Registry 建立 Repository 名為 nginx</p>



<p class="wp-block-paragraph">現在看到一個 write-to-logging 是上次測試的，先不要看。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="744" height="412" src="https://dongdonggcp.com/wp-content/uploads/2024/06/nginx-repo.png?w=744" alt="" class="wp-image-6563" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/nginx-repo.png 744w, https://dongdonggcp.com/wp-content/uploads/2024/06/nginx-repo-300x166.png 300w" sizes="(max-width: 744px) 100vw, 744px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"> Cloud Shell 建立 Image，名字取 read-secret</p>



<p class="wp-block-paragraph">docker build -t asia-east1-docker.pkg.dev/dong-dong-gcp-3/nginx/read-secret .</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1523" height="177" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.45.35.png?w=1024" alt="" class="wp-image-6564" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.45.35.png 1523w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.45.35-300x35.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.45.35-1024x119.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.45.35-768x89.png 768w" sizes="(max-width: 1523px) 100vw, 1523px" /></figure>



<p class="wp-block-paragraph">試跑一下</p>



<p class="wp-block-paragraph">docker run -d -p 8080:80 asia-east1-docker.pkg.dev/dong-dong-gcp-3/nginx/read-secret</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1539" height="400" src="https://dongdonggcp.com/wp-content/uploads/2024/06/preview.png?w=1024" alt="" class="wp-image-6566" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/preview.png 1539w, https://dongdonggcp.com/wp-content/uploads/2024/06/preview-300x78.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/preview-1024x266.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/preview-768x200.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/preview-1536x399.png 1536w" sizes="(max-width: 1539px) 100vw, 1539px" /></figure>



<p class="wp-block-paragraph">看到顯示預設頁面了，好的開始！</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="939" height="187" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.47.12.png?w=939" alt="" class="wp-image-6567" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.47.12.png 939w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.47.12-300x60.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.47.12-768x153.png 768w" sizes="(max-width: 939px) 100vw, 939px" /></figure>



<p class="wp-block-paragraph">然後記得先 stop container，要不然待會 Cloud Shell 太忙碌會 Timeout 喔！</p>



<p class="wp-block-paragraph">查一下那個 Container ID </p>



<p class="wp-block-paragraph">docker ps</p>



<p class="wp-block-paragraph">停用那個 Container</p>



<p class="wp-block-paragraph">docker stop a3070c56ee38</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1318" height="99" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.57.53.png?w=1024" alt="" class="wp-image-6573" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.57.53.png 1318w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.57.53-300x23.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.57.53-1024x77.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.57.53-768x58.png 768w" sizes="(max-width: 1318px) 100vw, 1318px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">可以開始 Push 到 Artifact Registry</p>



<p class="wp-block-paragraph">docker push asia-east1-docker.pkg.dev/dong-dong-gcp-3/nginx/read-secret</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1188" height="214" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.58.40.png?w=1024" alt="" class="wp-image-6575" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.58.40.png 1188w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.58.40-300x54.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.58.40-1024x184.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.58.40-768x138.png 768w" sizes="(max-width: 1188px) 100vw, 1188px" /></figure>



<p class="wp-block-paragraph">接下來在 Artifact Registry 看到 Image 出現了</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="845" height="324" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.59.02.png?w=845" alt="" class="wp-image-6577" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.59.02.png 845w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.59.02-300x115.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.59.02-768x294.png 768w" sizes="(max-width: 845px) 100vw, 845px" /></figure>



<p class="wp-block-paragraph">那就準備部署到 Cloud Run</p>



<p class="wp-block-paragraph">gcloud run deploy read-secret &#8211;image asia-east1-docker.pkg.dev/dong-dong-gcp-3/nginx/read-secret &#8211;port=80 &#8211;allow-unauthenticated</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1388" height="130" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.06.45.png?w=1024" alt="" class="wp-image-6579" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.06.45.png 1388w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.06.45-300x28.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.06.45-1024x96.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.06.45-768x72.png 768w" sizes="(max-width: 1388px) 100vw, 1388px" /></figure>



<p class="wp-block-paragraph">然後它叫我選一個 Region，因為我 Cloud Shell 懶得設定</p>



<p class="wp-block-paragraph">看起來部署成功了</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="877" height="148" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.07.28.png?w=877" alt="" class="wp-image-6581" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.07.28.png 877w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.07.28-300x51.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.07.28-768x130.png 768w" sizes="(max-width: 877px) 100vw, 877px" /></figure>



<p class="wp-block-paragraph">你看到是第二版 read-secret-00002，因為前面有做錯 XD！</p>



<p class="wp-block-paragraph">去看 Cloud Run Console，點它的名字進去</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="599" height="283" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.08.17.png?w=599" alt="" class="wp-image-6583" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.08.17.png 599w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.08.17-300x142.png 300w" sizes="(max-width: 599px) 100vw, 599px" /></figure>



<p class="wp-block-paragraph">再點它的網址</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="667" height="235" src="https://dongdonggcp.com/wp-content/uploads/2024/06/cloud-run-url.png?w=667" alt="" class="wp-image-6585" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/cloud-run-url.png 667w, https://dongdonggcp.com/wp-content/uploads/2024/06/cloud-run-url-300x106.png 300w" sizes="(max-width: 667px) 100vw, 667px" /></figure>



<p class="wp-block-paragraph">看到預設網頁了</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="457" height="133" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.10.30.png?w=457" alt="" class="wp-image-6587" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.10.30.png 457w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.10.30-300x87.png 300w" sizes="(max-width: 457px) 100vw, 457px" /></figure>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">接下來要讓它讀 Secret 了，重點現在才開始。</p>



<p class="wp-block-paragraph">首先在&#8221;其他地方&#8221;建立一個新的 index.html</p>



<p class="wp-block-paragraph">回上一層目錄</p>



<p class="wp-block-paragraph">cd ..</p>



<p class="wp-block-paragraph">建立檔案</p>



<p class="wp-block-paragraph">vim index.html</p>



<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta charset="UTF-8"&gt;
  &lt;title&gt;Docker nginx&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  Hello world from Dongdong Secret Manager!!
&lt;/body&gt;
&lt;/html&gt;</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="381" height="170" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.52.25.png?w=381" alt="" class="wp-image-6570" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.52.25.png 381w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88ae58d8811.52.25-300x134.png 300w" sizes="(max-width: 381px) 100vw, 381px" /></figure>



<p class="wp-block-paragraph"> 寫好之後，把這個檔案拿去建立 Secret， </p>



<p class="wp-block-paragraph">我們直接用 gcloud 指令來建</p>



<p class="wp-block-paragraph">gcloud secrets create new-page &#8211;data-file=index.html</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="855" height="58" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.12.03.png?w=855" alt="" class="wp-image-6588" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.12.03.png 855w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.12.03-300x20.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.12.03-768x52.png 768w" sizes="(max-width: 855px) 100vw, 855px" /></figure>



<p class="wp-block-paragraph">建好去 Secret Manager 看看</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="616" height="349" src="https://dongdonggcp.com/wp-content/uploads/2024/06/secret-manager-menu.png?w=616" alt="" class="wp-image-6590" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/secret-manager-menu.png 616w, https://dongdonggcp.com/wp-content/uploads/2024/06/secret-manager-menu-300x170.png 300w" sizes="(max-width: 616px) 100vw, 616px" /></figure>



<p class="wp-block-paragraph">看到我們剛送過去的 Secret，名為 new-page</p>



<p class="wp-block-paragraph">點進去看看</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="776" height="302" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.13.41.png?w=776" alt="" class="wp-image-6592" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.13.41.png 776w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.13.41-300x117.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.13.41-768x299.png 768w" sizes="(max-width: 776px) 100vw, 776px" /></figure>



<p class="wp-block-paragraph">它會顯示目前這個 Secret 裡面有哪些版本，可以再進去看內容：</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1092" height="462" src="https://dongdonggcp.com/wp-content/uploads/2024/06/view-secret-value.png?w=1024" alt="" class="wp-image-6594" style="width:543px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/view-secret-value.png 1092w, https://dongdonggcp.com/wp-content/uploads/2024/06/view-secret-value-300x127.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/view-secret-value-1024x433.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/view-secret-value-768x325.png 768w" sizes="(max-width: 1092px) 100vw, 1092px" /></figure>



<p class="wp-block-paragraph">看到我們準備好的網頁檔 index.html！</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="595" height="294" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.15.32.png?w=595" alt="" class="wp-image-6596" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.15.32.png 595w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.15.32-300x148.png 300w" sizes="(max-width: 595px) 100vw, 595px" /></figure>



<p class="wp-block-paragraph">那我們試試看，能不能讓 Cloud Run 讀取這個新的首頁。</p>



<p class="wp-block-paragraph">我再部署一次，對了先設定一下 Region </p>



<p class="wp-block-paragraph">gcloud config set run/region asia-east1</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="744" height="60" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.21.59.png?w=744" alt="" class="wp-image-6599" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.21.59.png 744w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.21.59-300x24.png 300w" sizes="(max-width: 744px) 100vw, 744px" /></figure>



<p class="wp-block-paragraph">然後還有一點，你要讀 Secret，你的 Cloud Run 用的 Service Account 要有權限喔！(因為我剛部署時忘記，看到它報錯了 XD)</p>



<p class="wp-block-paragraph">再去建一下 Service Account</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="789" height="430" src="https://dongdonggcp.com/wp-content/uploads/2024/06/create-service-account.png?w=789" alt="" class="wp-image-6601" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/create-service-account.png 789w, https://dongdonggcp.com/wp-content/uploads/2024/06/create-service-account-300x163.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/create-service-account-768x419.png 768w" sizes="(max-width: 789px) 100vw, 789px" /></figure>



<p class="wp-block-paragraph">取名字叫做 read-secret</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="554" height="504" src="https://dongdonggcp.com/wp-content/uploads/2024/06/service-account-name.png?w=554" alt="" class="wp-image-6602" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/service-account-name.png 554w, https://dongdonggcp.com/wp-content/uploads/2024/06/service-account-name-300x273.png 300w" sizes="(max-width: 554px) 100vw, 554px" /></figure>



<p class="wp-block-paragraph">設定權限，給角色為 Secret Manager Secret Accessor</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="576" height="591" src="https://dongdonggcp.com/wp-content/uploads/2024/06/secret-accessor.png?w=576" alt="" class="wp-image-6604" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/secret-accessor.png 576w, https://dongdonggcp.com/wp-content/uploads/2024/06/secret-accessor-292x300.png 292w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<p class="wp-block-paragraph">所以我在部署的時候，要指定 Service Account，並且讓它使用 Secret：</p>



<p class="wp-block-paragraph">gcloud run  deploy read-secret &#8211;image asia-east1-docker.pkg.dev/dong-dong-gcp-3/nginx/read-secret  &#8211;service-account read-secret@dong-dong-gcp-3.iam.gserviceaccount.com &#8211;update-secrets=/usr/share/nginx/html/index.html=new-page:latest &#8211;port=80 &#8211;allow-unauthenticated</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1535" height="173" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.29.59.png?w=1024" alt="" class="wp-image-6606" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.29.59.png 1535w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.29.59-300x34.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.29.59-1024x115.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.29.59-768x87.png 768w" sizes="(max-width: 1535px) 100vw, 1535px" /></figure>



<p class="wp-block-paragraph">在 Cloud Run Console 上看到部署成功了，你可以看到我前面錯很多次 XD！</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="765" height="460" src="https://dongdonggcp.com/wp-content/uploads/2024/06/url-02.png?w=765" alt="" class="wp-image-6608" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/url-02.png 765w, https://dongdonggcp.com/wp-content/uploads/2024/06/url-02-300x180.png 300w" sizes="(max-width: 765px) 100vw, 765px" /></figure>



<p class="wp-block-paragraph">點 URL 看結果，真的讀到 Secret 了！</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="459" height="153" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.31.47.png?w=459" alt="" class="wp-image-6610" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.31.47.png 459w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.31.47-300x100.png 300w" sizes="(max-width: 459px) 100vw, 459px" /></figure>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">那現在重點來了，如果我馬上再去改那個 Secret 的網頁，</p>



<p class="wp-block-paragraph">會馬上更新嗎？</p>



<p class="wp-block-paragraph">vim index.html</p>



<p class="wp-block-paragraph">進去加 v2 字眼</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="408" height="217" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.33.07.png?w=408" alt="" class="wp-image-6612" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.33.07.png 408w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.33.07-300x160.png 300w" sizes="(max-width: 408px) 100vw, 408px" /></figure>



<p class="wp-block-paragraph">再送去 Secret Manager</p>



<p class="wp-block-paragraph">這裡用的是增加新的 version</p>



<p class="wp-block-paragraph">gcloud secrets versions add new-page &#8211;data-file=index.html</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="905" height="56" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.34.17.png?w=905" alt="" class="wp-image-6614" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.34.17.png 905w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.34.17-300x19.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.34.17-768x48.png 768w" sizes="(max-width: 905px) 100vw, 905px" /></figure>



<p class="wp-block-paragraph">我們再去 Secret Manager 看到 v2 了</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="815" height="526" src="https://dongdonggcp.com/wp-content/uploads/2024/06/secret-v2.png?w=815" alt="" class="wp-image-6616" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/secret-v2.png 815w, https://dongdonggcp.com/wp-content/uploads/2024/06/secret-v2-300x194.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/secret-v2-768x496.png 768w" sizes="(max-width: 815px) 100vw, 815px" /></figure>



<p class="wp-block-paragraph">馬上再點一次相同網頁 URL，看到 v2 的網頁了！</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="467" height="140" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.36.33.png?w=467" alt="" class="wp-image-6618" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.36.33.png 467w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.36.33-300x90.png 300w" sizes="(max-width: 467px) 100vw, 467px" /></figure>



<p class="wp-block-paragraph">我再打開 Cloud Logging 佐證一下：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1246" height="197" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.37.21.png?w=1024" alt="" class="wp-image-6620" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.37.21.png 1246w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.37.21-300x47.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.37.21-1024x162.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-22-e4b88be58d8812.37.21-768x121.png 768w" sizes="(max-width: 1246px) 100vw, 1246px" /></figure>



<p class="wp-block-paragraph">你可以看到我更新部署 Cloud Run 是第4版，</p>



<p class="wp-block-paragraph">接著我在 12:30 點擊網址，出現 Hello world from Dongdong Secret Manager !!</p>



<p class="wp-block-paragraph">然後我更新網頁 index.html，加 &#8220;v2&#8243;，並且送去 Secret Manager。</p>



<p class="wp-block-paragraph">最後在 12:35 再次點擊網址，出現 Hello world from Dongdong Secret Manager v2 !!</p>



<p class="wp-block-paragraph">過程中就只有更新 Secret，沒有重新建置 Container Image 喔！</p>



<p class="wp-block-paragraph">這樣用起來是不是非常方便呢？</p><p>The post <a href="https://dongdonggcp.com/2024/06/22/cloud-run-read-secret-manager/">[Cloud Run 教學] 實作 Cloud Run 讀取 Secret Manager 呈現新的網頁</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2024/06/22/cloud-run-read-secret-manager/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
