从2025年11月7日起,亚马逊 CodeCatalyst 将不再向新客户开放。如果您想使用该服务,请在2025年11月7日之前注册。有关更多信息,请参阅 如何迁移 CodeCatalyst。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:将构件上传到 Amazon S3
在本教程中,您将学习如何使用包含几个构建操作的 Amazon CodeCatalyst 工作流程将项目上传到 Amazon S3 存储桶。当工作流启动时,这些操作将按顺序运行。第一个构建操作生成两个文件(Hello.txt 和 Goodbye.txt),并将它们捆绑到一个构建构件中。第二个构建操作将构件上传到 Amazon S3。您需要将工作流配置为每次将提交命令推送到源存储库时运行。
先决条件
在开始之前,您需要:
-
你需要一个带有关联 AWS 账户的 CodeCatalyst 空间。有关更多信息,请参阅 创建空间。
-
在您的空间中,您需要一个空项目,其名称为:
codecatalyst-artifact-project使用从头开始选项来创建此项目。
有关更多信息,请参阅 在 Amazon 中创建一个空项目 CodeCatalyst。
-
在你的项目中,你需要一个 CodeCatalyst 名为:
codecatalyst-artifact-environment按如下方式配置此环境:
-
选择任何类型,例如开发。
-
将您的 AWS 账户与之关联。
-
对于默认 IAM 角色,选择任何角色。稍后需要指定另一个角色。
有关更多信息,请参阅 部署到 AWS 账户 和 VPCs。
-
步骤 1:创建 AWS 角色
在此步骤中,您将创建一个 AWS IAM 角色,稍后将该角色分配给工作流程中的构建操作。此角色授予 CodeCatalyst 构建操作访问您的 AWS 账户和写入存储项目的 Amazon S3 的权限。该角色被称为构建角色。
注意
如果您已经为其他教程创建了构建角色,也可以在本教程中使用该角色。只要确保该角色具有以下过程中显示的权限和信任策略即可。
有关 IAM 角色的更多信息,请参阅AWS AWS Identity and Access Management 用户指南中的 IAM 角色。
创建构建角色
-
按如下步骤操作,为角色创建策略:
-
登录到 AWS。
使用 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择策略。
-
选择创建策略。
-
选择 JSON 选项卡。
-
删除现有代码。
-
粘贴以下代码:
注意
第一次使用该角色运行工作流操作时,请在资源策略语句中使用以下通配符,然后在策略可用后使用资源名称缩小策略范围。
"Resource": "*" -
选择下一步:标签。
-
选择下一步:审核。
-
在名称中,输入:
codecatalyst-s3-build-policy -
选择创建策略。
现在,您已经创建了权限策略。
-
-
按如下步骤操作,创建构建角色:
-
在导航窗格中,选择角色,然后选择创建角色。
-
选择自定义信任策略。
-
删除现有的自定义信任策略。
-
添加以下自定义信任策略:
-
选择下一步。
-
在权限策略中,搜索
codecatalyst-s3-build-policy并选中其复选框。 -
选择下一步。
-
对于角色名称,输入:
codecatalyst-s3-build-role -
对于角色描述,输入:
CodeCatalyst build role -
选择创建角色。
现在,您已创建一个具有信任策略和权限策略的构建角色。
-
步骤 2:创建 Amazon S3 存储桶
在此步骤中,您将创建一个 Amazon S3 存储桶,Hello.txt 和 Goodbye.txt 构件会上传到该存储桶中。
创建 Amazon S3 存储桶
打开 Amazon S3 控制台,网址为 https://console.aws.amazon.com/s3/
。 -
在主窗格中,选择创建存储桶。
-
对于存储桶名称,输入:
codecatalyst-artifact-bucket -
对于 AWS 区域,选择一个区域。本教程假设您选择了美国西部(俄勒冈州)us-west-2。有关 Amazon S3 支持的区域的信息,请参阅《AWS 一般参考》中的 Amazon Simple Storage Service endpoints and quotas。
-
在页面底部选择创建存储桶。
-
复制您刚刚创建的存储桶的名称,例如:
codecatalyst-artifact-bucket
现在,您已经在美国西部(俄勒冈州)us-west-2 区域中创建了一个名为 codecatalyst-artifact-bucket 的存储桶。
步骤 3:创建源存储库
在此步骤中,您将在中创建源存储库 CodeCatalyst。此存储库用于存储本教程的工作流定义文件。
有关源存储库的更多信息,请参阅创建源存储库。
创建源存储库
打开 CodeCatalyst 控制台,网址为 https://codecatalyst.aws/
。 -
导航到您的项目
codecatalyst-artifact-project。 -
在导航窗格中,选择代码,然后选择源存储库。
-
选择添加存储库,然后选择创建存储库。
-
在存储库名称中,输入:
codecatalyst-artifact-source-repository -
选择创建。
现在,您已经创建了一个名为 codecatalyst-artifact-source-repository 的存储库。
步骤 4:创建工作流
在此步骤中,您将创建一个工作流,其中包含以下按顺序运行的构建基块:
-
触发器 – 当您将更改推送到源存储库时,此触发器会自动启动工作流运行。有关触发器的更多信息,请参阅使用触发器自动启动工作流运行。
-
一个名为
GenerateFiles的构建操作 –GenerateFiles操作在触发时,会创建两个文件(Hello.txt和Goodbye.txt),并将这两个文件打包到一个名为codecatalystArtifact的输出构件中。 -
另一个名为
Upload的构建操作 –GenerateFiles操作完成后,Upload操作会运行 AWS CLI 命令aws s3 sync,将codecatalystArtifact和源存储库中的文件上传到您的 Amazon S3 存储桶。已在 AWS CLI CodeCatalyst计算平台上预安装和预先配置,因此您无需安装或配置它。有关 CodeCatalyst 计算平台上预打包软件的更多信息,请参阅指定运行时环境映像。有关
aws s3 sync命令 AWS CLI的更多信息,请参阅《AWS CLI 命令参考》中的 sync。
有关构建操作的更多信息,请参阅使用工作流进行构建。
创建工作流
-
在导航窗格中,选择 CI/CD,然后选择工作流。
-
选择创建工作流。
-
删除 YAML 示例代码。
-
添加以下 YAML 代码:
注意
在接下来的 YAML 代码中,如果需要,可以省略
Connections:部分。如果您省略此部分,则必须确保您环境的默认 IAM 角色字段中指定的角色包含步骤 1:创建 AWS 角色中描述的权限和信任策略。有关使用默认 IAM 角色设置环境的更多信息,请参阅创建环境。Name: codecatalyst-artifact-workflow SchemaVersion: 1.0 Triggers: - Type: Push Branches: - main Actions: GenerateFiles: Identifier: aws/build@v1 Configuration: Steps: # Create the output files. - Run: echo "Hello, World!" > "Hello.txt" - Run: echo "Goodbye!" > "Goodbye.txt" Outputs: Artifacts: - Name: codecatalystArtifact Files: - "**/*" Upload: Identifier: aws/build@v1 DependsOn: - GenerateFiles Environment: Name:codecatalyst-artifact-environmentConnections: - Name:codecatalyst-account-connectionRole:codecatalyst-s3-build-roleInputs: Artifacts: - codecatalystArtifact Configuration: Steps: # Upload the output artifact to the S3 bucket. - Run: aws s3 sync . s3://codecatalyst-artifact-bucket在以上代码中,进行如下替换:
-
codecatalyst-artifact-environment使用您在中创建的环境的名称先决条件。 -
codecatalyst-account-connection使用您在中创建的账户连接的名称先决条件。 -
将
codecatalyst-s3-build-role替换为您在步骤 1:创建 AWS 角色中创建的构建角色的名称。 -
codecatalyst-artifact-bucket使用您在中创建的 Amazon S3 的名称步骤 2:创建 Amazon S3 存储桶。
有关此文件中的属性的信息,请参阅构建和测试操作 YAML。
-
-
(可选)选择验证,确保 YAML 代码在提交之前有效。
-
选择提交。
-
在提交工作流对话框中,输入以下内容:
-
对于工作流文件名,保留默认值
codecatalyst-artifact-workflow。 -
对于提交消息,输入:
add initial workflow file -
对于存储库,选择 codecatalyst-artifact-source-repository。
-
对于分支名称,选择主。
-
选择提交。
现在,您已创建工作流。由于在工作流顶部定义了触发器,因此工作流运行会自动启动。具体而言,当您将
codecatalyst-artifact-workflow.yaml文件提交(并推送)到源存储库时,触发器启动了工作流运行。 -
查看正在运行的工作流
-
在导航窗格中,选择 CI/CD,然后选择工作流。
-
选择您刚刚创建的工作流:
codecatalyst-artifact-workflow。 -
选择GenerateFiles查看第一个构建操作的进度。
-
选择上传以查看第二个构建操作的进度。
-
上传操作完成后,请执行以下操作:
-
如果工作流运行成功,请转到下一过程。
-
如果工作流运行失败,请选择日志来解决该问题。
-
步骤 5:验证结果
工作流程运行后,转到 Amazon S3 服务并查看您的codecatalyst-artifact-bucket存储桶。现在,该存储桶应包含以下文件和文件夹:
. |— .aws/ |— .git/ |Goodbye.txt |Hello.txt |REAME.md
已上传 Goodbye.txt 和 Hello.txt 文件,因为它们是 codecatalystArtifact 构件的一部分。已上传 .aws/、.git/ 和 README.md 文件,因为它们位于您的源存储库中。
清理
清理干净 CodeCatalyst AWS ,避免为这些服务收费。
要清理干净 CodeCatalyst
打开 CodeCatalyst 控制台,网址为 https://codecatalyst.aws/
。 -
删除
codecatalyst-artifact-source-repository源存储库。 -
删除
codecatalyst-artifact-workflow工作流。
要清理干净 AWS
-
在 Amazon S3 中进行清理,如下所示:
打开 Amazon S3 控制台,网址为 https://console.aws.amazon.com/s3/
。 -
删除
codecatalyst-artifact-bucket存储桶内的文件。 -
删除
codecatalyst-artifact-bucket存储桶。
-
在 IAM 中进行清理,如下所示:
使用 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
删除
codecatalyst-s3-build-policy。 -
删除
codecatalyst-s3-build-role。