簡體   English   中英

堅持基於 Linux 消費的 Azure 函數的 CI/CD 部署

[英]Stuck with CI/CD deploy of Linux Consumption based Azure Function

我制作了一個 Azure 函數(Python),托管在 Linux 消費計划中。 App Engine 位於開發資源組中。 我現在希望能夠將它(以及后續更改)部署到 staging 和 prod 資源組。 有關執行此操作的許多不同方法的文檔讓我感到困惑,尤其是大多數部署方法(部署槽...)在 Linux Consumption 計划中不可用,而我對 Premium 計划沒有用處。 我想設置一個版本控制,但我無法將我的 Azure 函數鏈接到 Azure DevOps 存儲庫(部署中心已禁用,灰色)。

你會怎么做? 理想情況下使用 Azure DevOps。

提前致謝

首先,您需要確保您有權訪問有問題的訂閱,以及資源組和函數應用。

Azure 開發運營

建造
在 DevOps 上,對於包含存儲庫的項目,轉到 Pipelines > Pipelines(以紅色突出顯示)。
在右上角,您應該能夠看到並單擊“新建管道”。 我將在這個答案中做一個“Azure Repos Git (YAML)”管道,所以你不妨一起去。 如果您有任何其他特定偏好,那么只需確保相應地更改需要更改的內容。 我們的目標基本上只是從我們的構建過程中發布一個工件,然后由“發布管道”使用。

繼續前進,對於構建管道,選擇“Azure Repos Git (YAML)”將提示您選擇項目中的哪個存儲庫,它將 1) 包含我們將要創建的 YAML 文件,以及 2) 擁有源代碼可用於管道。 無需贅述,也可以將所有 yaml-pipeline 文件放入其自己的存儲庫中,然后(通過資源)包含包含源代碼的存儲庫。

下一步是“配置您的管道”。 實際上有一個“Python Function App to Linux on Azure”模板可用。 但是,它也包含部署階段,我通常總是將所有與部署相關的內容放入我的“發布管道”中。 不過,就目前而言,我選擇了“入門管道”。
實際上會彈出一個在線編輯器。 在編輯器的頂部,您將看到存儲庫的名稱和“azure-pipelines.yml”。 單擊“azure-pipelines.yml”以重命名管道以及 yaml 文件的名稱,該文件最終將位於存儲庫的根目錄中。
我已經提供了上述模板的一個版本,歸結為必要的內容,可在此處獲得 只需刪除“啟動管道”中已有的任何內容,然后將 pastebin 的內容復制粘貼到管道中。

當您保存管道時,您可能希望將其放入一個不同的分支,而不是您的主分支(它會提示您輸入),然后創建一個 PR。 管道工作時接受 PR(您可以使用新創建的分支運行管道)。 當構建管道成功運行且沒有錯誤時,如果您導航到成功運行的概述(以紅色突出顯示),您應該能夠看到已發布的工件。 您可以單擊並檢查內容以檢查它們是否符合預期。

構建管道概述

釋放
轉到“發布”(以綠色突出顯示,第一張圖片)。 從這里,您應該能夠看到並單擊“+ 新建”按鈕。

添加新的發布管道

它會立即提示您選擇您想要的工作類型。 只需單擊“空作業”即可開始。
首先選擇要消耗的神器。 單擊左側的“添加工件”框。 從下拉列表中找到您剛剛創建的管道。 您可以配置要使用的版本(如果您有某些偏好),並為工件指定一個別名,以便在整個發布管道中使用。
接下來是設置您的階段。 您需要 3 個階段:一個開發階段,一個分期階段,最后一個生產階段。 目前你應該有一個“第一階段”。 如果您將鼠標懸停在舞台上方,您可以在框下方看到一個“+”號。 單擊它以添加階段。 再次選擇空作業。 對新創建的舞台框重復此操作(懸停,單擊 +,添加空作業)。
你現在應該有這樣的東西:

分期

讓我們從配置階段 1 開始。單擊階段(框本身),並將其命名為“開發”或您喜歡的名稱。 然后單擊“1 個作業,0 個任務”鏈接。 單擊“代理作業”框,並根據需要配置代理作業(確保代理下載您的工件,它可以在“工件下載”中進行配置)。
接下來,單擊您剛剛配置的代理作業上的“+”號。 根據提示,使用搜索欄查找“Azure 函數”。 請注意,有 3 個作業稱為 this。 你想,這只是所謂的“天青功能”的一個。 單擊 並配置新創建的作業。 這里應該很簡單。 在 linux 上選擇函數應用程序並從列表中找到您的“開發”函數應用程序。 默認情況下,“包或文件夾”應該類似於$(System.DefaultWorkingDirectory)/**/*.zip ,它應該足夠了,除非您對構建管道的工件進行了一些自定義。
你應該有這樣的事情:

發展階段

Azure 函數任務

從“任務”下拉列表(帶有紅色警告圓圈),您可以移動到“階段 2”(當然,您可以像使用“階段 1”那樣將其重命名為“開發”)。 由於您沒有使用插槽,因此很遺憾無法在兩個不同資源組中的 2 個函數應用程序之間進行交換 - 至少據我所知不是這樣。 因此,您必須從“開發”階段開始重復整個過程,在該階段使用工件部署到暫存資源組中的函數應用程序。 這同樣適用於最后一個階段“第 3 階段”,在該階段部署到生產資源組中的函數應用。

分期和批准
我們一直在等待什么,我想。 從帶有階段概述的圖片中,您可以看到每個階段在框的每一側都有 2 個附加的“按鈕”。 當有閃電和用戶圖標(左),只有一個用戶圖標時。 左邊是“前階段動作”,右邊是“后階段動作”。 在您的場景中,您可能希望為“第 2 階段”/“分期”和“第 3 階段”/“生產”配置“前階段操作”。 在這兩種情況下,我都會添加“預部署批准”,如下所示:

部署前批准

您可以添加特定人員或整個組。 它將要求有人然后轉到發布管道概述,然后在部署之前批准下一階段(或者更確切地說,該階段在批准之前不會開始)。

呼,那太長了……我希望這能消除您的一些困惑,並且對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM