I'm trying to get an AWS secret in my cypress test but I keep getting a CredentialsError

> 
> Missing credentials in config, if using AWS\_CONFIG\_FILE, set
> AWS\_SDK\_LOAD\_CONFIG=1
> 
> 
> 

I do have a ~/.aws/credentials file with my aws\_access\_key\_id and aws\_secret\_access\_key set.

In my code I've exported all my env variables to a text file and I can see values for AWS\_ACCESS\_KEY\_ID, AWS\_SECRET\_ACCESS\_KEY and AWS\_SESSION\_TOKEN.

I've also tried setting an env variable `AWS_SDK_LOAD_CONFIG=1` but still get the same message.

Do I need the ~/.aws/credentials or can I do it all through env variables?

Can anyone see what I'm missing: (99% of the code is what Amazon provide on the secrets manager page I'm just trying to wrap the response up in a Cypress object. I've removed my AWS details and replaced them with REMOVED)

```
Cypress.Commands.add("aws_secret", () => {
  // Use this code snippet in your app.
  // If you need more information about configurations or implementing the sample code, visit the AWS docs:
  // https://aws.amazon.com/developers/getting-started/nodejs/

  cy.exec(`printenv >> envs.txt`);

  // Load the AWS SDK
  var AWS = require("aws-sdk"),
    region = “REMOVED”,
    secretName = “REMOVED”,
    secret,
    decodedBinarySecret;

  // Create a Secrets Manager client
  var client = new AWS.SecretsManager({
    region: region,
  });

  // In this sample we only handle the specific exceptions for the 'GetSecretValue' API.
  // See https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html
  // We rethrow the exception by default.

  client.getSecretValue({ SecretId: secretName }, function (err, data) {
    if (err) {
      if (err.code === "DecryptionFailureException")
        // Secrets Manager can't decrypt the protected secret text using the provided KMS key.
        // Deal with the exception here, and/or rethrow at your discretion.
        throw err;
      else if (err.code === "InternalServiceErrorException")
        // An error occurred on the server side.
        // Deal with the exception here, and/or rethrow at your discretion.
        throw err;
      else if (err.code === "InvalidParameterException")
        // You provided an invalid value for a parameter.
        // Deal with the exception here, and/or rethrow at your discretion.
        throw err;
      else if (err.code === "InvalidRequestException")
        // You provided a parameter value that is not valid for the current state of the resource.
        // Deal with the exception here, and/or rethrow at your discretion.
        throw err;
      else if (err.code === "ResourceNotFoundException")
        // We can't find the resource that you asked for.
        // Deal with the exception here, and/or rethrow at your discretion.
        throw err;
    } else {
      // Decrypts secret using the associated KMS CMK.
      // Depending on whether the secret is a string or binary, one of these fields will be populated.
      if ("SecretString" in data) {
        secret = data.SecretString;
        cy.log("the secret is " + secret);
      } else {
        let buff = new Buffer(data.SecretBinary, "base64");
        decodedBinarySecret = buff.toString("ascii");
        cy.log("the decodedBinarySecret is " + decodedBinarySecret);
      }
    }

    // Your code goes here.
    cy.wrap(
      client.getSecretValue({ SecretId: "REMOVED" }).promise()
    ).as("key1");
  });
});

```