本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立服務
若要以開發人員身分部署應用程式 AWS Proton,您可以建立 服務並提供下列輸入。
-
平台團隊發佈 AWS Proton 的服務範本名稱。
-
服務的名稱。
-
您要部署的服務執行個體數量。
-
您想要使用的環境選項。
-
如果您使用的是包含服務管道的服務範本,則為程式碼儲存庫的連線 (選用)。
服務中有哪些項目?
建立 AWS Proton 服務時,您可以選擇兩種不同類型的服務範本:
-
包含服務管道的服務範本 (預設)。
-
不包含服務管道的服務範本。
建立服務時,必須至少建立一個服務執行個體。
服務執行個體和選用管道會與服務建立關聯。您只能在服務建立和刪除動作的情況下建立或刪除管道。若要了解如何從服務新增和移除執行個體,請參閱 編輯服務。
您的環境是針對環境中 AWS的 或自我管理的 provisioning. AWS Proton provisions 服務,使用與環境相同的佈建方法。建立或更新服務執行個體的開發人員看不到差異,而且兩者的體驗都相同。
如需佈建方法的詳細資訊,請參閱 如何 AWS Proton 佈建基礎設施。
服務範本
服務範本的主要和次要版本皆可使用。當您使用 主控台時,請選取服務範本的最新Recommended
主要和次要版本。當您使用 AWS CLI 且只指定服務範本的主要版本時,您可以隱含地指定其最新的Recommended
次要版本。
以下說明主要和次要範本版本及其使用方式之間的差異。
-
範本的新版本Recommended
會在平台團隊成員核准後立即變成。這表示使用該版本建立新服務,系統會提示您將現有服務更新為新版本。
-
透過 AWS Proton,平台團隊可以自動將服務執行個體更新為服務範本的新次要版本。次要版本必須回溯相容。
-
由於主要版本需要您在更新程序中提供新的輸入,因此您需要將服務更新為其服務範本的主要版本。主要版本無法回溯相容。
建立服務
下列程序示範如何使用 AWS Proton 主控台或 AWS CLI 來建立有或沒有服務管道的服務。
- AWS Management Console
-
建立服務,如下列主控台步驟所示。
-
在 AWS Proton 主控台中,選擇 服務。
-
選擇 Create service (建立服務)。
-
在選擇服務範本頁面中,選取範本,然後選擇設定。
當您不想使用已啟用的管道時,請選擇標記 排除您服務的管道的範本。
-
在設定服務頁面的服務設定區段中,輸入服務名稱。
-
(選用) 輸入服務的描述。
-
在服務儲存庫設定區段中:
-
針對 CodeStar Connection,從清單中選擇您的連線。
-
針對儲存庫 ID,從清單中選擇來源碼儲存庫的名稱。
-
針對分支名稱,從清單中選擇來源碼儲存庫分支的名稱。
-
(選用) 在標籤區段中,選擇新增標籤,然後輸入索引鍵和值以建立客戶受管標籤。
-
選擇下一步。
-
在設定自訂設定頁面中,在服務執行個體區段中,在新增執行個體區段中。您必須輸入required
參數的值。您可以輸入optional
參數的值,或在指定時使用預設值。
-
在管道輸入區段中,您必須輸入required
參數的值。您可以輸入optional
參數的值,或在指定時使用預設值。
-
選擇下一步並檢閱您的輸入。
-
選擇建立。
檢視服務詳細資訊和狀態,以及服務的 AWS 受管標籤和客戶受管標籤。
-
在導覽窗格中,選擇服務。
新頁面會顯示您的服務清單,以及狀態和其他服務詳細資訊。
- AWS CLI
-
當您使用 時 AWS CLI,您可以在 YAML 格式的檔案中指定服務輸入,.aws-proton/service.yaml
該spec
檔案位於您的來源碼目錄中。
您可以使用 CLI get-service-template-minor-version
命令來檢視您在規格檔案中為 提供值所需的結構描述和選用參數。
如果您想要使用具有 的服務範本pipelineProvisioning: "CUSTOMER_MANAGED"
,請不要在規格中包含 pipeline:
區段-repository-id
,也不要在create-service
命令中包含 -repository-connection-arn
、 和 -branch-name
參數。
使用服務管道建立服務,如下列 CLI 步驟所示。
-
設定管道的服務角色,如下列 CLI 範例命令所示。
命令:
$
aws proton update-account-settings \
--pipeline-service-role-arn "arn:aws:iam::123456789012
:role/AWS ProtonServiceRole
"
-
下列清單顯示以服務範本結構描述為基礎的範例規格,其中包含服務管道和執行個體輸入。
規格:
proton: ServiceSpec
pipeline:
my_sample_pipeline_required_input: "hello"
my_sample_pipeline_optional_input: "bye"
instances:
- name: "acme-network-dev"
environment: "ENV_NAME"
spec:
my_sample_service_instance_required_input: "hi"
my_sample_service_instance_optional_input: "ho"
使用管道建立服務,如下列 CLI 範例命令和回應所示。
命令:
$
aws proton create-service \
--name "MySimpleService
" \
--branch-name "mainline
" \
--template-major-version "1
" \
--template-name "fargate-service
" \
--repository-connection-arn "arn:aws:codestar-connections:region-id
:123456789012
:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
" \
--repository-id "myorg/myapp
" \
--spec "file://spec.yaml
"
回應:
{
"service": {
"arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService",
"createdAt": "2020-11-18T19:50:27.460000+00:00",
"lastModifiedAt": "2020-11-18T19:50:27.460000+00:00",
"name": "MySimpleService",
"repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"repositoryId": "myorg/myapp",
"status": "CREATE_IN_PROGRESS",
"templateName": "fargate-service"
}
}
建立沒有服務管道的服務,如下列 CLI 範例命令和回應所示。
以下顯示不包含服務管道輸入的範例規格。
規格:
proton: ServiceSpec
instances:
- name: "acme-network-dev"
environment: "ENV_NAME"
spec:
my_sample_service_instance_required_input: "hi"
my_sample_service_instance_optional_input: "ho"
若要在沒有佈建服務管道的情況下建立服務,請提供 的路徑,spec.yaml
而且不會包含儲存庫參數,如下列 CLI 範例命令和回應所示。
命令:
$
aws proton create-service \
--name "MySimpleServiceNoPipeline
" \
--template-major-version "1
" \
--template-name "fargate-service
" \
--spec "file://spec-no-pipeline.yaml
"
回應:
{
"service": {
"arn": "arn:aws:proton:region-id:123456789012:service/MySimpleServiceNoPipeline",
"createdAt": "2020-11-18T19:50:27.460000+00:00",
"lastModifiedAt": "2020-11-18T19:50:27.460000+00:00",
"name": "MySimpleServiceNoPipeline",
"status": "CREATE_IN_PROGRESS",
"templateName": "fargate-service-no-pipeline"
}
}