最近遇到的一個資料上雲的問題,情境是這樣的:User 非 IT 背景出生,在傳輸檔案時,原先都是透過 FileZilla 等介面使用 FTP 的方式上傳檔案;現在期望在極小的影響下改成直接將資料上到 Azure,而最無痛的作法就是開啟 Azure Blob Storage 的 SFTP 功能。
但 Azure Blob Storage 中的 SFTP 功能目前在費用方面不是很友善,這邊會講解使用 Azure Automation Runbook 的服務,來做到定時自動開關 SFTP 功能,在確定沒有使用到 SFTP 時可以自動關閉該功能,是一個高 CP 值的用法!
建立儲存體帳戶
必須啟用「階層命名空間」才能啟用 SFTP |
使用 Portal 進入儲存體帳戶的建立畫面後,在第二個「進階」的頁籤下可以啟用「階層命名空間」,同時也會提醒這是啟用 SFTP 的必要條件。
在儲存體帳戶中啟用 SFTP
勾選啟用「階層命名空間」後,啟用 SFTP 的勾選框也會同時亮起,基本上只要跟著 Portal 建立儲存體都不會有太大的問題。
勾選啟用 SFTP |
其餘設定都依照自己需求建立即可,隨後等待儲存體帳戶建立完成。
建立容器
這邊先建立一個名為 sftp-test 的容器,跟一般建立容器的方式一樣,沒什麼需要特別注意的事項。
建立容器 sftp-test |
建立本機使用者
從 Portal 左測進入「設定」→「SFTP」,然後點擊「新增本機使用者」,第一次設定建議使用以下設定值:
- 使用者名稱:自行命名,這邊使用 testuser
- 驗證方式:勾選 SSH 密碼
- 容器名稱:剛剛建立的 sftp-test
- 權限:勾選全部
- 首頁(登陸)目錄:/sftp-test/
關掉就回不來的 SSH 密碼 |
使用 FileZilla 上傳檔案到容器中
在 FileZilla 中新增一個站台,其中各項設定如下:
- 協定:選 SFTP
- 主機:<儲存體帳戶名稱>.blob.core.windows.net
- 登入型式:一般
- 使用者:<儲存體帳戶名稱>.<使用者名稱>
- 密碼:剛剛建立使用者時複製下來的 SSH 密碼
如設定建立新站台 |
連線成功後趕緊上傳一個檔案來測試,上傳方式就跟平常使用 FileZilla 一樣輕鬆簡單,對著檔案點兩下就可以了。
使用 FileZilla 上傳一個測試檔案 |
回到 Portal 中的容器畫面確認剛剛上傳的測試檔案,成功!
確認檔案有上傳到容器 |
總結
到此為止已經完成在 Azure Blob Storage 上啟用 SFTP 功能,並透過 FileZilla 上傳檔案;其中的設定值也花了一些時間踩雷,最後才整理出這組設定,可以簡單快速的測試一次 SFTP 的功能,如果有更進階的密碼與權限管理的需求還是建議回去參考微軟的官方文檔喔!
下一篇將會繼續使用 Azure Automation Runbook 來實作定時自動開關 SFTP,請繼續觀看!
相關連結:【Azure Blob Storage】用高 CP 值的方式在 Azure Blob Storage 上開啟 SFTP 功能(下)
留言
張貼留言