18 lines
1.1 KiB
JavaScript
18 lines
1.1 KiB
JavaScript
|
const STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60;
|
||
|
const STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60;
|
||
|
const STATIC_STABILITY_DOC_URL = "https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html";
|
||
|
export const getExtendedInstanceMetadataCredentials = (credentials, logger) => {
|
||
|
const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS +
|
||
|
Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS);
|
||
|
const newExpiration = new Date(Date.now() + refreshInterval * 1000);
|
||
|
logger.warn("Attempting credential expiration extension due to a credential service availability issue. A refresh of these " +
|
||
|
`credentials will be attempted after ${new Date(newExpiration)}.\nFor more information, please visit: ` +
|
||
|
STATIC_STABILITY_DOC_URL);
|
||
|
const originalExpiration = credentials.originalExpiration ?? credentials.expiration;
|
||
|
return {
|
||
|
...credentials,
|
||
|
...(originalExpiration ? { originalExpiration } : {}),
|
||
|
expiration: newExpiration,
|
||
|
};
|
||
|
};
|