in src/providers/ecs_ram_role.ts [59:88]
private async getMetadataToken(): Promise<string> {
// PUT http://100.100.100.200/latest/api/token
const request = Request.builder()
.withMethod('PUT')
.withProtocol('http')
.withHost('100.100.100.200')
.withPath('/latest/api/token')
.withHeaders({
'x-aliyun-ecs-metadata-token-ttl-seconds': `${defaultMetadataTokenDuration}`
})
.withReadTimeout(this.readTimeout || 1000)
.withConnectTimeout(this.connectTimeout || 1000)
.build();
// ConnectTimeout: 5 * time.Second,
// ReadTimeout: 5 * time.Second,
try {
const response = await this.doRequest(request);
if (response.statusCode !== 200) {
throw new Error(`get metadata token failed with ${response.statusCode}`);
}
return response.body.toString('utf8');
} catch (error) {
if (this.disableIMDSv1) {
throw error;
}
return null;
}
}