

# 在 Amazon ECS 上启用应用程序
<a name="CloudWatch-Application-Signals-Enable-ECSMain"></a>

遵照本部分的自定义设置步骤，在 Amazon ECS 上启用 CloudWatch Application Signals。

对于在 Amazon ECS 上运行的应用程序，您可以自行安装并配置 CloudWatch 代理和 Amazon Distro for OpenTelemetry。在这些启用了自定义 Application Signals 设置的架构上，Application Signals 不会自动发现您的服务的名称或运行这些服务的主机或集群。您必须在自定义设置期间指定这些名称，而您指定的名称就是显示在 Application Signals 控制面板上的名称。

## 使用自定义设置在 Amazon ECS 上启用 Application Signals
<a name="CloudWatch-Application-Signals-Enable-ECS"></a>

使用这些自定义设置说明，将您在 Amazon ECS 上的应用程序载入到 CloudWatch Application Signals。您可以自行安装并配置 CloudWatch 代理和 Amazon Distro for OpenTelemetry。

有两种方法可以在 Amazon ECS 上部署 Application Signals。请根据您的环境选择一种适合的方法。
+ [使用挎斗策略进行部署](CloudWatch-Application-Signals-ECS-Sidecar.md) – 向集群中的每个任务定义添加一个 CloudWatch 代理挎斗容器。

  优势：
  + 可同时支持 `ec2` 和 `Fargate` 启动类型。
  + 在设置环境变量时，可以始终将 `localhost` 作为 IP 地址。

  劣势：
  + 必须为集群中运行的每个服务任务设置该 CloudWatch 代理挎斗容器。
  + 仅支持 `awsvpc` 网络模式。
+ [使用进程守护程序策略进行部署](CloudWatch-Application-Signals-ECS-Daemon.md) – 只需在集群中添加一次 CloudWatch 代理任务，[Amazon ECS 进程守护程序计划策略](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/ecs_services.html#service_scheduler_daemon)就会根据需要部署该任务。可确保每个实例都持续接收跟踪和指标，从而实现集中可见性，无需在每个应用程序任务定义中将代理作为挎斗运行。

  优势：
  + 只需在集群中为 CloudWatch 代理设置一次进程守护程序服务。

  劣势：
  + 不支持 Fargate 启动类型。
  + 如果您使用的是 `awsvpc` 或 `bridge` 网络模式，则必须在环境变量中手动指定每个容器实例的私有 IP 地址。

无论使用哪种方法，在 Amazon ECS 集群上，Application Signals 都不会自动发现服务的名称。您必须在自定义设置期间指定服务名称，而您指定的名称就是显示在 Application Signals 控制面板上的名称。

## 使用模型上下文协议（MCP）服务器在 Amazon ECS 上启用 Application Signals
<a name="CloudWatch-Application-Signals-ECS-MCP"></a>

您可以使用 CloudWatch Application Signals 模型上下文协议（MCP）服务器，通过对话式人工智能交互在 Amazon ECS 集群上启用 Application Signals。这为设置 Application Signals 监控提供了自然语言界面。

MCP 服务器通过理解您的需求并生成相应的配置来自动执行启用过程。您只需简单描述要启用的功能，无需手动执行控制台步骤或编写 CDK 代码。

### 先决条件
<a name="CloudWatch-Application-Signals-ECS-MCP-Prerequisites"></a>

在使用 MCP 服务器启用 Application Signals 之前，请确保满足以下条件：
+ 支持 MCP 的开发环境（例如 Kiro、Claude Desktop、带有 MCP 扩展的 VSCode 或其他与 MCP 兼容的工具）
+ 已在 IDE 中配置 CloudWatch Application Signals MCP 服务器。有关详细的设置说明，请参阅 [CloudWatch Application Signals MCP 服务器文档](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server)。

### 使用 MCP 服务器
<a name="CloudWatch-Application-Signals-ECS-MCP-Usage"></a>

在 IDE 中配置好 CloudWatch Application Signals MCP 服务器后，即可使用自然语言提示来请求启用指导。尽管编码助手可以从项目结构中推断出上下文，但在提示中提供具体细节有助于确保获得更准确、更相关的指导。包含一些信息，例如应用程序语言、Amazon ECS 集群名称、部署策略（sidecar 或进程守护程序）以及基础设施和应用程序代码的绝对路径等等。

**最佳实践提示（具体且完整）：**

```
"Enable Application Signals for my Python service running on ECS.
My app code is in /home/user/flask-api and IaC is in /home/user/flask-api/terraform"

"I want to add observability to my Node.js application on ECS cluster 'production-cluster' using sidecar deployment.
The application code is at /Users/dev/checkout-service and
the task definitions are at /Users/dev/checkout-service/ecs"

"Help me instrument my Java Spring Boot application on ECS with Application Signals using daemon strategy.
Application directory: /opt/apps/payment-api
CDK infrastructure: /opt/apps/payment-api/cdk"
```

**效果较差的提示：**

```
"Enable monitoring for my app"
→ Missing: platform, language, paths

"Enable Application Signals. My code is in ./src and IaC is in ./infrastructure"
→ Problem: Relative paths instead of absolute paths

"Enable Application Signals for my ECS service at /home/user/myapp"
→ Missing: programming language, deployment strategy
```

**快速模板：**

```
"Enable Application Signals for my [LANGUAGE] service on ECS.
Deployment strategy: [sidecar/daemon]
App code: [ABSOLUTE_PATH_TO_APP]
IaC code: [ABSOLUTE_PATH_TO_IAC]"
```

### 使用 MCP 服务器的优势
<a name="CloudWatch-Application-Signals-ECS-MCP-Benefits"></a>

使用 CloudWatch Application Signals MCP 服务器具有以下优势：
+ **自然语言界面：**无需记住命令或配置语法，即可描述要启用的功能
+ **上下文感知指导**：MCP 服务器了解特定环境并提供量身定制的建议
+ **减少错误：**自动生成配置可最大限度地减少手动输入错误
+ **更快设置：**更快地将想法过渡到实施
+ **学习工具：**查看生成的配置，了解 Application Signals 的工作原理

### 其他资源
<a name="CloudWatch-Application-Signals-ECS-MCP-MoreInfo"></a>

有关配置和使用 CloudWatch Application Signals MCP 服务器的更多信息，请参阅 [MCP 服务器文档](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server)。