您將部署三項新服務至第 2 單元中啟動的叢集。與第 2 單元一樣,您將為每項服務編寫任務定義。
⚐ 注意:可以將多個容器新增至一個任務定義中。這意味著您可以將所有三項微型服務作為單一服務中的不同容器來執行。但是,由於每個容器都需要根據服務線性擴展,因此該方法仍然具有整體性。您的目標是擁有三項獨立的服務。每項服務需要其自身的任務定義,其執行具有相應服務映像的容器。
您可以從 Amazon ECS 主控台建立這些任務定義,也可以透過將其編寫為 JSON 來加速處理。若要將任務定義寫為 JSON 檔案,請遵循下列步驟:
- 從 Amazon Container Services 主控台的「Amazon ECS」項下,選取「任務定義」。
- 在「任務定義」頁面中,選取「建立新的任務定義」按鈕。
- 在選取啟動類型相容性頁面中,選取「EC2」選項,然後選取「下一步」。
- 在設定任務和容器定義頁面中,捲動至「磁碟區」區段,然後選取「透過 JSON 設定」按鈕。
- 複製以下程式碼片段並貼至 JSON 欄位,以替換現有程式碼。
請記住要替換 [service-name]、[account-ID]、[region] 和 [tag] 預留位置。
⚐ 注意:任務定義的參數如下:
- Name = [service-name: posts, threads, and users]
- Image = [Amazon ECR repository image URL]:latest
- cpu = 256
- memory = 256
- Container Port = 3000
- Host Post = 0
{
"containerDefinitions": [
{
"name": "[service-name]",
"image": "[account-id].dkr.ecr.[region].amazonaws.com/[service-name]:[tag]",
"memoryReservation": "256",
"cpu": "256",
"essential": true,
"portMappings": [
{
"hostPort": "0",
"containerPort": "3000",
"protocol": "tcp"
}
]
}
],
"volumes": [],
"networkMode": "bridge",
"placementConstraints": [],
"family": "[service-name]"
}