

终止支持通知：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)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 开始使用 AWS CLI
<a name="ag-getting-started-cli"></a>

要开始 AWS Proton 使用 AWS CLI，请按照本教程进行操作。本教程演示了基于的面向公众的负载均衡 AWS Proton 服务。 AWS Fargate本教程还提供了一个 CI/CD 管道，用于部署带有显示图像的静态网站。

在开始之前，请确保您正确进行设置。有关更多信息，请参阅 [先决条件](getting-started-prerequisites.md)。

## 步骤 1：注册环境模板
<a name="ag-getting-started-cli.env-templ"></a>

在此步骤中，以管理员身份注册一个示例环境模板，该模板包含一个亚马逊弹性容器服务 (Amazon ECS) Container Service 集群和一个带有 public/private 两个子网的亚马逊虚拟私有云 (Amazon VPC)。

**注册环境模板**

1. 将[AWS Proton 示例 CloudFormation 模板](https://github.com/aws-samples/aws-proton-cloudformation-sample-templates/)存储库分支到您的 GitHub 账户或组织中。该存储库包含我们在本教程中使用的环境和服务模板。

   然后，向注册您的分叉存储库。 AWS Proton有关更多信息，请参阅 [创建存储库的链接](ag-create-repo.md)。

1. 创建一个环境模板。

   环境模板资源跟踪环境模板版本。

   ```
   $ aws proton create-environment-template \
     --name "fargate-env" \
     --display-name "Public VPC Fargate" \
     --description "VPC with public access and ECS cluster"
   ```

1. 创建一个模板同步配置。

   AWS Proton 在存储库和环境模板之间设置同步关系。然后，它创建处于 `DRAFT` 状态的模板版本 1.0。

   ```
   $ aws proton create-template-sync-config \
     --template-name "fargate-env" \
     --template-type "ENVIRONMENT" \
     --repository-name "your-forked-repo" \
     --repository-provider "GITHUB" \
     --branch "your-branch" \
     --subdirectory "environment-templates/fargate-env"
   ```

1. 等待成功注册环境模板版本。

   如果该命令返回并且退出状态为 `0`，则说明版本注册完成。这在脚本中是非常有用的，可以确保您在下一步中成功运行命令。

   ```
   $ aws proton wait environment-template-version-registered \
     --template-name "fargate-env" \
     --major-version "1" \
     --minor-version "0"
   ```

1. 发布环境模板版本以使其可用于创建环境。

   ```
   $ aws proton update-environment-template-version \
     --template-name "fargate-env" \
     --major-version "1" \
     --minor-version "0" \
     --status "PUBLISHED"
   ```

## 步骤 2：注册服务模板
<a name="ag-getting-started-cli.srv-templ"></a>

在此步骤中，以管理员身份注册一个示例服务模板，该模板包含在负载均衡器和使用的 CI/CD 管道后配置 Amazon ECS Fargate 服务所需的所有资源。 AWS CodePipeline

**注册服务模板**

1. 创建一个服务模板。

   服务模板资源跟踪服务模板版本。

   ```
   $ aws proton create-service-template \
     --name "load-balanced-fargate-svc" \
     --display-name "Load balanced Fargate service" \
     --description "Fargate service with an application load balancer"
   ```

1. 创建一个模板同步配置。

   AWS Proton 在存储库和服务模板之间设置同步关系。然后，它创建处于 `DRAFT` 状态的模板版本 1.0。

   ```
   $ aws proton create-template-sync-config \
     --template-name "load-balanced-fargate-svc" \
     --template-type "SERVICE" \
     --repository-name "your-forked-repo" \
     --repository-provider "GITHUB" \
     --branch "your-branch" \
     --subdirectory "service-templates/load-balanced-fargate-svc"
   ```

1. 等待成功注册服务模板版本。

   如果该命令返回并且退出状态为 `0`，则说明版本注册完成。这在脚本中是非常有用的，可以确保您在下一步中成功运行命令。

   ```
   $ aws proton wait service-template-version-registered \
     --template-name "load-balanced-fargate-svc" \
     --major-version "1" \
     --minor-version "0"
   ```

1. 发布服务模板版本以使其可用于创建服务。

   ```
   $ aws proton update-service-template-version \
     --template-name "load-balanced-fargate-svc" \
     --major-version "1" \
     --minor-version "0" \
     --status "PUBLISHED"
   ```

## 步骤 3：部署环境
<a name="ag-getting-started-cli.env-deploy"></a>

在此步骤中，作为管理员，您可以从 AWS Proton 环境模板实例化环境。

**部署环境**

1. 为您注册的环境模板获取一个示例规范文件。

   您可以从模板示例存储库中下载 `environment-templates/fargate-env/spec/spec.yaml` 文件。或者，您可以在本地获取整个存储库，并从 `environment-templates/fargate-env` 目录中运行 **create-environment** 命令。

1. 创建一个环境。

   AWS Proton 从您的环境规范中读取输入值，将其与您的环境模板合并，然后使用您的 AWS Proton 服务角色在您的 AWS 账户中配置环境资源。

   ```
   $ aws proton create-environment \
     --name "fargate-env-prod" \
     --template-name "fargate-env" \
     --template-major-version 1 \
     --proton-service-role-arn "arn:aws:iam::123456789012:role/AWS ProtonServiceRole" \
     --spec "file://spec/spec.yaml"
   ```

1. 等待成功部署环境。

   ```
   $ aws proton wait environment-deployed --name "fargate-env-prod"
   ```

## 步骤 4：部署服务 [应用程序开发人员]
<a name="ag-getting-started-cli.srv-deploy"></a>

在前面的步骤中，管理员注册并发布了一个服务模板，并部署了一个环境。作为应用程序开发人员，您现在可以创建 AWS Proton 服务并将其部署到 AWS Proton 环境中

**部署服务**

1. 为管理员注册的服务模板获取一个示例规范文件。

   您可以从模板示例存储库中下载 `service-templates/load-balanced-fargate-svc/spec/spec.yaml` 文件。或者，您可以在本地获取整个存储库，并从 `service-templates/load-balanced-fargate-svc` 目录中运行 **create-service** 命令。

1. 将[AWS Proton 示例服务](https://github.com/aws-samples/aws-proton-sample-services/)存储库分支到您的 GitHub 账户或组织中。该存储库包含我们在本教程中使用的应用程序源代码。

1. 创建服务。

   AWS Proton 从您的服务规范中读取输入值，将其与服务模板合并，并在规范中指定的环境中配置 AWS 账户中的服务资源。 AWS CodePipeline 管道从您在命令中指定的存储库中部署您的应用程序代码。

   ```
   $ aws proton create-service \
     --name "static-website" \
     --repository-connection-arn \
       "arn:aws:codestar-connections:us-east-1:123456789012:connection/your-codestar-connection-id" \
     --repository-id "your-GitHub-account/aws-proton-sample-services" \
     --branch-name "main" \
     --template-major-version 1 \
     --template-name "load-balanced-fargate-svc" \
     --spec "file://spec/spec.yaml"
   ```

1. 等待成功部署服务。

   ```
   $ aws proton wait service-created --name "static-website"
   ```

1. 检索输出并查看您的新网站。

   运行如下命令：

   ```
   $ aws proton list-service-instance-outputs \
     --service-name "static-website" \
     --service-instance-name load-balanced-fargate-svc-prod
   ```

   该命令的输出应类似于以下内容：

   ```
   {
       "outputs": [
           {
               "key": "ServiceURL",
               "valueString": "http://your-service-endpoint.us-east-1.elb.amazonaws.com"
           }
       ]
   }
   ```

   `ServiceURL` 实例输出的值是新服务网站的终端节点。使用浏览器导航到该终端节点。您应该会在静态页面上看到以下图形：  
![\[Web 浏览器显示入门 CLI 过程生成的静态图片站点\]](http://docs.aws.amazon.com/zh_cn/proton/latest/userguide/images/getting-started-static-site.png)

## 步骤 5：清理（可选）
<a name="ag-getting-started-cli.cleanup"></a>

在此步骤中，当您浏览完您在本教程中创建的 AWS 资源后，为了节省与这些资源相关的成本，可以将其删除。

**删除教程资源**

1. 要删除服务，请运行以下命令：

   ```
   $ aws proton delete-service --name "static-website"
   ```

1. 要删除环境，请运行以下命令：

   ```
   $ aws proton delete-environment --name "fargate-env-prod"
   ```

1. 要删除服务模板，请运行以下命令：

   ```
   $ aws proton delete-template-sync-config \
     --template-name "load-balanced-fargate-svc" \
     --template-type "SERVICE"
   $ aws proton delete-service-template --name "load-balanced-fargate-svc"
   ```

1. 要删除环境模板，请运行以下命令：

   ```
   $ aws proton delete-template-sync-config \
     --template-name "fargate-env" \
     --template-type "ENVIRONMENT"
   $ aws proton delete-environment-template --name "fargate-env"
   ```