@yuntools/ali-ecs
Version:
阿里云 ECS 模块封装,支持 ESM,CJS 导入,提供 TypeScript 类型定义
38 lines • 1.66 kB
TypeScript
import Ecs from '@alicloud/ecs20140526';
import { EcsNodeDetail, EcsNodeStatus, EcsNodeInfo, GetNodeMap } from './types.js';
/**
* 阿里云 ECS 服务接口
* 最多支持 100 个实例
*/
export declare class EcsClient {
protected readonly id: string;
protected readonly secret: string;
endpoint: string;
client: Ecs;
debug: boolean;
nextToken: string;
/** ip -> instanceId */
nodeIp2IdCache: Map<string, string>;
/** instanceId -> node */
id2NodeCache: Map<string, import("@alicloud/ecs20140526").DescribeInstancesResponseBodyInstancesInstance>;
cacheTime: number;
cacheTTLSec: number;
constructor(id: string, secret: string, endpoint?: string);
/** 根据公网 IP 数组获取 Ecs 实例状态信息 */
getNodeStatusByIps(ips: string[], regionId?: string): Promise<GetNodeMap<EcsNodeStatus>>;
/** 根据公网 IP 数组获取 Ecs 实例信息 */
getNodeInfoByIps(ips: string[], regionId?: string): Promise<GetNodeMap<EcsNodeInfo>>;
/** 根据公网 IP 获取 Ecs 实例 ID */
getInstanceIdByIp(ip: string): Promise<string | undefined>;
/** 根据公网 IP 数组获取 Ecs 实例信息 */
getInstancesByIps(ips: string[], regionId?: string): Promise<GetNodeMap<EcsNodeDetail>>;
/** 根据公网 IP 获取 Ecs 实例信息 */
getInstanceByIp(ip: string, regionId?: string): Promise<EcsNodeDetail | undefined>;
cleanCache(force?: boolean): void;
updateInstancedCache(instances: EcsNodeDetail[]): void;
private _cleanCache;
private _getInstanceByIpFromCache;
private createClient;
private saveNodesToCache;
}
//# sourceMappingURL=ecs.d.ts.map