Amazon S3 部署操作 - AWS CodePipeline

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

Amazon S3 部署操作

您可以使用 Amazon S3 部署操作,向用于静态网站托管或归档的 Amazon S3 桶部署文件。您可以指定是否在将部署文件上传到桶之前提取部署文件。

注意

本参考主题介绍了 Amazon S3 部署操作, CodePipeline 其中部署平台是配置为托管的 Amazon S3 存储桶。有关中 Amazon S3 源操作的参考信息 CodePipeline,请参阅Amazon S3 源操作

操作类型

  • 类别:Deploy

  • 拥有者:AWS

  • 提供方:S3

  • 版本:1

配置参数

BucketName

必需:是

要用来存储源文件的 Amazon S3 桶的名称。

Extract

必需:是

如果为 true,则会规定在上传之前提取文件。否则,应用程序文件将保持压缩状态以供上传,如托管静态网站的情况。如果为 false,则 ObjectKey 为必填项。

ObjectKey

这是有条件的。如果 Extract = false,则为必需

以唯一方式标识 S3 桶中对象的 Amazon S3 对象密钥的名称。

KMS EncryptionKey ARN

必需:否

主机存储桶的 AWS KMS 加密密钥的 ARN。KMSEncryptionKeyARN 参数使用提供的 AWS KMS key对上传的构件进行加密。对于 KMS 密钥,您可以使用密钥 ID、密钥 ARN 或别名 ARN。

注意

别名只能在创建 KMS 密钥的账户中识别。对于跨账户操作,您只能使用密钥 ID 或密钥 ARN 来标识密钥。跨账户操作涉及使用其他账户(AccountB)的角色,因此指定密钥 ID 将使用其他账户(AccountB)的密钥。

重要

CodePipeline 仅支持对称 KMS 密钥。请勿使用非对称 KMS 密钥对 S3 桶中的数据进行加密。

CannedACL

必需:否

CannedACL 参数将指定的标准 ACL 应用于部署到 Amazon S3 的对象。这将覆盖已应用于对象的任何现有 ACL。

CacheControl

必需:否

CacheControl 参数控制桶中对象的请求/响应的缓存行为。有关有效值的列表,请参阅 HTTP 操作的 Cache-Control 标头字段。要在 CacheControl 中输入多个值,请在每个值之间使用逗号。您可以为 CLI 在每个逗号后添加一个空格(可选),如本示例所示:

"CacheControl": "public, max-age=0, no-transform"

输入构件

  • 构件数:1

  • 描述:用于部署或存档的文件由 CodePipeline源存储库获取、压缩和上传。

输出构件

  • 构件数:0

  • 描述:输出构件不适用于此操作类型。

操作配置示例

下面展示了操作配置的示例。

Extract 设置为 false 时的示例配置

以下示例显示了在 Extract 字段设置为 false 的情况下,创建操作时的默认操作配置。

YAML
Name: Deploy Actions: - Name: Deploy ActionTypeId: Category: Deploy Owner: AWS Provider: S3 Version: '1' RunOrder: 1 Configuration: BucketName: website-bucket Extract: 'false' OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: us-west-2 Namespace: DeployVariables
JSON
{ "Name": "Deploy", "Actions": [ { "Name": "Deploy", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "S3", "Version": "1" }, "RunOrder": 1, "Configuration": { "BucketName": "website-bucket", "Extract": "false" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "us-west-2", "Namespace": "DeployVariables" } ] },

Extract 设置为 true 时的示例配置

以下示例显示了在 Extract 字段设置为 true 的情况下,创建操作时的默认操作配置。

YAML
Name: Deploy Actions: - Name: Deploy ActionTypeId: Category: Deploy Owner: AWS Provider: S3 Version: '1' RunOrder: 1 Configuration: BucketName: website-bucket Extract: 'true' ObjectKey: MyWebsite OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: us-west-2 Namespace: DeployVariables
JSON
{ "Name": "Deploy", "Actions": [ { "Name": "Deploy", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "S3", "Version": "1" }, "RunOrder": 1, "Configuration": { "BucketName": "website-bucket", "Extract": "true", "ObjectKey": "MyWebsite" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "us-west-2", "Namespace": "DeployVariables" } ] },

下列相关资源在您使用此操作的过程中会有所帮助。

  • 教程:创建以 Amazon S3 作为部署提供程序的管道:本教程将演示两个示例,引导您创建具有 S3 部署操作的管道。您可以下载示例文件,将文件上传到 CodeCommit 存储库,创建 S3 存储桶,然后配置存储桶以进行托管。接下来,您可以使用 CodePipeline 控制台创建管道并指定 Amazon S3 部署配置。

  • Amazon S3 源操作— 本操作参考提供了 Amazon S3 源操作的参考信息和示例 CodePipeline。