本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开始使用 AWS CLI
要开始 AWS Proton 使用 AWS CLI,请按照本教程进行操作。本教程演示了基于的面向公众的负载均衡 AWS Proton 服务。 AWS Fargate本教程还预置了一个 CI/CD 管道,用于部署一个具有显示的图像的静态网站。
在开始之前,请确保您正确进行设置。有关详细信息,请参阅先决条件 。
步骤 1:注册环境模板
在此步骤中,以管理员身份注册一个示例环境模板,该模板包含一个亚马逊弹性容器服务 (AmazonECS) 集群和一个带有两个公有/私有子网的亚马逊虚拟私有云 (AmazonVPC)。
注册环境模板
-
将AWS Proton 示例 CloudFormation 模板
存储库分支到您的 GitHub 账户或组织中。该存储库包含我们在本教程中使用的环境和服务模板。 然后,向注册您的分叉存储库。 AWS Proton有关更多信息,请参阅 创建存储库的链接。
-
创建一个环境模板。
环境模板资源跟踪环境模板版本。
$
aws proton create-environment-template \ --name "fargate-env" \ --display-name "Public VPC Fargate" \ --description "VPC with public access and ECS cluster"
-
创建一个模板同步配置。
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" -
等待成功注册环境模板版本。
如果该命令返回并且退出状态为
0
,则说明版本注册完成。这在脚本中是非常有用的,可以确保您在下一步中成功运行命令。$
aws proton wait environment-template-version-registered \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0"
-
发布环境模板版本以使其可用于创建环境。
$
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
注册服务模板
-
创建一个服务模板。
服务模板资源跟踪服务模板版本。
$
aws proton create-service-template \ --name "load-balanced-fargate-svc" \ --display-name "Load balanced Fargate service" \ --description "Fargate service with an application load balancer"
-
创建一个模板同步配置。
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" -
等待成功注册服务模板版本。
如果该命令返回并且退出状态为
0
,则说明版本注册完成。这在脚本中是非常有用的,可以确保您在下一步中成功运行命令。$
aws proton wait service-template-version-registered \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0"
-
发布服务模板版本以使其可用于创建服务。
$
aws proton update-service-template-version \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"
步骤 3:部署环境
在此步骤中,作为管理员,您可以从 AWS Proton 环境模板实例化环境。
部署环境
-
为您注册的环境模板获取一个示例规范文件。
您可以从模板示例存储库中下载
environment-templates/fargate-env/spec/spec.yaml
文件。或者,您可以在本地获取整个存储库,并从environment-templates/fargate-env
目录中运行 create-environment 命令。 -
创建一个环境。
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" -
等待成功部署环境。
$
aws proton wait environment-deployed --name "fargate-env-prod"
步骤 4:部署服务 [应用程序开发人员]
在前面的步骤中,管理员注册并发布了一个服务模板,并部署了一个环境。作为应用程序开发人员,您现在可以创建 AWS Proton 服务并将其部署到 AWS Proton 环境中
部署服务
-
为管理员注册的服务模板获取一个示例规范文件。
您可以从模板示例存储库中下载
service-templates/load-balanced-fargate-svc/spec/spec.yaml
文件。或者,您可以在本地获取整个存储库,并从service-templates/load-balanced-fargate-svc
目录中运行 create-service 命令。 -
将AWS Proton 示例服务
存储库分支到您的 GitHub 账户或组织中。该存储库包含我们在本教程中使用的应用程序源代码。 -
创建服务。
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" -
等待成功部署服务。
$
aws proton wait service-created --name "static-website"
-
检索输出并查看您的新网站。
运行以下命令:
$
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
实例输出的值是新服务网站的终端节点。使用浏览器导航到该终端节点。您应该会在静态页面上看到以下图形:
步骤 5:清理(可选)
在此步骤中,当您浏览完作为本教程一部分创建的 AWS 资源后,为了节省与这些资源相关的成本,可以将其删除。
删除教程资源
-
要删除服务,请运行以下命令:
$
aws proton delete-service --name "static-website"
-
要删除环境,请运行以下命令:
$
aws proton delete-environment --name "fargate-env-prod"
-
要删除服务模板,请运行以下命令:
$
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"
-
要删除环境模板,请运行以下命令:
$
aws proton delete-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT"
$
aws proton delete-environment-template --name "fargate-env"