

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

# 使用 AWS CloudFormation 创建 CodeArtifact 资源
<a name="cloudformation-codeartifact"></a>

CodeArtifact 与 AWS CloudFormation 集成，后者是一项服务，有助于对 AWS 资源进行建模和设置，这样您只需花较少的时间来创建和管理资源与基础设施。您可以创建一个模板来描述所需的所有 AWS 资源，然后 CloudFormation 可为您调配和配置这些资源。

使用 CloudFormation 时，您可以重复使用您的模板来不断地重复设置您的 CodeArtifact 资源。仅描述您的资源一次，然后在多个账户和 AWS 区域中反复配置相同的资源。

## CodeArtifact 和 CloudFormation 模板
<a name="working-with-templates"></a>

要为 CodeArtifact 和相关服务预置和配置资源，您必须了解 [CloudFormation 模板](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)。模板是 JSON 或 YAML 格式的文本文件。这些模板可描述您要在 CloudFormation 堆栈中预置的资源。如果您不熟悉 JSON 或 YAML，可以在 CloudFormation Designer 的帮助下开始使用 CloudFormation 模板。有关更多信息，请参阅**《AWS CloudFormation 用户指南》中的[什么是 AWS CloudFormation Designer？](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html)

CodeArtifact 支持在 CloudFormation 中创建域、存储库和程序包组。有关更多信息（包括 JSON 和 YAML 模板示例），请参阅《CloudFormation 用户指南》**中的以下主题：
+ [AWS::CodeArtifact::Domain](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html)
+ [AWS::CodeArtifact::Repository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html)
+ [AWS::CodeArtifact::PackageGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html) 

## 防止删除 CodeArtifact 资源
<a name="preventing-deletion-cloudformation"></a>

CodeArtifact 存储库包含关键的应用程序依赖关系，如果丢失，可能不容易重新创建。为了在使用 CloudFormation 管理 CodeArtifact 资源时保护 CodeArtifact 资源免遭意外删除，请在所有域和存储库中添加值为 `Retain` 的 `DeletionPolicy` 和 `UpdateRetainPolicy` 属性。如果从堆栈模板中移除资源或整个堆栈被意外删除，这种方法可防止删除。以下 YAML 片段显示了具有这些属性的基本域和存储库：

```
Resources:
    MyCodeArtifactDomain:
        Type: 'AWS::CodeArtifact::Domain'
        DeletionPolicy: Retain
        UpdateReplacePolicy: Retain
        Properties:
            DomainName: "my-domain"

    MyCodeArtifactRepository:
        Type: 'AWS::CodeArtifact::Repository'
        DeletionPolicy: Retain
        UpdateReplacePolicy: Retain
        Properties:
            RepositoryName: "my-repo"
            DomainName: !GetAtt MyCodeArtifactDomain.Name
```

有关这些属性的更多信息，请参阅《AWS CloudFormation 用户指南》**中的 [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) 和 [UpdateReplacePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html)。

## 了解有关 CloudFormation 的更多信息
<a name="learn-more-cloudformation"></a>

要了解有关 CloudFormation 的更多信息，请参阅以下资源：
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
+ [AWS CloudFormation《用户指南](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)》
+ [AWS CloudFormation《命令行界面用户指南](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)》