async function getCommandResult()

in solution/solution-compliance-audit-for-data-plane/source/function/ecs-timezone/index.js [130:170]


async function getCommandResult(commandId, invokeId, eventParams, context, client) {
  const { regionId, resourceId } = eventParams.invokingEvent.configurationItem;
  const { logger } = context;
  
  const params = {
    RegionId: regionId,
    InvokeId: invokeId,
    InstanceId: resourceId,
    CommandId: commandId,
  };

  const result = await client.request(
    "DescribeInvocationResults",
    params,
    requestOption
  );
  let invocationResult =
    result.Invocation.InvocationResults.InvocationResult[0];

  if (
    !_.isUndefined(invocationResult.InvocationStatus) &&
    _.isEqual(invocationResult.InvocationStatus, "Aborted")
  ) {
    logger.error(`执行失败 错误信息 ${invocationResult.ErrorInfo}`);
    return "";
  } else if (_.isNil(invocationResult.ExitCode)) {
    logger.log("脚本执行中,请等待.......");
    return null;
  } else {
    if (_.isEqual(`${invocationResult.ExitCode}`, "0")) {
      logger.log(`命令输出结果 ` + Buffer.from(invocationResult.Output, 'base64'));
    } else {
      logger.error(
        `错误码 ${invocationResult.ErrorCode} 错误信息 ${invocationResult.ErrorInfo}`
      );
    }

    const buff = Buffer.from(invocationResult.Output, 'base64');
    return buff.toString('ascii');
  }
}