You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js环境AWS Lambda中不使用JQ如何获取Dimensions数组长度做条件判断

解决方案

Node.js原生支持获取数组长度,不需要借助JQ等额外工具,在AWS Lambda的Node.js运行环境中可以直接使用数组的length属性实现你的需求。

方案1:按数组长度判断赋值

直接通过Dimensions.length获取数组元素数量,对应你的需求编写条件判断即可:

// 先兼容处理数组不存在的异常场景
const dimensions = sns?.Trigger?.Dimensions || [];

let sns_DimensionsValue_ApiName;
let sns_DimensionsValue_StageName;

// 数组长度≥1时取第一个元素
if (dimensions.length >= 1) {
  sns_DimensionsValue_ApiName = dimensions[0].value;
}
// 数组长度≥2时取第二个元素
if (dimensions.length >= 2) {
  sns_DimensionsValue_StageName = dimensions[1].value;
}

方案2:按name字段匹配取值(更稳妥)

不同类型的CloudWatch指标的Dimensions元素顺序可能发生变化,按name字段匹配取值无需关心数组长度和元素顺序,兼容性更强:

const dimensions = sns?.Trigger?.Dimensions || [];

let sns_DimensionsValue_ApiName;
let sns_DimensionsValue_StageName;

for (const item of dimensions) {
  switch(item.name) {
    case 'ApiName':
      sns_DimensionsValue_ApiName = item.value;
      break;
    case 'Stage':
      sns_DimensionsValue_StageName = item.value;
      break;
    // 后续有其他维度可以直接扩展
  }
}

低版本Node.js兼容说明

如果你使用的Lambda Node.js runtime版本低于14,不支持可选链操作符?.,可以将数组声明替换为以下写法:

const dimensions = (sns && sns.Trigger && sns.Trigger.Dimensions) || [];

内容的提问来源于stack exchange,提问作者user630702

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 02:15:02