private async getCredentialsUri()

in src/providers/uri.ts [33:59]


  private async getCredentialsUri(): Promise<Session> {
    const builder = Request.builder()
      .withMethod('GET')
      .withURL(this.credentialsURI)
      .withReadTimeout(this.readTimeout || 10000)
      .withConnectTimeout(this.connectTimeout || 5000);

    const request = builder.build();
    const response = await this.doRequest(request);

    if (response.statusCode !== 200) {
      throw new Error(`get sts token failed, httpStatus: ${response.statusCode}, message = ${response.body.toString('utf8')}.`);
    }

    let data;
    try {
      data = JSON.parse(response.body.toString('utf8'));
    } catch (ex) {
      throw new Error(`get sts token failed, json parse failed: ${ex.message}, result: ${response.body.toString('utf8')}.`)
    }

    if (!data || !data.AccessKeyId || !data.AccessKeySecret || !data.SecurityToken) {
      throw new Error(`error retrieving credentials from credentialsURI result: ${JSON.stringify(data)}.`)
    }

    return new Session(data.AccessKeyId, data.AccessKeySecret, data.SecurityToken, data.Expiration);
  }