本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
開始使用應用程式執行器
AWS App Runner 是一項 AWS 服務,可提供快速、簡單且符合成本效益的方式,將現有的容器映像檔或原始程式碼直接轉換為 AWS 雲端.
本教程介紹了如何使用 AWS App Runner 將應用程序部署到應用程序運行器服務。它逐步完成配置源代碼和部署,服務構建和服務運行時。它也會示範如何部署程式碼版本、進行設定變更,以及檢視記錄檔。最後,自學課程將展示如何在遵循自學課程的程序時清理您建立的資源。
必要條件
在開始教學課程之前,請務必執行下列動作:
-
完成中的設定步驟設定應用程式執行器。
-
決定您是否要使用 GitHub 儲存庫或 Bitbucket 儲存庫。
-
要使用 Bitbucket,請先創建一個 Bitbucket
帳戶,如果您還沒有帳戶。如果您是 Bitbucket 的新手,請參閱 Bitbucket 雲端文件中的開始使用 Bitbucket 。 -
要使用 GitHub,請創建一個GitHub
帳戶(如果您還沒有帳戶)。如果您不熟悉 GitHub,請參閱「GitHub文件」 GitHub 中的「開始使用 」。 注意
您可以從您的帳戶建立與多個儲存庫提供者的連線。因此,如果您想逐步從 a GitHub 和 Bitbucket 存儲庫進行部署,則可以重複此過程。下次通過創建新的 App Runner 服務並為其他存儲庫提供程序創建新的帳戶連接。
-
-
在儲存庫提供者帳戶中建立儲存庫。本教學課程使用儲存庫名稱
python-hello
。使用下列範例中指定的名稱和內容,在儲存庫的根目錄中建立檔案。
範例 requirements.txt
pyramid==2.0
範例 server.py
from wsgiref.simple_server import make_server from pyramid.config import Configurator from pyramid.response import Response import os def hello_world(request): name = os.environ.get('NAME') if name == None or len(name) == 0: name = "world" message = "Hello, " + name + "!\n" return Response(message) if __name__ == '__main__': port = int(os.environ.get("PORT")) with Configurator() as config: config.add_route('hello', '/') config.add_view(hello_world, route_name='hello') app = config.make_wsgi_app() server = make_server('0.0.0.0', port, app) server.serve_forever()
步驟 1:建立應用程式執行器服務
在此步驟中,您會根據您建立的範例原始程式碼儲存庫 GitHub 或 Bitbucket 做為其一部分,建立應用程式執行器服務。必要條件這個例子包含一個簡單的 Python 網站。以下是您建立服務所採取的主要步驟:
-
設定您的原始程式碼。
-
設定來源部署。
-
設定應用程式組建。
-
設定您的服務。
-
檢閱並確認。
下圖概述了創建應用程序運行器服務的步驟:
若要根據原始程式碼儲存庫建立應用程式執行器服務
-
設定您的原始程式碼。
-
開啟應用程式執行器主控台
,然後在 [區域] 清單中選取您的 AWS 區域. -
如果還 AWS 帳戶 沒有任何應用程序運行器服務,則顯示控制台主頁。選擇創建應用程序運行器服務。
如果 AWS 帳戶 已有服務,則會顯示含有您服務清單的「服務」頁面。選擇 Create service (建立服務)。
-
在「來源與部署」頁面的「來源」段落中,選擇「來源程式碼儲存區域」做為「儲存區域」類型。
-
選取提供者類型。選擇任一GitHub或比特桶。
-
接下來選擇添加新的。如果出現提示,請提供您的 GitHub 或 Bitbucket 認證。
-
根據您之前選取的提供者類型,選擇下一組步驟。
注意
下列步驟將 AWS 連接器安裝 GitHub 到您的 GitHub 帳戶是一次性步驟。您可以重複使用連線,以根據此帳戶中的儲存庫建立多個 App Runner 服務。當您擁有現有的連線時,請選擇該連線,然後跳至存放庫選取。
這同樣適用於您的 Bitbucket 帳戶的 AWS 連接器。如果您同時使用 GitHub 和 Bitbucket 做為應用程式執行器服務的原始程式碼儲存庫,則需要為每個供應商安裝一個 AWS 連接器。然後,您可以重複使用每個連接器來創建更多應用程序運行器
-
對於 GitHub,請按照下列步驟操作。
-
在下一個畫面中,輸入連線名稱。
-
如果這是您第一次使用應 GitHub 用程式執行器,請選取 [安裝其他]。
-
在AWS 連接器對 GitHub話方塊中,如果出現提示,請選擇您的 GitHub 帳戶名稱。
-
如果系統提示您授權連 AWS 接器 GitHub,請選擇授權 AWS 連線。
-
在「安裝 AWS 連接器 GitHub」對話方塊中,選擇「安裝」。
您的帳戶名稱會顯示為選取的GitHub 帳戶/組織。現在,您可以在帳戶中選擇一個存儲庫。
-
對於存放庫,請選擇您建立的範例存放庫
python-hello
。對於「分支」,請選擇儲存庫的預設分支名稱 (例如 main)。 -
將來源目錄保留為預設值。目錄預設為儲存庫根目錄。您將原始程式碼儲存在先前的先決條件步驟中的儲存庫根目錄中。
-
-
對於比特桶,請按照下列步驟操作。
-
在下一個畫面中,輸入連線名稱。
-
如果這是您第一次搭配應用程式執行器使用 Bitbucket,請選取 [安裝另一個]。
-
在AWS CodeStar 請求存取對話方塊中,您可以選取您的工作區,並授與 Bitbucket 整合的存取權。 AWS CodeStar 選取您的工作區,然後選取授與存取權。
-
接下來,您將被重定向到 AWS 控制台。確認 Bitbucket 應用程式已設定為正確的 Bitbucket 工作區,然後選取 [下一步]。
-
對於存放庫,請選擇您建立的範例存放庫
python-hello
。對於「分支」,請選擇儲存庫的預設分支名稱 (例如 main)。 -
將來源目錄保留為預設值。目錄預設為儲存庫根目錄。您將原始程式碼儲存在先前的先決條件步驟中的儲存庫根目錄中。
-
-
-
-
設定您的部署:在「部署設定」區段中,選擇「自動」,然後選擇「下一步」。
注意
透過自動部署,每次對儲存庫來源目錄的新認可都會自動部署服務的新版本。
-
設定應用程式組建。
-
在 [設定組建] 頁面上,對於 [組態檔案],選擇 [此處設定所有設定]。
-
提供下列組建設定:
-
執行階段 — 選擇 Python 3。
-
建置命令 — 輸入
pip install -r requirements.txt
。 -
啟動指令 — 輸入
python server.py
。 -
連接埠 — 輸入
8080
。
-
-
選擇下一步。
注意
Python 3 運行時使用基本 Python 3 圖像和您的示例 Python 代碼構建一個碼頭圖像。然後,它會啟動執行此映像檔之容器執行個體的服務。
-
-
設定您的服務。
-
在 [設定服務] 頁面的 [服務設定] 區段中,輸入服務名稱。
-
在環境變數下,選取新增環境變數。為環境變數提供下列值。
-
來源 — 選擇純文字
-
環境變數名稱 —
NAME
-
環境變數值 — 任何名稱 (例如,您的名字)。
注意
範例應用程式會讀取您在此環境變數中設定的名稱,並在其網頁上顯示名稱。
-
-
選擇下一步。
-
-
在 [檢閱並建立] 頁面上,確認您輸入的所有詳細資料,然後選擇 [建立並部署]。
如果成功建立服務,則主控台會顯示服務儀表板,以及新服務的服務概觀。
-
確認您的服務正在執行。
-
在服務儀表板頁面上,等待服務狀態為「執行中」。
-
選擇預設網域值 — 這是您服務網站的 URL。
注意
為了增強應用程式執行器應用程式的安全性,*.awsapprunner.com 網域註冊在公用尾碼清單 (PSL) 中。
為了進一步的安全性,如果您需要在 App Runner 應用程式的預設網域名稱中設定敏感性 Cookie,建議您使用 __Host-
前置詞的 Cookie。此做法將有助於保護您的網域免受跨站請求偽造 (CSRF) 攻擊。如需更多資訊,請參閱 Mozilla 開發人員網路中的設定 Cookie頁面。 顯示一個網頁:你好,
你的名字
!
-
步驟 2:變更服務代碼
在此步驟中,您會變更儲存庫來源目錄中的程式碼。應用程式執行器 CI/CD 功能會自動建置和部署變更至您的服務。
變更您的服務代碼
-
導航到您的示例存儲庫。
-
編輯名為的檔案
server.py
。 -
在指派給變數的運算式中
message
,Hello
將文字變更為Good morning
。 -
儲存您的變更並提交至儲存庫。
-
下列步驟說明變更 GitHub 儲存庫中的服務程式碼。
-
導航到您的示例 GitHub 存儲庫。
-
選擇要導覽
server.py
至該檔案的檔案名稱。 -
選擇 [編輯此檔案] (鉛筆圖示)。
-
在指派給變數的運算式中
message
,Hello
將文字變更為Good morning
。 -
選擇 Commit changes (遞交變更)。
-
-
新的提交開始為您的應用程序運行器服務部署。在服務儀表板頁面上,服務狀態會變更為 [作業進行中]。
等待部署結束。在服務儀表板頁面上,服務狀態應變回執行中。
-
確認部署是否成功:重新整理顯示服務網頁的瀏覽器索引標籤。
該頁面現在顯示修改後的消息:早上好,
您的名字
!
步驟 3:進行配置更改
在此步驟中,您會變更NAME
環境變數值,以示範服務組態變更。
若要變更環境變數值
-
開啟應用程式執行器主控台
,然後在 [區域] 清單中選取您的 AWS 區域. -
在功能窗格中,選擇 [服務],然後選擇您的應用程式執行器服務。
主控台會顯示服務儀表板,其中包含服務概觀。
-
在服務儀表板頁面上,選擇 [組態] 索引標籤。
主控台會在數個區段中顯示您的服務組態設定。
-
在「設定服務」區段中,選擇 「編輯」。
-
對於具有索引鍵的環境變數
NAME
,請將值變更為其他名稱。 -
選擇 Apply changes (套用變更)。
應用程序運行器啟動更新過程。在服務儀表板頁面上,服務狀態會變更為 [作業進行中]。
-
等待更新結束。在服務儀表板頁面上,服務狀態應變回執行中。
-
確認更新是否成功:重新整理顯示服務網頁的瀏覽器索引標籤。
該頁面現在顯示修改後的名稱:早上好,
新名稱
!
步驟 4:檢視服務的記錄
在此步驟中,您可以使用應用程式執行器主控台來檢視應用程式執行器服務的記錄檔。應用程式執行器會將日 CloudWatch 誌串流到 Amazon CloudWatch 日誌 (日誌),並將其顯示在服務的儀表板上。如需有關應用程式執行程式記錄檔的資訊檢視串流至 CloudWatch 記錄的應用程式執行器記錄,
若要檢視服務的記錄
-
開啟應用程式執行器主控台
,然後在 [區域] 清單中選取您的 AWS 區域. -
在功能窗格中,選擇 [服務],然後選擇您的應用程式執行器服務。
主控台會顯示服務儀表板,其中包含服務概觀。
-
在服務儀表板頁面上,選擇記錄檔索引標籤。
主控台會在數個區段中顯示幾種類型的記錄檔:
-
事件日誌 — 應用程序運行器服務生命週期中的活動。主控台會顯示最新的事件。
-
部署記錄 — 來源儲存庫部署到您的應用程式執行器服務。主控台會針對每個部署顯示個別的記錄資料流。
-
應用程式記錄檔 — 部署到應用程式執行器服務的 Web 應用程式輸出。主控台會將所有執行中執行個體的輸出結合到單一記錄串流中。
-
-
若要尋找特定部署,請輸入搜尋詞彙,以縮小部署記錄清單的範圍。您可以搜尋表格中顯示的任何值。
-
若要檢視記錄檔的內容,請選擇 [檢視完整記錄檔 (事件記錄檔)] 或記錄資料流名稱 (部署和應用程式記錄檔)。
-
選擇 [下載] 以下載記錄檔。對於部署記錄串流,請先選取記錄資料流。
-
選擇 [檢視 CloudWatch於] 開啟 CloudWatch 主控台,並使用其完整功能瀏覽您的 App Runner 服務記錄檔。對於部署記錄串流,請先選取記錄資料流。
注意
如果您想要檢視特定執行個體的應用程式記錄檔,而不是合併的應用程式記錄檔, CloudWatch 主控台特別有用。
步驟 5:清除
您現在已經學習瞭如何創建應用程序運行器服務,查看日誌並進行一些更改。在此步驟中,您會刪除該服務以移除不再需要的資源。
若要刪除您的服務
-
在服務儀表板頁面上,選擇 [動作],然後選擇 [刪除服務]。
-
在確認對話方塊中,輸入要求的文字,然後選擇 [刪除]。
結果:主控台會導覽至「服務」頁面。您剛剛刪除的服務會顯示「刪除」的狀態。很短的時間後,它會從列表中消失。
也請考慮刪除您在本教學課程中建立的 GitHub 和 Bitbucket 連線。如需詳細資訊,請參閱 管理 App Runner 連線。
下一步是什麼
現在您已經部署了第一個 App Runner 服務,請在下列主題中進一步了解:
-
應用程序運行架構和概念— 與應用程序運行器相關的體系結構,主要概念和 AWS 資源。
-
開發應用程式執行程式碼— 開發或移轉應用程式程式碼以部署至 App Runner 時應該知道的事項。
-
使用 App Runner 主控台— 使用應用程序運行器控制台管理和監視您的服務。
-
管理您的 App Runner 服務— 管理您的應用程式執行器服務的生命週期。
-
您的應用程序運行器服務的觀察性— 通過監視指標,讀取日誌,處理事件,跟踪服務操作調用以及跟踪 HTTP 調用等應用程序事件,獲得 App Runner 服務操作的可見性。
-
應用程序運行器配置— 一種基於配置的方法,用於指定應用程序 Runner 服務的構建和運行時行為的選項。
-
應用程序運行器 API— 使用應用程序運行器應用程序編程界面(API)創建,讀取,更新和刪除應用程序運行器資源。
-
應用程序運行器中的— 在使用應用程序 Runner AWS 和其他服務時確保雲安全性的不同方式。