本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立服務
若要以開發人員身分部署應用程式,您可以建立服務並提供下列輸入。AWS Proton
-
由平台小組發佈的AWS Proton服務範本名稱。
-
服務的名稱。
-
您要部署的服務執行個體數。
-
您想要使用的環境。
-
如果您使用的服務模板包含服務管道(可選),則與代碼存儲庫的連接。
什麼是在一個服務?
在建立AWS Proton服務時,您可以從兩種不同類型的服務範本中進行選擇:
-
包含服務管線 (預設值) 的服務範本。
-
不包含服務管線的服務範本。
在建立服務時,您必須至少建立一個服務執行個體。
服務執行個體和選用管線與服務相關聯。您只能在服務建立和刪除動作的前後關聯內建立或刪除管線。若要了解如何從服務新增和移除執行個體的詳細資訊,請參閱編輯服務。
您的環境已設定為AWS-或自我管理的佈建。 AWS Proton使用與環境使用相同的佈建方法,在環境中佈建服務。創建或更新服務實例的開發人員看不到差異,他們的體驗在兩種情況下都是相同的。
如需佈建方法的詳細資訊,請參閱如何AWS Proton佈建基礎設。
服務範本
主要和次要版本的服務模板都可用。使用主控台時,請選取服務範本的最新Recommended
主要和次要版本。當您使用AWS CLI且只指定服務範本的主要版本時,您會隱含地指定其最新的Recommended
次要版本。
以下說明主要和次要範本版本及其使用方式之間的差異。
-
模板的新版本在獲得Recommended
平台團隊成員的批准後立即變為。這表示新服務是使用該版本建立的,而且系統會提示您將現有服務更新為新版本。
-
通過AWS Proton,平台團隊可以自動將服務實例更新為服務模板的新次要版本。次要版本必須向後相容。
-
由於主要版本要求您提供新的輸入作為更新過程的一部分,您需要將服務更新為其服務模板的主要版本。主要版本不向後兼容。
建立服務
下列程序顯示如何使用主AWS Proton控台或AWS CLI建立具有或不含服務管線的服務。
- AWS Management Console
-
建立如下列主控台步驟所示的服務。
-
在AWS Proton主控台中,選擇 [服務]。
-
選擇 Create service (建立服務)。
-
在 [選擇服務範本] 頁面中,選取範本並選擇 [設定]。
如果您不想使用已啟用的管道,請為您的服務選擇標記為「排除管道」的範本。
-
在 [設定服務] 頁面的 [服務設定] 區段中,輸入服務名稱。
-
(選用) 輸入服務的描述。
-
在「服務儲存庫設定」區段中:
-
對於「CodeStar 連線」,請從清單中選擇您的連線。
-
對於「儲存庫 ID」,請從清單中選擇原始程式碼儲存庫的名稱。
-
對於「分支名稱」,請從清單中選擇原始程式碼儲存庫分支的名稱。
-
(選擇性) 在「標籤」區段中,選擇「新增標籤」,然後輸入金鑰和值以建立客戶管理的標籤。
-
選擇 Next (下一步)。
-
在 [設定自訂設定] 頁面的 [服務執行個體] 區段的 [新增執行個體] 區段中。您必須輸入required
參數的值。您可以輸入optional
參數值,或在指定時使用預設值。
-
在「管線輸入」區段中,您必須輸入required
參數值。您可以輸入optional
參數值,或在指定時使用預設值。
-
選擇 [下一步] 並檢閱您的輸入。
-
選擇 Create (建立)。
檢視服務詳細資訊和狀態,以及您服務的AWS受管理標籤和客戶管理標籤。
-
在導覽窗格中,選擇 Services (服務)。
新頁面會顯示您的服務清單,以及狀態和其他服務詳細資料。
- AWS CLI
-
使用時AWS CLI,您可以在位於原始程式碼目錄中的 YAML 格式spec
檔案中指定服務輸入。.aws-proton/service.yaml
您可以使用 CLIget-service-template-minor-version
命令來檢視您在 spec 檔案中提供值的結構描述必要參數和選用參數。
如果您想要使用具有的服務範本pipelineProvisioning: "CUSTOMER_MANAGED"
,請勿在規格中包含該pipeline:
區段,也不要在create-service
命令中包含-repository-connection-arn
-repository-id
、和-branch-name
參數。
使用服務管線建立服務,如下列 CLI 步驟所示。
-
設定管線的服務角色,如下列 CLI 範例命令所示。
命令:
$
aws proton update-account-settings \
--pipeline-service-role-arn "arn:aws:iam::123456789012
:role/AWSProtonServiceRole
"
-
下列清單顯示以服務範本結構描述為基礎的範例規格,其中包括服務管線和執行個體輸入。
Spec (格)
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 範例命令和回應所示。
以下顯示不包含服務管線輸入的範例規格。
Spec (格)
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"
}
}