跳到主要內容

發表文章

目前顯示的是有「Azure VNet」標籤的文章

【Azure OpenAI】o1 模型與 2024-09-01-preview API

距離上篇在 Early Access Playground 試用 o1 模型後又過了兩週,今天終於等到 API 開放使用啦!本篇將紀錄如何使用 Python SDK 存取 o1 模型。 系列文章 【Azure OpenAI】快速試用 o1 模型 模型佈署 在先前開放的 Early Access Playground 中使用 o1 是不需要另外佈署模型的,不過回到使用 API 來存取 o1 模型,就需要像之前的模型一樣先進行佈署才能使用,相信大家都很熟悉了。 使用 Python SDK 一樣使用熟悉的 openai 套件: 2024-09-01-preview 初始化的方式與先前模型都一樣,需要注意的是 o1 模型目前只能使用最新的 API 版本 2024-09-01-preview 來訪問。 Chat Completions 將 model 填入 o1-preview ,或是你的模型佈署名稱, messages 也一樣是歷史對話堆疊的 List。 回應如下: 查看 Token 使用量 內建 Chain of Thought 的 o1 比起過往的模型會消耗較多的 Token,因此我們特別把 Token 使用量拉出來看。 回應如下: 其中 prompt_tokens 、 completion_tokens 、 total_tokens 在先前的 API 就已經存在了,分別代表Token 的 Input、Output 與總使用量,而在新的 completion_tokens_details 中可以看到  reasoning_tokens 使用了 320 個 Tokens,居然佔了總輸出 Token 的 80% 以上! 控制 Token 成本 已往我們可以使用  max_tokens 參數來控制 Token 的用量,但在 o1 模型中棄用了 max_tokens ,取而代之的是使用  max_completion_tokens 參數,來看看這段程式碼: 回應如下: 沒東西?那再看一次 Token 量。 回應如下: Token 居然是有被使用的! 這表示 max_completion_tokens 並不像過往使用  max_tokens 這麼簡單,先前在回應遇到...

【Azure VNet】虛擬網路中的專用端點

 在 Azure 中提供了 Azure VNet Service Endpoint 與 Azure Private Endpoint 兩項服務,用來確保其他 Azure 服務僅能透過 VNet 中的流量訪問,藉此將這些 Azure 服務保護在 VNet 中以提高安全性。 Service Endpoint 與 Private Endpoint 都可以使 VNet 中的私人 IP 到達其他 Azure 服務,而不需要使用到公用 IP,而兩者也存在部分差異,本系列包含以下四篇文章,以最常用的儲存服務 Azure Storage Account 為例,簡單講解這兩項服務。 【Azure VNet】虛擬網路中的服務端點 【Azure VNet】使用服務端點原則篩選流量 【Azure VNet】虛擬網路中的專用端點(本篇) 【Azure VNet】服務端點 vs 專用端點 架構說明 以下 Demo 架構供 VNet 中的 VM 透過 Private Endpoint 訪問 Azure Storage : 對停用外網訪問的 Azure Storage 建立 Private Endpoint 連線。 VNet 中的 VM 使用私人 IP 訪問 Azure Storage。 環境建立 如上述架構圖我們總共需要四項服務,而其中的 VNet、VM 和 Storage 的設定都與前一篇介紹 Service Endpoint 時相同,可以直接參考下列連結喔! 另外一個提醒,架構中 VM 與 Private Endpoint 的 IP 如果沒有額外處理,預設建立時都會是動態分配的,如果想要完全跟著圖中的 10.1.1.4 與 10.1.1.5 設定,那就必須留意建立的順序。 相關連結: 【Azure VNet】虛擬網路中的服務端點 調整儲存體帳戶的網路設定 以上都建立完成後我們先進入 Storage,前篇文章也有提到 Storage 在剛建立起來時,對於公網的預設存取是完全開放的,而在使用 Private Endpoint 時公用網路存取是可以完全停用的。 完全停用公用網路存取 建立 Private Endpoint 接著需要建立 Private Endpoint 來連線已經停用網路存取的 Storage,繼續停留在 Storage 的「網路」頁...

【Azure VNet】使用服務端點原則篩選流量

在 Azure 中提供了 Azure VNet Service Endpoint 與 Azure Private Endpoint 兩項服務,用來確保其他 Azure 服務僅能透過 VNet 中的流量訪問,藉此將這些 Azure 服務保護在 VNet 中以提高安全性。 Service Endpoint 與 Private Endpoint 都可以使 VNet 中的私人 IP 到達其他 Azure 服務,而不需要使用到公用 IP,而兩者也存在部分差異,本系列包含以下四篇文章,以最常用的儲存服務 Azure Storage Account 為例,簡單講解這兩項服務。 【Azure VNet】虛擬網路中的服務端點 【Azure VNet】使用服務端點原則篩選流量(本篇) 【Azure VNet】虛擬網路中的專用端點 【Azure VNet】服務端點 vs 專用端點 前情提要 在前一篇中我們完成了 Service Endpoint 的設定,讓只有特定的 VNet 發起的流量才能訪問 Storage Account,而實際上我們做了什麼?對於來源,我們在 VNet 上啟用了對 Storage Account 的 Service Endpoint,對於目標端,我們設定 Storage Account 只接受特定的 VNet 流量訪問。 先將注意力放在來源端的 VNet 中,啟用了對 Storage Account 的 Service Endpoint 事實上允許了 VNet 中的 VM 能訪問任意的 Storage Account,而不是侷限特定的 Storage Account 上,這帶來了一定程度的資安問題。 因此在這種情況下,可以搭配服務端點原則來篩選流量,新增服務端點原則後的架構圖如下: 建立服務端點原則 服務端點原則目前被拆出成一個獨立的資源,就像平常在建立資源一樣,需要切換到服務端點原則的頁面下點擊建立。 建立服務端點原則 給好名稱與資源群組後,切換到「原則定義」下點擊「新增資源」。 指定 Storage Account 在範圍部分有三種維度可以選擇,分別是「訂用帳戶中的所有帳戶」、「資源群組中的所有帳戶」與「單一帳戶」,再根據自己的需求設定就好。 這邊設定「單一帳戶」並指定好 Storage Account,接著直接建立就可以了。 在子...

【Azure VNet】虛擬網路中的服務端點

在 Azure 中提供了 Azure VNet Service Endpoint 與 Azure Private Endpoint 兩項服務,用來確保其他 Azure 服務僅能透過 VNet 中的流量訪問,藉此將這些 Azure 服務保護在 VNet 中以提高安全性。 Service Endpoint 與 Private Endpoint 都可以使 VNet 中的私人 IP 到達其他 Azure 服務,而不需要使用到公用 IP,而兩者也存在部分差異,本系列包含以下四篇文章,以最常用的儲存服務 Azure Storage Account 為例,簡單講解這兩項服務。 【Azure VNet】虛擬網路中的服務端點(本篇) 【Azure VNet】使用服務端點原則篩選流量 【Azure VNet】虛擬網路中的專用端點 【Azure VNet】服務端點 vs 專用端點 架構說明 以下 Demo 架構供 VNet 中的 VM 透過 Service Endpoint 訪問 Azure Storage : Azure Storage 停用外網訪問,並允許僅有特定的 Subnet 才能訪問。 保護在 VNet 中的 VM 到達 Azure Storage 時,使用 VNet 中的私人 IP 作為來源 IP。 建立虛擬網路 首先建立最基本的 VNet,沒有太多特別需要注意的地方,這邊在資源群組 charlie-test 中建立名為 charlie-test-vent 的虛擬網路。 建立虛擬網路 進到「IP 位址」頁籤,根據架構圖中的 IP 規劃將 VNet 設定為 10.1.0.0/16,其中包含一個 10.1.1.0/24 的子網段。 設定 IP 位址 建立虛擬機器 VM 「基本」頁籤中選擇 Windows 方便後續的測試。 建立 Windows VM 網路部分需要稍微注意,子網路記得選到剛剛建立的 VNet 與 Subnet,另外也需要建立公用 IP,方便後續測試直接 RDP 連線進去 VM。 設定 VM 網路 建立 Azure Storage Account 最後就是主角的 Azure Storage Account,不過這邊沒有任何需要特別設定的項目,直接全部預設值建立起來就可以了! 建立儲存體 啟用服務端點 以上服務都建立完成後,就可以來啟用服務端點了,找到...

【Azure Firewall】使用 Azure 防火牆限制出入站流量(下)

接續前一篇,我們會繼續完成出站與入站的流量設定,還沒看過上一篇的朋友建議從以下連結開始觀看。 相關連結: 【Azure Firewall】使用 Azure 防火牆限制出入站流量(上) 架構說明 回顧這次要建立的架構圖,詳細說明請查看上篇。 本次 Demo 架構圖 建立 Azure VM 首先我們需要先把模擬內部環境的 Azure VM 搭起來,不過因為 VM 不是本篇的重點,這邊就快速提幾個需要注意的設定就好。 影像選擇 Windows 比較方便做測試。 Windows 10 Administrator 帳號密碼牢記,RDP 3389 不要改。 牢記帳號密碼 網路設定最重要,記得將 VM 放入上篇建立的子網路中。另外這邊 VM 不需要公用 IP,因為我們的入站連線會由 Firewall 走內部網路進入。 VM 不需要公用 IP 設定完成等待 VM 建立完成後,一樣需要記下 VM 的內部 IP,以我的 VM 是 10.0.1.4。 記下 VM 的內部 IP 設定 DNAT 規則 接著我們從入站流量開始設定,在 Azure Firewall 中是使用 DNAT 規則來管理入站流量。找到我們前一篇中建立 Azure Firewall 時順帶建立的 Firewall Policy,選到左側的「DNAT 規則」點擊「新增規則集合」。 新增規則集合 隨意填入名稱後,其他設定保持域設選項,而規則部分需要依序完成以下設定: 來源類型:IP 位址。 來源:*,測試使用不限制訪問的來源。 通訊協定:TCP。 目的地連接埠:3389。 目的地 (防火牆 IP 位址): 輸入剛剛記下的防火牆公用 IP 。 已翻譯的類型:IP 位址。 已翻譯的位址或 FQDN: 輸入剛剛記下的 VM 私人 IP 。 已轉譯連接埠:3389。 大約需要 5 分鐘,設定才會生效。 設定 DNAT 規則 設定應用程式規則 再來是出站流量,因為會透過 FQDN 方式訪問 Google 網頁,這邊需要設定一條「允許」的「應用程式規則」,設定方式大同小異,而規則部分如下: 來源類型:IP 位址。 來源:*,限制所有出站來源。 通訊協定:http, https。 目的地類型:FQDN。 目的地: www.google.com 。 一樣大約需要 5 分鐘,...

【Azure Firewall】使用 Azure 防火牆限制出入站流量(上)

原先在工作上大多只接觸到應用層的服務,所以前期文章大概也都是這個領域,不過越來越深入(越花越多錢)後,發現踩的坑越來越多都跟網路有關,尤其在公司內還涉及到更多雲地網路有沒有通的麻煩事,所以近期也開始看一些網路的東西,同時順便紀錄一下學習的過程。 從一個常見的場景開始,在限制外網訪問的環境中開通幾個白名單網站,一般可能是自己架設的外部網頁,對於開發機可能需要開通 Azure Portal 或特定語言的套件庫,而對於生產環境可能需要訪問第三方服務, 至於由外部訪問內部服務,也有限制訪問來源、方式或阻擋惡意外部流量的需求。不論是出站還是入站,都可以透過 Azure Firewall 設定規則來滿足限制存取的需求,以下一個簡單的 Demo 情境。 架構說明 本次 Demo 架構如下圖,順帶一提,這張圖是由前篇介紹的 Draw.io 繪製,有興趣可以看看下方連結。 簡化架構的單一 VNet,其中包含兩個 Subnet,分別佈署 Azure Firewall 與 Azure VM,用於模擬受到保護的內部環境。 外部訪問方式僅接受透過 RDP 連線 Azure VM,同時訪問的流量不會直達 Azure VM,而是一律先經過 Azure Firewall 才能轉到後方。 Azure VM 所在的內部環境,只允許對外存取 www.google.com。 以上,開工! 相關連結: 【Azure】Draw.io 線上架構圖繪製工具!完全免費! 本次 Demo 架構圖 建立 VNet 與 Subnet 所有服務建立的方式都一樣,在 Portal 上搜尋中文服務名稱:虛擬網路,點擊建立。 建立虛擬網路 第一個「基本」頁籤中可以建一個單獨的資源群組出來,這次練習建出來的服務都丟到同個資源群組就好,再來給 VNet 一個喜歡的名稱。 設定 VNet 的資源群組與名稱 接著到第三個「IP 位址」頁籤設定 IP,VNet 可以保持域設的 10.0.0.0/16 就好,而子網設定如下: WorkloadSubnet:10.0.1.0/24,佈署 Azure VM 使用。 AzureFirewallSubnet:10.0.2.0/26,佈署 Azure Firewall 使用。 設定 VNet 的 IP 範圍 最後到「檢閱+建立」,再點擊「建立」,就完成  VNet...