

# AWS Config使用 的 示例AWS CLI
<a name="cli_config-service_code_examples"></a>

以下代码示例演示如何通过将 AWS Command Line Interface与 AWS Config 结合使用，来执行操作和实现常见场景。

*操作是大型程序的代码摘录*，必须在上下文中运行。您可以通过操作了解如何调用单个服务函数，还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接，您可以从中找到有关如何在上下文中设置和运行代码的说明。

**Topics**
+ [操作](#actions)

## 操作
<a name="actions"></a>

### `delete-config-rule`
<a name="config-service_DeleteConfigRule_cli_topic"></a>

以下代码示例演示了如何使用 `delete-config-rule`。

**AWS CLI**  
**删除 AWS Config 规则**  
以下命令将删除名为 `MyConfigRule` 的 AWS Config 规则：  

```
aws configservice delete-config-rule --config-rule-name MyConfigRule
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DeleteConfigRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/delete-config-rule.html)。

### `delete-delivery-channel`
<a name="config-service_DeleteDeliveryChannel_cli_topic"></a>

以下代码示例演示了如何使用 `delete-delivery-channel`。

**AWS CLI**  
**删除传输通道**  
以下命令删除默认的传输通道：  

```
aws configservice delete-delivery-channel --delivery-channel-name default
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DeleteDeliveryChannel](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/delete-delivery-channel.html)。

### `delete-evaluation-results`
<a name="config-service_DeleteEvaluationResults_cli_topic"></a>

以下代码示例演示了如何使用 `delete-evaluation-results`。

**AWS CLI**  
**手动删除评估结果**  
以下命令删除 AWS 托管规则 s3-bucket-versioning-enabled 的当前评估结果：  

```
aws configservice delete-evaluation-results --config-rule-name s3-bucket-versioning-enabled
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DeleteEvaluationResults](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/delete-evaluation-results.html)。

### `deliver-config-snapshot`
<a name="config-service_DeliverConfigSnapshot_cli_topic"></a>

以下代码示例演示了如何使用 `deliver-config-snapshot`。

**AWS CLI**  
**传输配置快照**  
以下命令将配置快照传输到属于默认传输通道的 Amazon S3 存储桶：  

```
aws configservice deliver-config-snapshot --delivery-channel-name default
```
输出：  

```
{
    "configSnapshotId": "d0333b00-a683-44af-921e-examplefb794"
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DeliverConfigSnapshot](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/deliver-config-snapshot.html)。

### `describe-compliance-by-config-rule`
<a name="config-service_DescribeComplianceByConfigRule_cli_topic"></a>

以下代码示例演示了如何使用 `describe-compliance-by-config-rule`。

**AWS CLI**  
**获取您的 AWS Config 规则的合规性信息**  
以下命令返回一个或多个 AWS 资源违反的每个 AWS Config 规则的合规性信息：  

```
aws configservice describe-compliance-by-config-rule --compliance-types NON_COMPLIANT
```
在输出中，每个 `CappedCount` 属性的值都表示有多少资源不符合相关规则。例如，以下输出表明 3 个资源不符合名为 `InstanceTypesAreT2micro` 的规则。  
输出：  

```
{
    "ComplianceByConfigRules": [
        {
            "Compliance": {
                "ComplianceContributorCount": {
                    "CappedCount": 3,
                    "CapExceeded": false
                },
                "ComplianceType": "NON_COMPLIANT"
            },
            "ConfigRuleName": "InstanceTypesAreT2micro"
        },
        {
            "Compliance": {
                "ComplianceContributorCount": {
                    "CappedCount": 10,
                    "CapExceeded": false
                },
                "ComplianceType": "NON_COMPLIANT"
            },
            "ConfigRuleName": "RequiredTagsForVolumes"
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribeComplianceByConfigRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/describe-compliance-by-config-rule.html)。

### `describe-compliance-by-resource`
<a name="config-service_DescribeComplianceByResource_cli_topic"></a>

以下代码示例演示了如何使用 `describe-compliance-by-resource`。

**AWS CLI**  
**获取 AWS 资源的合规性信息**  
以下命令返回由 AWS Config 记录且违反一条或多条规则的每个 EC2 实例的合规性信息：  

```
aws configservice describe-compliance-by-resource --resource-type AWS::EC2::Instance --compliance-types NON_COMPLIANT
```
在输出中，每个 `CappedCount` 属性的值都表示该资源违反了多少规则。例如，以下输出表明实例 `i-1a2b3c4d` 违反了 2 条规则。  
输出：  

```
{
    "ComplianceByResources": [
        {
            "ResourceType": "AWS::EC2::Instance",
            "ResourceId": "i-1a2b3c4d",
            "Compliance": {
                "ComplianceContributorCount": {
                    "CappedCount": 2,
                    "CapExceeded": false
                },
                "ComplianceType": "NON_COMPLIANT"
            }
        },
        {
            "ResourceType": "AWS::EC2::Instance",
            "ResourceId": "i-2a2b3c4d ",
            "Compliance": {
                "ComplianceContributorCount": {
                    "CappedCount": 3,
                    "CapExceeded": false
                },
                "ComplianceType": "NON_COMPLIANT"
            }
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribeComplianceByResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/describe-compliance-by-resource.html)。

### `describe-config-rule-evaluation-status`
<a name="config-service_DescribeConfigRuleEvaluationStatus_cli_topic"></a>

以下代码示例演示了如何使用 `describe-config-rule-evaluation-status`。

**AWS CLI**  
**获取 AWS Config 规则的状态信息**  
以下命令将返回名为 `MyConfigRule` 的 AWS Config 规则的状态信息：  

```
aws configservice describe-config-rule-evaluation-status --config-rule-names MyConfigRule
```
输出：  

```
{
    "ConfigRulesEvaluationStatus": [
        {
            "ConfigRuleArn": "arn:aws:config:us-east-1:123456789012:config-rule/config-rule-abcdef",
            "FirstActivatedTime": 1450311703.844,
            "ConfigRuleId": "config-rule-abcdef",
            "LastSuccessfulInvocationTime": 1450314643.156,
            "ConfigRuleName": "MyConfigRule"
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribeConfigRuleEvaluationStatus](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/describe-config-rule-evaluation-status.html)。

### `describe-config-rules`
<a name="config-service_DescribeConfigRules_cli_topic"></a>

以下代码示例演示了如何使用 `describe-config-rules`。

**AWS CLI**  
**获取 AWS Config 规则的详细信息**  
以下命令将返回名为 `InstanceTypesAreT2micro` 的 AWS Config 规则的详细信息：  

```
aws configservice describe-config-rules --config-rule-names InstanceTypesAreT2micro
```
输出：  

```
{
    "ConfigRules": [
        {
            "ConfigRuleState": "ACTIVE",
            "Description": "Evaluates whether EC2 instances are the t2.micro type.",
            "ConfigRuleName": "InstanceTypesAreT2micro",
            "ConfigRuleArn": "arn:aws:config:us-east-1:123456789012:config-rule/config-rule-abcdef",
            "Source": {
                "Owner": "CUSTOM_LAMBDA",
                "SourceIdentifier": "arn:aws:lambda:us-east-1:123456789012:function:InstanceTypeCheck",
                "SourceDetails": [
                    {
                        "EventSource": "aws.config",
                        "MessageType": "ConfigurationItemChangeNotification"
                    }
                ]
            },
            "InputParameters": "{\"desiredInstanceType\":\"t2.micro\"}",
            "Scope": {
                "ComplianceResourceTypes": [
                    "AWS::EC2::Instance"
                ]
            },
            "ConfigRuleId": "config-rule-abcdef"
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribeConfigRules](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/describe-config-rules.html)。

### `describe-configuration-recorder-status`
<a name="config-service_DescribeConfigurationRecorderStatus_cli_topic"></a>

以下代码示例演示了如何使用 `describe-configuration-recorder-status`。

**AWS CLI**  
**获取配置记录器的状态信息**  
以下命令返回默认配置记录器的状态。  

```
aws configservice describe-configuration-recorder-status
```
输出：  

```
{
    "ConfigurationRecordersStatus": [
        {
            "name": "default",
            "lastStatus": "SUCCESS",
            "recording": true,
            "lastStatusChangeTime": 1452193834.344,
            "lastStartTime": 1441039997.819,
            "lastStopTime": 1441039992.835
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribeConfigurationRecorderStatus](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/describe-configuration-recorder-status.html)。

### `describe-configuration-recorders`
<a name="config-service_DescribeConfigurationRecorders_cli_topic"></a>

以下代码示例演示了如何使用 `describe-configuration-recorders`。

**AWS CLI**  
**获取有关配置记录器的详细信息**  
以下命令返回有关默认配置记录器的详细信息：  

```
aws configservice describe-configuration-recorders
```
输出：  

```
{
    "ConfigurationRecorders": [
        {
            "recordingGroup": {
                "allSupported": true,
                "resourceTypes": [],
                "includeGlobalResourceTypes": true
            },
            "roleARN": "arn:aws:iam::123456789012:role/config-ConfigRole-A1B2C3D4E5F6",
            "name": "default"
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribeConfigurationRecorders](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/describe-configuration-recorders.html)。

### `describe-delivery-channel-status`
<a name="config-service_DescribeDeliveryChannelStatus_cli_topic"></a>

以下代码示例演示了如何使用 `describe-delivery-channel-status`。

**AWS CLI**  
**获取传输通道的状态信息**  
以下命令返回传输通道的状态：  

```
aws configservice describe-delivery-channel-status
```
输出：  

```
{
    "DeliveryChannelsStatus": [
        {
            "configStreamDeliveryInfo": {
                "lastStatusChangeTime": 1452193834.381,
                "lastStatus": "SUCCESS"
            },
            "configHistoryDeliveryInfo": {
                "lastSuccessfulTime": 1450317838.412,
                "lastStatus": "SUCCESS",
                "lastAttemptTime": 1450317838.412
            },
            "configSnapshotDeliveryInfo": {
                "lastSuccessfulTime": 1452185597.094,
                "lastStatus": "SUCCESS",
                "lastAttemptTime": 1452185597.094
            },
            "name": "default"
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribeDeliveryChannelStatus](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/describe-delivery-channel-status.html)。

### `describe-delivery-channels`
<a name="config-service_DescribeDeliveryChannels_cli_topic"></a>

以下代码示例演示了如何使用 `describe-delivery-channels`。

**AWS CLI**  
**获取有关传输通道的详细信息**  
以下命令返回有关传输通道的详细信息：  

```
aws configservice describe-delivery-channels
```
输出：  

```
{
    "DeliveryChannels": [
        {
            "snsTopicARN": "arn:aws:sns:us-east-1:123456789012:config-topic",
            "name": "default",
            "s3BucketName": "config-bucket-123456789012"
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DescribeDeliveryChannels](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/describe-delivery-channels.html)。

### `get-compliance-details-by-config-rule`
<a name="config-service_GetComplianceDetailsByConfigRule_cli_topic"></a>

以下代码示例演示了如何使用 `get-compliance-details-by-config-rule`。

**AWS CLI**  
**获取 AWS Config 规则的评估结果**  
以下命令返回所有不符合名为 `InstanceTypesAreT2micro` 的 AWS Config 规则的资源的评估结果：  

```
aws configservice get-compliance-details-by-config-rule --config-rule-name InstanceTypesAreT2micro --compliance-types NON_COMPLIANT
```
输出：  

```
{
    "EvaluationResults": [
        {
            "EvaluationResultIdentifier": {
                "OrderingTimestamp": 1450314635.065,
                "EvaluationResultQualifier": {
                    "ResourceType": "AWS::EC2::Instance",
                    "ResourceId": "i-1a2b3c4d",
                    "ConfigRuleName": "InstanceTypesAreT2micro"
                }
            },
            "ResultRecordedTime": 1450314645.261,
            "ConfigRuleInvokedTime": 1450314642.948,
            "ComplianceType": "NON_COMPLIANT"
        },
        {
            "EvaluationResultIdentifier": {
                "OrderingTimestamp": 1450314635.065,
                "EvaluationResultQualifier": {
                    "ResourceType": "AWS::EC2::Instance",
                    "ResourceId": "i-2a2b3c4d",
                    "ConfigRuleName": "InstanceTypesAreT2micro"
                }
            },
            "ResultRecordedTime": 1450314645.18,
            "ConfigRuleInvokedTime": 1450314642.902,
            "ComplianceType": "NON_COMPLIANT"
        },
        {
            "EvaluationResultIdentifier": {
                "OrderingTimestamp": 1450314635.065,
                "EvaluationResultQualifier": {
                    "ResourceType": "AWS::EC2::Instance",
                    "ResourceId": "i-3a2b3c4d",
                    "ConfigRuleName": "InstanceTypesAreT2micro"
                }
            },
            "ResultRecordedTime": 1450314643.346,
            "ConfigRuleInvokedTime": 1450314643.124,
            "ComplianceType": "NON_COMPLIANT"
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetComplianceDetailsByConfigRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/get-compliance-details-by-config-rule.html)。

### `get-compliance-details-by-resource`
<a name="config-service_GetComplianceDetailsByResource_cli_topic"></a>

以下代码示例演示了如何使用 `get-compliance-details-by-resource`。

**AWS CLI**  
**获取 AWS 资源的评估结果**  
以下命令返回 EC2 实例 `i-1a2b3c4d` 不符合的每条规则的评估结果：  

```
aws configservice get-compliance-details-by-resource --resource-type AWS::EC2::Instance --resource-id i-1a2b3c4d --compliance-types NON_COMPLIANT
```
输出：  

```
{
    "EvaluationResults": [
        {
            "EvaluationResultIdentifier": {
                "OrderingTimestamp": 1450314635.065,
                "EvaluationResultQualifier": {
                    "ResourceType": "AWS::EC2::Instance",
                    "ResourceId": "i-1a2b3c4d",
                    "ConfigRuleName": "InstanceTypesAreT2micro"
                }
            },
            "ResultRecordedTime": 1450314643.288,
            "ConfigRuleInvokedTime": 1450314643.034,
            "ComplianceType": "NON_COMPLIANT"
        },
        {
            "EvaluationResultIdentifier": {
                "OrderingTimestamp": 1450314635.065,
                "EvaluationResultQualifier": {
                    "ResourceType": "AWS::EC2::Instance",
                    "ResourceId": "i-1a2b3c4d",
                    "ConfigRuleName": "RequiredTagForEC2Instances"
                }
            },
            "ResultRecordedTime": 1450314645.261,
            "ConfigRuleInvokedTime": 1450314642.948,
            "ComplianceType": "NON_COMPLIANT"
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetComplianceDetailsByResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/get-compliance-details-by-resource.html)。

### `get-compliance-summary-by-config-rule`
<a name="config-service_GetComplianceSummaryByConfigRule_cli_topic"></a>

以下代码示例演示了如何使用 `get-compliance-summary-by-config-rule`。

**AWS CLI**  
**获取您的 AWS Config 规则的合规性摘要**  
以下命令返回合规和不合规的规则数量。  

```
aws configservice get-compliance-summary-by-config-rule
```
在输出中，每个 `CappedCount` 属性的值都表示有多少规则合规或不合规。  
输出：  

```
{
    "ComplianceSummary": {
        "NonCompliantResourceCount": {
            "CappedCount": 3,
            "CapExceeded": false
        },
        "ComplianceSummaryTimestamp": 1452204131.493,
        "CompliantResourceCount": {
            "CappedCount": 2,
            "CapExceeded": false
        }
    }
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetComplianceSummaryByConfigRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/get-compliance-summary-by-config-rule.html)。

### `get-compliance-summary-by-resource-type`
<a name="config-service_GetComplianceSummaryByResourceType_cli_topic"></a>

以下代码示例演示了如何使用 `get-compliance-summary-by-resource-type`。

**AWS CLI**  
**获取所有资源类型的合规性摘要**  
以下命令返回合规和不合规的 AWS 资源数量。  

```
aws configservice get-compliance-summary-by-resource-type
```
在输出中，每个 `CappedCount` 属性的值都表示有多少资源合规或不合规。  
输出：  

```
{
    "ComplianceSummariesByResourceType": [
        {
            "ComplianceSummary": {
                "NonCompliantResourceCount": {
                    "CappedCount": 16,
                    "CapExceeded": false
                },
                "ComplianceSummaryTimestamp": 1453237464.543,
                "CompliantResourceCount": {
                    "CappedCount": 10,
                    "CapExceeded": false
                }
            }
        }
    ]
}
```
**获取特定资源类型的合规性摘要**  
该命令返回合规和不合规的 EC2 实例数量。  

```
aws configservice get-compliance-summary-by-resource-type --resource-types AWS::EC2::Instance
```
在输出中，每个 `CappedCount` 属性的值都表示有多少资源合规或不合规。  
输出：  

```
{
    "ComplianceSummariesByResourceType": [
        {
            "ResourceType": "AWS::EC2::Instance",
            "ComplianceSummary": {
                "NonCompliantResourceCount": {
                    "CappedCount": 3,
                    "CapExceeded": false
                },
                "ComplianceSummaryTimestamp": 1452204923.518,
                "CompliantResourceCount": {
                    "CappedCount": 7,
                    "CapExceeded": false
                }
            }
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetComplianceSummaryByResourceType](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/get-compliance-summary-by-resource-type.html)。

### `get-resource-config-history`
<a name="config-service_GetResourceConfigHistory_cli_topic"></a>

以下代码示例演示了如何使用 `get-resource-config-history`。

**AWS CLI**  
**获取 AWS 资源的配置历史记录**  
以下命令返回 ID 为 `i-1a2b3c4d` 的 EC2 实例的配置项目列表：  

```
aws configservice get-resource-config-history --resource-type AWS::EC2::Instance --resource-id i-1a2b3c4d
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetResourceConfigHistory](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/get-resource-config-history.html)。

### `get-status`
<a name="config-service_GetStatus_cli_topic"></a>

以下代码示例演示了如何使用 `get-status`。

**AWS CLI**  
**获取 AWS Config 的状态**  
以下命令返回传输通道和配置记录器的状态。  

```
aws configservice get-status
```
输出：  

```
Configuration Recorders:

name: default
recorder: ON
last status: SUCCESS

Delivery Channels:

name: default
last stream delivery status: SUCCESS
last history delivery status: SUCCESS
last snapshot delivery status: SUCCESS
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetStatus](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/get-status.html)。

### `list-discovered-resources`
<a name="config-service_ListDiscoveredResources_cli_topic"></a>

以下代码示例演示了如何使用 `list-discovered-resources`。

**AWS CLI**  
**列出 AWS Config 已发现的资源**  
以下命令列出 AWS Config 已发现的 EC2 实例：  

```
aws configservice list-discovered-resources --resource-type AWS::EC2::Instance
```
输出：  

```
{
    "resourceIdentifiers": [
        {
            "resourceType": "AWS::EC2::Instance",
            "resourceId": "i-1a2b3c4d"
        },
        {
            "resourceType": "AWS::EC2::Instance",
            "resourceId": "i-2a2b3c4d"
        },
        {
            "resourceType": "AWS::EC2::Instance",
            "resourceId": "i-3a2b3c4d"
        }
    ]
}
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListDiscoveredResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/list-discovered-resources.html)。

### `put-config-rule`
<a name="config-service_PutConfigRule_cli_topic"></a>

以下代码示例演示了如何使用 `put-config-rule`。

**AWS CLI**  
**添加 AWS 托管 Config 规则**  
以下命令提供用于添加 AWS 托管 Config 规则的 JSON 代码：  

```
aws configservice put-config-rule --config-rule file://RequiredTagsForEC2Instances.json
```
`RequiredTagsForEC2Instances.json` 是一个包含规则配置的 JSON 文件：  

```
{
  "ConfigRuleName": "RequiredTagsForEC2Instances",
  "Description": "Checks whether the CostCenter and Owner tags are applied to EC2 instances.",
  "Scope": {
    "ComplianceResourceTypes": [
      "AWS::EC2::Instance"
    ]
  },
  "Source": {
    "Owner": "AWS",
    "SourceIdentifier": "REQUIRED_TAGS"
  },
  "InputParameters": "{\"tag1Key\":\"CostCenter\",\"tag2Key\":\"Owner\"}"
}
```
对于 `ComplianceResourceTypes` 属性，此 JSON 代码将范围限制为 `AWS::EC2::Instance` 类型的资源，因此，AWS Config 将仅根据规则评估 EC2 实例。由于该规则是托管规则，因此 `Owner` 属性设置为，`AWS``SourceIdentifier` 属性设置为规则标识符。`REQUIRED_TAGS`对于 `InputParameters` 属性，指定了规则所需的标签键 `CostCenter` 和 `Owner`。  
如果命令成功，则 AWS Config 不返回任何输出。要验证规则配置，请运行 describe-config-rules 命令并指定规则名称。  
**添加客户托管的 Config 规则**  
以下命令提供用于添加客户托管 Config 规则的 JSON 代码：  

```
aws configservice put-config-rule --config-rule file://InstanceTypesAreT2micro.json
```
`InstanceTypesAreT2micro.json` 是一个包含规则配置的 JSON 文件：  

```
{
  "ConfigRuleName": "InstanceTypesAreT2micro",
  "Description": "Evaluates whether EC2 instances are the t2.micro type.",
  "Scope": {
    "ComplianceResourceTypes": [
      "AWS::EC2::Instance"
    ]
  },
  "Source": {
    "Owner": "CUSTOM_LAMBDA",
    "SourceIdentifier": "arn:aws:lambda:us-east-1:123456789012:function:InstanceTypeCheck",
    "SourceDetails": [
      {
        "EventSource": "aws.config",
        "MessageType": "ConfigurationItemChangeNotification"
      }
    ]
  },
  "InputParameters": "{\"desiredInstanceType\":\"t2.micro\"}"
}
```
对于 `ComplianceResourceTypes` 属性，此 JSON 代码将范围限制为 `AWS::EC2::Instance` 类型的资源，因此，AWS Config 将仅根据规则评估 EC2 实例。由于此规则是客户托管规则，因此，`Owner` 属性设置为，`CUSTOM_LAMBDA``SourceIdentifier` 属性设置为 AWS Lambda 函数的 ARN。`SourceDetails` 对象为必填项。当 AWS Config 调用 AWS Lambda 函数来根据规则评估资源时，为 `InputParameters` 属性指定的参数将传递给该函数。  
如果命令成功，则 AWS Config 不返回任何输出。要验证规则配置，请运行 describe-config-rules 命令并指定规则名称。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [PutConfigRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/put-config-rule.html)。

### `put-configuration-recorder`
<a name="config-service_PutConfigurationRecorder_cli_topic"></a>

以下代码示例演示了如何使用 `put-configuration-recorder`。

**AWS CLI**  
**示例 1：记录所有支持的资源**  
以下命令创建一个配置记录器，用于跟踪对所有支持的资源类型（包括全局资源类型）的更改：  

```
aws configservice put-configuration-recorder \
    --configuration-recorder name=default,roleARN=arn:aws:iam::123456789012:role/config-role \
    --recording-group allSupported=true,includeGlobalResourceTypes=true
```
如果命令成功，则 AWS Config 不返回任何输出。要验证配置记录器的设置，请运行 describe-configuration-recorders 命令。  
**示例 2：记录指定资源的类型**  
以下命令创建一个配置记录器，该记录器仅跟踪在 JSON 文件中为 --recording-group 选项指定的资源类型的更改：  

```
aws configservice put-configuration-recorder \
    --configuration-recorder name=default,roleARN=arn:aws:iam::123456789012:role/config-role \
    --recording-group file://recordingGroup.json
```
recordingGroup.json 是一个 JSON 文件，它指定了 AWS Config 将记录的资源类型：  

```
{
    "allSupported": false,
    "includeGlobalResourceTypes": false,
    "resourceTypes": [
        "AWS::EC2::EIP",
        "AWS::EC2::Instance",
        "AWS::EC2::NetworkAcl",
        "AWS::EC2::SecurityGroup",
        "AWS::CloudTrail::Trail",
        "AWS::EC2::Volume",
        "AWS::EC2::VPC",
        "AWS::IAM::User",
        "AWS::IAM::Policy"
    ]
}
```
您必须将 allSupported 和 includeGlobalResourceTypes 选项设置为 false 或者忽略它们，才可以为 resourceTypes 键指定资源类型。  
如果命令成功，则 AWS Config 不返回任何输出。要验证配置记录器的设置，请运行 describe-configuration-recorders 命令。  
**示例 3：选择除指定资源类型之外的所有支持的资源**  
以下命令创建一个配置记录器，该记录器仅跟踪当前和未来支持的所有资源类型的更改，不包括在 JSON 文件中为 --recording-group 选项指定的资源类型：  

```
aws configservice put-configuration-recorder \
    --configuration-recorder name=default,roleARN=arn:aws:iam::123456789012:role/config-role \
    --recording-group file://recordingGroup.json
```
recordingGroup.json 是一个 JSON 文件，它指定了 AWS Config 将记录的资源类型：  

```
{
    "allSupported": false,
    "exclusionByResourceTypes": {
        "resourceTypes": [
        "AWS::Redshift::ClusterSnapshot",
        "AWS::RDS::DBClusterSnapshot",
        "AWS::CloudFront::StreamingDistribution"
    ]
    },
        "includeGlobalResourceTypes": false,
        "recordingStrategy": {
        "useOnly": "EXCLUSION_BY_RESOURCE_TYPES"
    },
}
```
在指定不记录的资源类型之前：1) 必须将 allSupported 和 includeGlobalResourceTypes 选项设置为 false 或将其省略；2) 必须将 RecordingStrategy 的 useOnly 字段设置为 EXCLUSION\$1BY\$1RESOURCE\$1TYPES。  
如果命令成功，则 AWS Config 不返回任何输出。要验证配置记录器的设置，请运行 describe-configuration-recorders 命令。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [PutConfigurationRecorder](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/put-configuration-recorder.html)。

### `put-delivery-channel`
<a name="config-service_PutDeliveryChannel_cli_topic"></a>

以下代码示例演示了如何使用 `put-delivery-channel`。

**AWS CLI**  
**创建传输通道**  
以下命令以 JSON 代码的形式提供传输通道的设置：  

```
aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json
```
`deliveryChannel.json` 文件指定了传输通道的属性：  

```
{
    "name": "default",
    "s3BucketName": "config-bucket-123456789012",
    "snsTopicARN": "arn:aws:sns:us-east-1:123456789012:config-topic",
    "configSnapshotDeliveryProperties": {
        "deliveryFrequency": "Twelve_Hours"
    }
}
```
此示例设置了以下属性：  
`name`——传输通道的名称。默认情况下，AWS Config 会将名称 `default` 分配给新的传输通道。您无法使用 `put-delivery-channel` 命令更新传输通道名称。有关更改名称的步骤，请参阅“重命名传输通道”。`s3BucketName`- AWS Config 向其传输配置快照和配置历史记录文件的 Amazon S3 存储桶的名称。如果您指定的存储桶属于其他 AWS 账户，则该存储桶必须拥有授予 AWS Config 访问权限的策略。有关更多信息，请参阅 Amazon S3 存储桶的权限。  
`snsTopicARN` - Amazon SNS 主题的 Amazon 资源名称（ARN），AWS Config 会向其发送配置更改通知。如果您从其他账户选择主题，则该主题必须拥有授予 AWS Config 访问权限的策略。有关更多信息，请参阅 Amazon SNS 主题的权限。  
`configSnapshotDeliveryProperties` - 包含 `deliveryFrequency` 属性，该属性设置 AWS Config 传输配置快照的频率以及它为定期 Config 规则调用评估的频率。  
如果命令成功，则 AWS Config 不返回任何输出。要验证您的传输通道的设置，请运行 describe-delivery-channels 命令。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [PutDeliveryChannel](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/put-delivery-channel.html)。

### `start-config-rules-evaluation`
<a name="config-service_StartConfigRulesEvaluation_cli_topic"></a>

以下代码示例演示了如何使用 `start-config-rules-evaluation`。

**AWS CLI**  
**对 AWS Config 规则运行按需评估**  
以下命令启动对两个 AWS 托管规则的评估：  

```
aws configservice start-config-rules-evaluation --config-rule-names s3-bucket-versioning-enabled cloudtrail-enabled
```
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [StartConfigRulesEvaluation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/start-config-rules-evaluation.html)。

### `start-configuration-recorder`
<a name="config-service_StartConfigurationRecorder_cli_topic"></a>

以下代码示例演示了如何使用 `start-configuration-recorder`。

**AWS CLI**  
**启动配置记录器**  
以下命令启动默认配置记录器：  

```
aws configservice start-configuration-recorder --configuration-recorder-name default
```
如果命令成功，则 AWS Config 不返回任何输出。要验证 AWS Config 是否正在记录您的资源，请运行 get-status 命令。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [StartConfigurationRecorder](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/start-configuration-recorder.html)。

### `stop-configuration-recorder`
<a name="config-service_StopConfigurationRecorder_cli_topic"></a>

以下代码示例演示了如何使用 `stop-configuration-recorder`。

**AWS CLI**  
**停止配置记录器**  
以下命令停止默认配置记录器：  

```
aws configservice stop-configuration-recorder --configuration-recorder-name default
```
如果命令成功，则 AWS Config 不返回任何输出。要验证 AWS Config 是否未在记录您的资源，请运行 get-status 命令。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [StopConfigurationRecorder](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/stop-configuration-recorder.html)。

### `subscribe`
<a name="config-service_Subscribe_cli_topic"></a>

以下代码示例演示了如何使用 `subscribe`。

**AWS CLI**  
**订阅 AWS Config**  
以下命令创建默认传输通道和配置记录器。该命令还指定 AWS Config 将向其传输配置信息的 Amazon S3 存储桶和 Amazon SNS 主题：  

```
aws configservice subscribe --s3-bucket config-bucket-123456789012 --sns-topic arn:aws:sns:us-east-1:123456789012:config-topic --iam-role arn:aws:iam::123456789012:role/ConfigRole-A1B2C3D4E5F6
```
输出：  

```
Using existing S3 bucket: config-bucket-123456789012
Using existing SNS topic: arn:aws:sns:us-east-1:123456789012:config-topic
Subscribe succeeded:

Configuration Recorders: [
    {
        "recordingGroup": {
            "allSupported": true,
            "resourceTypes": [],
            "includeGlobalResourceTypes": false
        },
        "roleARN": "arn:aws:iam::123456789012:role/ConfigRole-A1B2C3D4E5F6",
        "name": "default"
    }
]

Delivery Channels: [
    {
        "snsTopicARN": "arn:aws:sns:us-east-1:123456789012:config-topic",
        "name": "default",
        "s3BucketName": "config-bucket-123456789012"
    }
]
```
+  有关 API 详细信息，请参阅《AWS CLI Command Reference》**中的 [Subscribe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/subscribe.html)。