private async getMetadataToken()

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;
    }

  }