

終止支援通知：2026 年 10 月 7 日 AWS 將終止 的支援 AWS Proton。2026 年 10 月 7 日之後，您將無法再存取 AWS Proton 主控台或 AWS Proton 資源。您部署的基礎設施將保持不變。如需詳細資訊，請參閱[AWS Proton 服務棄用和遷移指南](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立服務
<a name="ag-create-svc"></a>

若要以開發人員身分部署應用程式 AWS Proton，您可以建立 服務並提供下列輸入。

1. 平台團隊發佈 AWS Proton 的服務範本名稱。

1. 服務的名稱。

1. 您要部署的服務執行個體數量。

1. 您想要使用的環境選項。

1. 如果您使用的是包含服務管道的服務範本，則為程式碼儲存庫的連線 （選用）。

## 服務中有哪些項目？
<a name="ag-create-svc.info"></a>

建立 AWS Proton 服務時，您可以從兩種不同類型的服務範本中選擇：
+ 包含服務管道的服務範本 （預設）。
+ *不包含*服務管道的服務範本。

建立服務時，必須至少建立一個服務執行個體。

服務執行個體和選用管道會與服務建立關聯。您只能在服務建立和刪除動作的情況下*建立**或刪除*管道。若要了解如何從服務新增和移除執行個體，請參閱 [編輯服務](ag-svc-update.md)。

**注意**  
您的環境是針對環境中 AWS的 或自我管理的 provisioning. AWS Proton provisions 服務，使用與環境相同的佈建方法。建立或更新服務執行個體的開發人員看不到差異，而且兩者的體驗都相同。  
如需佈建方法的詳細資訊，請參閱[如何 AWS Proton 佈建基礎設施](ag-works-prov-methods.md)。

## 服務範本
<a name="ag-create-svc.templates"></a>

服務範本的主要和次要版本皆可使用。使用主控台時，您可以選取服務範本的最新`Recommended`主要和次要版本。當您使用 AWS CLI 且只指定服務範本的主要版本時，您可以隱含地指定其最新的`Recommended`次要版本。

以下說明主要和次要範本版本及其使用方式之間的差異。
+ 範本的新版本`Recommended`會在平台團隊成員核准後立即變成。這表示使用該版本建立新服務，系統會提示您將現有服務更新為新版本。
+ 透過 AWS Proton，平台團隊可以自動將服務執行個體更新為服務範本的新次要版本。次要版本必須回溯相容。
+ 由於主要版本需要您在更新程序中提供新的輸入，因此您需要將服務更新為其服務範本的主要版本。主要版本*無法*回溯相容。

## 建立服務
<a name="ag-create-svc.procedure"></a>

下列程序說明如何使用 AWS Proton 主控台或 AWS CLI 來建立有或沒有服務管道的服務。

------
#### [ AWS 管理主控台 ]

**建立服務，如下列主控台步驟所示。**

1. 在 [AWS Proton 主控台](https://console.aws.amazon.com//proton/)中，選擇 **服務**。

1. 選擇 **Create service (建立服務)**。

1. 在**選擇服務範本**頁面中，選取範本，然後選擇**設定**。

   當您*不想*使用已啟用的管道時，請選擇標記 排除您服務的*管道*的範本。

1. 在**設定服務**頁面**的服務設定**區段中，輸入**服務名稱**。

1. （選用） 輸入服務的描述。

1. 

**在**服務儲存庫設定**區段中：**

   1. 針對 **CodeStar Connection**，從清單中選擇您的連線。

   1. 針對**儲存庫 ID**，從清單中選擇來源碼儲存庫的名稱。

   1. 針對**分支名稱**，從清單中選擇來源碼儲存庫分支的名稱。

1. （選用） 在**標籤**區段中，選擇**新增標籤**，然後輸入索引鍵和值以建立客戶受管標籤。

1. 選擇**下一步**。

1. 在**設定自訂設定**頁面的 **服務執行個體** 區段的 **新執行個體** 區段中。您必須輸入`required`參數的值。您可以輸入`optional`參數的值，或在指定時使用預設值。

1. 在**管道輸入**區段中，您必須輸入`required`參數的值。您可以輸入`optional`參數的值，或在指定時使用預設值。

1. 選擇**下一步**並檢閱您的輸入。

1. 選擇**建立**。

   檢視服務詳細資訊和狀態，以及服務的 AWS 受管標籤和客戶受管標籤。

1. 在導覽窗格中，選擇**服務**。

   新頁面會顯示您的服務清單，以及狀態和其他服務詳細資訊。

------
#### [ AWS CLI ]

當您使用 時 AWS CLI，您可以在 YAML 格式`spec`的檔案中指定服務輸入，`.aws-proton/service.yaml`位於您的來源碼目錄中。

您可以使用 CLI `get-service-template-minor-version`命令來檢視您在規格檔案中為 提供值所需的結構描述和選用參數。

如果您想要使用具有 的服務範本`pipelineProvisioning: "CUSTOMER_MANAGED"`，*請不要*在規格中包含 `pipeline:`區段`-repository-id`，也*不要*在`create-service`命令中包含 `-repository-connection-arn`、 和 `-branch-name` 參數。

**使用服務管道建立服務，如下列 CLI 步驟所示。**

1. **設定管道[的服務角色](security_iam_service-role-policy-examples.md#codepipeline-proton-svc-role)，如下列 CLI 範例命令所示。**

   命令：

   ```
   $ aws proton update-account-settings \
           --pipeline-service-role-arn "arn:aws:iam::123456789012:role/AWS ProtonServiceRole"
   ```

1. 下列清單顯示以服務範本結構描述為基礎的範例規格，其中包含服務管道和執行個體輸入。

   規格：

   ```
   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"
    }
}
```

------