setInfra()

in src/App.tsx [88:125]


  setInfra(accessKeyId:string, secretAccessKey:string, sessionToken:string) {
    let sts = new AWS.STS({
      accessKeyId: accessKeyId,
      secretAccessKey: secretAccessKey,
      sessionToken: sessionToken,
      region: region
    });
    let sts_params = {
      RoleArn: role_arn,
      RoleSessionName:"wapp"+ Date.now(),
      DurationSeconds:3600
    };
    //Make a call to assume the role to access Kendra and corresponding S3 objects
    sts.assumeRole(sts_params, (err, data) => {
      if (err) console.log("sts_assumerole Error:", err);
      else {
        let kendra = new Kendra({
          accessKeyId: data.Credentials!.AccessKeyId,
          secretAccessKey: data.Credentials!.SecretAccessKey,
          sessionToken: data.Credentials!.SessionToken,
          region: region
        }); 
        //S3 is required to get signed URLs for S3 objects
        let s3 = new S3({
          accessKeyId: data.Credentials!.AccessKeyId,
          secretAccessKey: data.Credentials!.SecretAccessKey,
          sessionToken: data.Credentials!.SessionToken,
          region: region
        }); 
        //Call setState to enforce render being called again
        this.setState({
          infraReady: true, 
          kendra: kendra,
          s3: s3
        });
      }
    });
  }