示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载导读本文基于 AWS 官方代码示例仓库aws-doc-sdk-examples中javascriptv3/example_code/cloudwatch目录下的完整示例集系统讲解如何使用 AWS SDK for JavaScript (v3) 调用 Amazon CloudWatch 服务。CloudWatch 提供可靠、可扩展且灵活的资源监控方案几分钟内即可投入使用。读完本文你将掌握指标发布PutMetricData、告警生命周期管理创建、列出、启用/停用、删除、告警静默规则Alarm Mute Rule的创建与查询以及 OTel 数据富集等核心操作的完整代码实现与运行方式。示例集概览与目录结构该示例集位于仓库的javascriptv3/example_code/cloudwatch/目录遵循官方示例仓库的规范化结构包含四类文件目录 / 文件作用actions/16 个单操作Single Action示例每个文件演示调用一个 CloudWatch 服务 APIlibs/共享基础设施包括客户端实例与辅助工具tests/8 个集成测试文件覆盖主要 API 操作package.json项目依赖与集成测试脚本声明vite.config.jsVite 构建/运行配置所有示例代码采用 ECMAScript 6ES6语法编写以 ESM 模块形式导入 SDK并通过type: module在package.json中声明。环境准备Prerequisites运行本目录示例前需要先完成javascriptv3根目录下 README 中列出的前置条件主要包括安装并配置 AWS SDK for JavaScript (v3) 所需的 AWS 凭证Access Key / IAM 角色安装 Node.js 运行时安装示例依赖本目录依赖aws-sdk/client-cloudwatch、aws-sdk/client-ec2及aws-doc-sdk-examples/lib本地 AWS 区域应支持所用 API并非所有 API 都在每个 AWS 区域经过测试。依赖清单与测试脚本package.json声明了完整的依赖与脚本{ name: aws-doc-sdk-examples/example-javascriptv3-cloudwatch, type: module, dependencies: { aws-doc-sdk-examples/lib: ^1.0.0, aws-sdk/client-cloudwatch: ^3.1124.0, aws-sdk/client-ec2: ^3.213.0 }, scripts: { integration-test: vitest run integration --reporterjunit --outputFiletest_results/cloudwatch-test-results.junit.xml }, devDependencies: { uuid: ^9.0.0, vitest: ^1.6.0 } }其中aws-sdk/client-cloudwatch提供 CloudWatch 客户端与全部命令类aws-sdk/client-ec2用于配合 EC2 相关指标与告警场景集成测试通过 vitest 执行并以 JUnit 格式输出结果。客户端初始化与共享库所有示例统一从libs/client.js导入共享的 CloudWatch 客户端实例import { CloudWatchClient } from aws-sdk/client-cloudwatch; export const client new CloudWatchClient({});该文件位于 libs/client.js通过无参数构造让 SDK 自动读取环境中的 AWS 凭证与区域配置。目录中还提供libs/cloudwatch-helper.js与libs/ec2-helper.js用于封装测试与示例中复用的辅助逻辑。单操作示例完整 API 清单README 列出的 15 个单操作覆盖了 CloudWatch 监控与告警的主要 API按其功能可分为四组。指标相关操作发布自定义指标PutMetricData——actions/put-metric-data.jsimport { PutMetricDataCommand } from aws-sdk/client-cloudwatch; import { client } from ../libs/client.js; const run async () { const command new PutMetricDataCommand({ MetricData: [ { MetricName: PAGES_VISITED, Dimensions: [ { Name: UNIQUE_PAGES, Value: URLS, }, ], Unit: None, Value: 1.0, }, ], Namespace: SITE/TRAFFIC, }); try { return await client.send(command); } catch (err) { console.error(err); } }; export default run();关键参数说明Namespace命名空间建议用反斜杠分层如SITE/TRAFFICMetricName指标名称如PAGES_VISITEDDimensions维度数组每个维度由Name与Value组成用于对指标进行细分Unit计量单位此处为NoneValue指标数值。列出指标ListMetrics——actions/list-metrics.js 按命名空间、指标名和维度过滤查询可用指标const command new ListMetricsCommand({ Dimensions: [{ Name: LogGroupName }], MetricName: IncomingLogEvents, Namespace: AWS/Logs, }); const response await client.send(command); console.log(Metrics count: ${response.Metrics?.length});该示例特别演示了CloudWatchServiceException的类型化错误捕获方式并在isMain(import.meta.url)判断下实现被导入时仅导出 main、直接运行时才执行的双模式用法。告警生命周期操作创建告警PutMetricAlarm——actions/put-metric-alarm.js 创建当 EC2 实例 CPU 使用率超过 70% 持续 1 分钟即触发告警的规则const command new PutMetricAlarmCommand({ AlarmName: process.env.CLOUDWATCH_ALARM_NAME, // 需设置为已存在的告警名称 ComparisonOperator: GreaterThanThreshold, EvaluationPeriods: 1, MetricName: CPUUtilization, Namespace: AWS/EC2, Period: 60, Statistic: Average, Threshold: 70.0, ActionsEnabled: false, AlarmDescription: Alarm when server CPU exceeds 70%, Dimensions: [ { Name: InstanceId, Value: process.env.EC2_INSTANCE_ID, // 需设置为已有的 EC2 实例 ID }, ], Unit: Percent, });参数语义ComparisonOperator比较运算符如GreaterThanThresholdEvaluationPeriods评估周期数此处为 1Period数据点聚合周期秒60 表示 1 分钟Statistic统计方法如AverageThreshold触发阈值ActionsEnabled是否启用告警动作通知Dimensions维度用于限定实例如InstanceId。启用 / 停用告警动作——actions/enable-alarm-actions.js 与 actions/disable-alarm-actions.js 分别通过EnableAlarmActionsCommand/DisableAlarmActionsCommand控制告警的AlarmNames列表告警名由环境变量CLOUDWATCH_ALARM_NAME指定const command new EnableAlarmActionsCommand({ AlarmNames: [process.env.CLOUDWATCH_ALARM_NAME], });const command new DisableAlarmActionsCommand({ AlarmNames: process.env.CLOUDWATCH_ALARM_NAME, });删除告警——actions/delete-alarms.jsconst command new DeleteAlarmsCommand({ AlarmNames: [process.env.CLOUDWATCH_ALARM_NAME], });查询告警状态——actions/describe-alarms.js 使用DescribeAlarmsForMetricCommand查询指定指标的告警以及 actions/describe-alarm-contributors.js 查询告警贡献者。告警静默规则Alarm Mute Rule操作这是示例集中最具特色的一组 API。静默规则Mute Rule的作用是在规则生效期间被定向的告警仍持续评估、仍会在状态间流转但不会触发已配置的动作——这是官方推荐的已知维护窗口期抑制通知方案相比先停用告警动作、再祈祷有人记得恢复的做法更可靠。创建 / 更新静默规则PutAlarmMuteRule——actions/put-alarm-mute-rule.jsconst command new PutAlarmMuteRuleCommand({ Name: process.env.CLOUDWATCH_MUTE_RULE_NAME, Description: Suppress checkout CPU pages during Sunday patching., Rule: { Schedule: { // 周期性窗口使用五字段 cron 表达式cron(Minutes Hours Day-of-month Month Day-of-week)。 // 注意是五个字段不是 EventBridge 的六个字段。一次性窗口可用 at(2026-09-05T02:00) 这类 at 表达式。 Expression: cron(0 2 * * SUN), // 静默窗口激活后的持续时间ISO 8601 时长格式范围 PT1M1 分钟到 P15D15 天。 Duration: PT2H, Timezone: America/Los_Angeles, }, }, // 最多可按名称定向 100 个告警。省略 MuteTargets 表示静默账户内所有告警。 MuteTargets: { AlarmNames: [process.env.CLOUDWATCH_ALARM_NAME], }, });参数细节Schedule.Expression支持五字段 cron如cron(0 2 * * SUN)表示每周日 02:00与 at 一次性表达式注意与 EventBridge 六字段 cron 的区别Schedule.DurationISO 8601 时长合法范围PT1M到P15DSchedule.Timezone时区名称如America/Los_AngelesMuteTargets.AlarmNames最多 100 个目标告警名省略则静默全账户告警。查询静默规则GetAlarmMuteRule——actions/get-alarm-mute-rule.js 返回规则完整配置包括调度、目标告警以及当前状态SCHEDULED、ACTIVE或EXPIREDconst command new GetAlarmMuteRuleCommand({ AlarmMuteRuleName: process.env.CLOUDWATCH_MUTE_RULE_NAME, }); const response await client.send(command); console.log(Mute rule ${response.Name} is ${response.Status}.);列出静默规则ListAlarmMuteRules——actions/list-alarm-mute-rules.js 使用ListAlarmMuteRulesCommand分页列出账户中的静默规则。删除静默规则DeleteAlarmMuteRule——actions/delete-alarm-mute-rule.js 使用DeleteAlarmMuteRuleCommand删除指定静默规则。OTel 数据富集OTel Enrichment操作CloudWatch 支持对 OpenTelemetryOTel遥测数据执行富集操作示例集包含三个相关操作StartOTelEnrichment——actions/start-otel-enrichment.js启动 OTel 数据富集任务StopOTelEnrichment——actions/stop-otel-enrichment.js停止 OTel 数据富集任务GetOTelEnrichment——actions/get-otel-enrichment.js查询 OTel 富集任务状态。运行方式运行单操作node ./actions/fileName例如运行发布指标的示例node ./actions/put-metric-data.js注意部分操作依赖环境变量CLOUDWATCH_ALARM_NAME、CLOUDWATCH_MUTE_RULE_NAME、EC2_INSTANCE_ID运行前需先通过export或.env方式设置对应值。运行带命令行参数的示例部分脚本支持通过命令行传入选项node ./scenarios/fileName --option1 --option2选项解析基于 Node.js 内置的util.parseArgs具体可用选项需查看对应脚本中的parseArgs用法说明。ES6 / CommonJS 转换所有示例均以 ECMAScript 6ES6编写。若项目使用 CommonJS 模块体系可参考 AWS SDK for JavaScript v3 开发指南中关于 ES6/CommonJS 语法转换的说明进行改造核心要点是将import改写为require并调整默认导出方式。集成测试tests/目录提供了 8 个集成测试文件覆盖全部核心 API 路径测试文件覆盖操作alarm-mute-rules.integration.test.js静默规则创建 / 查询 / 列出 / 删除put-metric-alarm.integration.test.js创建告警describe-alarms.integration.test.js查询告警enable-alarm-actions.integration.test.js启用告警动作disable-alarm-actions.integration.test.js停用告警动作delete-alarms.integration.test.js删除告警put-metric-data.integration.test.js发布指标list-metrics.integration.test.js列出指标集成测试脚本由package.json中的integration-test声明通过 vitest 执行并将结果输出为 JUnit 格式。集成测试会真实调用 AWS 服务因此运行测试同样可能产生 AWS 账户费用。关于测试运行的整体说明参见 javascriptv3 根目录 README。费用与权限提醒运行示例代码可能产生 AWS 账户费用具体参考 AWS Pricing 与 Free Tier 说明运行测试同样可能产生费用强烈建议遵循最小权限原则Least Privilege仅授予完成当前任务所需的最低权限不要使用管理员凭证运行示例本代码未在所有 AWS 区域逐一测试使用前请确认目标 API 在所选区域的可用性。进一步学习资源CloudWatch User GuideCloudWatch 监控概念与使用指南CloudWatch API Reference各 API 的请求参数与响应结构SDK for JavaScript (v3) CloudWatch referenceSDK 客户端与命令类的类型化参考。结合本仓库中的源码你可以直接以javascriptv3/example_code/cloudwatch/actions/下的示例为模板快速搭建自定义的 CloudWatch 监控与告警自动化能力。Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.SPDX-License-Identifier: Apache-2.0赞分享示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载相关推荐AWS SDK for JavaScript (v3) 操作 Amazon S3 完整实战指南AWS SDK for JavaScript v3 操作 Amazon S3 完整实战指南 本篇技术指南以 javascriptv3/example_code/示例工程教程后端使用 AWS SDK for JavaScript (v3) 操作 Amazon Bedrock Agents完整实战指南使用 AWS SDK for JavaScript v3 操作 Amazon Bedrock Agents完整实战指南 本指南基于开源仓库 aws doc s示例工程教程后端使用 AWS SDK for JavaScript (v3) 操作 CloudWatch EventsPutEvents、PutRule 与 PutTargets 实战指南使用 AWS SDK for JavaScript v3 操作 CloudWatch EventsPutEvents、PutRule 与 PutTargets示例工程教程后端上一篇3个Anime.js路径动画实战技巧让元素沿任意轨迹运动下一篇LiteRT-LM前缀缓存原理重复提示词为什么能秒回创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考