in src/ecs_ram_role_credential.ts [38:54]
async getMetadataToken(): Promise<string> {
if (this.needToRefresh()) {
let tmpTime = new Date().getTime() + this.metadataTokenDuration * 1000;
const response = await httpx.request(SECURITY_CRED_TOKEN_URL, {
headers: {
'X-aliyun-ecs-metadata-token-ttl-seconds': `${this.metadataTokenDuration}`
},
method: "PUT"
});
if (response.statusCode !== 200) {
throw new Error(`Failed to get token from ECS Metadata Service. HttpCode=${response.statusCode}`);
}
this.staleTime = tmpTime;
return (await httpx.read(response, 'utf8')) as string;
}
return this.metadataToken;
}