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