UNPKG

serverless-spy

Version:

CDK-based library for writing elegant integration tests on AWS serverless architecture and an additional web console to monitor events in real time.

31 lines (30 loc) 1.45 kB
import { setCredentialFeature } from "@aws-sdk/core/client"; import { CredentialsProviderError } from "@smithy/property-provider"; export const ENV_KEY = "AWS_ACCESS_KEY_ID"; export const ENV_SECRET = "AWS_SECRET_ACCESS_KEY"; export const ENV_SESSION = "AWS_SESSION_TOKEN"; export const ENV_EXPIRATION = "AWS_CREDENTIAL_EXPIRATION"; export const ENV_CREDENTIAL_SCOPE = "AWS_CREDENTIAL_SCOPE"; export const ENV_ACCOUNT_ID = "AWS_ACCOUNT_ID"; export const fromEnv = (init) => async () => { init?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv"); const accessKeyId = process.env[ENV_KEY]; const secretAccessKey = process.env[ENV_SECRET]; const sessionToken = process.env[ENV_SESSION]; const expiry = process.env[ENV_EXPIRATION]; const credentialScope = process.env[ENV_CREDENTIAL_SCOPE]; const accountId = process.env[ENV_ACCOUNT_ID]; if (accessKeyId && secretAccessKey) { const credentials = { accessKeyId, secretAccessKey, ...(sessionToken && { sessionToken }), ...(expiry && { expiration: new Date(expiry) }), ...(credentialScope && { credentialScope }), ...(accountId && { accountId }), }; setCredentialFeature(credentials, "CREDENTIALS_ENV_VARS", "g"); return credentials; } throw new CredentialsProviderError("Unable to find environment variable credentials.", { logger: init?.logger }); };