

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

# 自定义资源和 Application Auto Scaling
<a name="services-that-can-integrate-custom"></a>

您可以使用目标跟踪扩缩策略、分步扩缩策略和计划的扩缩来扩展自定义资源。

使用以下信息可帮助您将自定义资源与 Application Auto Scaling 集成。

## 为自定义资源创建服务相关角色
<a name="integrate-service-linked-role-custom"></a>

使用 Application Auto Scaling 将自定义资源注册为可扩展目标 AWS 账户 时，将在您的中自动创建以下服务相关角色。此角色允许 Application Auto Scaling 在您的账户中执行受支持的操作。有关更多信息，请参阅 [Application Auto Scaling 的服务相关角色](application-auto-scaling-service-linked-roles.md)。
+ `AWSServiceRoleForApplicationAutoScaling_CustomResource`

## 服务相关角色使用的服务委托人
<a name="integrate-service-principal-custom"></a>

上一节中的服务相关角色只能由为角色定义的信任关系授权的服务委托人担任。Application Auto Scaling 使用的服务相关角色为以下服务委托人授予访问权限：
+ `custom-resource.application-autoscaling.amazonaws.com`

## 使用 Application Auto Scaling 将自定义资源注册为可扩展目标
<a name="integrate-register-custom"></a>

Application Auto Scaling 需要一个可扩展目标，然后才能为自定义资源创建扩缩策略或计划的操作。可扩展目标是 Application Auto Scaling 可以横向扩展或横向缩减的资源。可扩展目标由资源 ID、可扩展维度和命名空间的组合唯一标识。

要使用 AWS CLI 或其中一个配置自动缩放 AWS SDKs，可以使用以下选项：
+ AWS CLI: 

  为自定义资源调用 [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) 命令。以下示例将自定义资源注册为可扩展目标，最小所需计数为一个容量单位，最大所需计数为 10 个容量单位。`custom-resource-id.txt` 文件包含一个标识资源 ID 的字符串，它表示通过 Amazon API Gateway 终端节点到自定义资源的路径。

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace custom-resource \
    --scalable-dimension custom-resource:ResourceType:Property \
    --resource-id file://~/custom-resource-id.txt \
    --min-capacity 1 \
    --max-capacity 10
  ```

  `custom-resource-id.txt` 的内容：

  ```
  https://example.execute-api.us-west-2.amazonaws.com/prod/scalableTargetDimensions/1-23456789
  ```

  如果成功，该命令会返回可扩展目标的 ARN。

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS 软件开发工具包：

  调用 [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) 操作并提供 `ResourceId`、`ScalableDimension`、`ServiceNamespace`、`MinCapacity` 和 `MaxCapacity` 作为参数。

## 相关资源
<a name="custom-related-resources"></a>

如果您刚刚开始使用 Application Auto Scaling，则可以在以下文档中找到有关扩展自定义资源的其它有用信息：

[GitHub存储库](https://github.com/aws/aws-auto-scaling-custom-resource)