开始使用 AWS CLI - AWS Proton

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

开始使用 AWS CLI

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

在开始之前,请确保您正确进行设置。有关详细信息,请参阅先决条件

步骤 1:注册环境模板

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

注册环境模板
  1. AWS Proton 示例 CloudFormation 模板存储库分支到您的 GitHub 账户或组织中。该存储库包含我们在本教程中使用的环境和服务模板。

    然后,向注册您的分叉存储库。 AWS Proton有关更多信息,请参阅 创建存储库的链接

  2. 创建一个环境模板。

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

    $ aws proton create-environment-template \ --name "fargate-env" \ --display-name "Public VPC Fargate" \ --description "VPC with public access and ECS cluster"
  3. 创建一个模板同步配置。

    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"
  4. 等待成功注册环境模板版本。

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

    $ aws proton wait environment-template-version-registered \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0"
  5. 发布环境模板版本以使其可用于创建环境。

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

步骤 2:注册服务模板

在此步骤中,以管理员身份注册一个示例服务模板,其中包含在负载均衡器和使用的 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"
  2. 创建一个模板同步配置。

    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"
  3. 等待成功注册服务模板版本。

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

    $ aws proton wait service-template-version-registered \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0"
  4. 发布服务模板版本以使其可用于创建服务。

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

步骤 3:部署环境

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

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

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

  2. 创建一个环境。

    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"
  3. 等待成功部署环境。

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

步骤 4:部署服务 [应用程序开发人员]

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

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

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

  2. AWS Proton 示例服务存储库分支到您的 GitHub 账户或组织中。该存储库包含我们在本教程中使用的应用程序源代码。

  3. 创建服务。

    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"
  4. 等待成功部署服务。

    $ aws proton wait service-created --name "static-website"
  5. 检索输出并查看您的新网站。

    运行以下命令:

    $ 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过程生成的静态图片站点

步骤 5:清理(可选)

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

删除教程资源
  1. 要删除服务,请运行以下命令:

    $ aws proton delete-service --name "static-website"
  2. 要删除环境,请运行以下命令:

    $ aws proton delete-environment --name "fargate-env-prod"
  3. 要删除服务模板,请运行以下命令:

    $ 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"
  4. 要删除环境模板,请运行以下命令:

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