Skip to content

Instantly share code, notes, and snippets.

@nirdosh17
Created January 3, 2025 17:15
Show Gist options
  • Save nirdosh17/4682ea1363af7dde4a4075cc153713f4 to your computer and use it in GitHub Desktop.
Save nirdosh17/4682ea1363af7dde4a4075cc153713f4 to your computer and use it in GitHub Desktop.
Import amplify environment from cloud to local
#!/bin/bash
set -e
IFS='|'
ENV_NAME="nirdosh"
echo "importing environment '$ENV_NAME'..."
ENV_CONFIGS=$(amplify env get --name $ENV_NAME --json | jq -c '.awscloudformation | {Region, DeploymentBucketName, UnauthRoleName, StackName, StackId, AuthRoleName, UnauthRoleArn, AuthRoleArn}')
# Extract each property
REGION=$(echo "$ENV_CONFIGS" | jq -r '.Region')
DEPLOYMENT_BUCKET_NAME=$(echo "$ENV_CONFIGS" | jq -r '.DeploymentBucketName')
UNAUTH_ROLE_NAME=$(echo "$ENV_CONFIGS" | jq -r '.UnauthRoleName')
STACK_NAME=$(echo "$ENV_CONFIGS" | jq -r '.StackName')
STACK_ID=$(echo "$ENV_CONFIGS" | jq -r '.StackId')
AUTH_ROLE_NAME=$(echo "$ENV_CONFIGS" | jq -r '.AuthRoleName')
UNAUTH_ROLE_ARN=$(echo "$ENV_CONFIGS" | jq -r '.UnauthRoleArn')
AUTH_ROLE_ARN=$(echo "$ENV_CONFIGS" | jq -r '.AuthRoleArn')
AWSCLOUDFORMATIONCONFIG="{\
\"Region\": \"$REGION\",\
\"DeploymentBucketName\": \"$DEPLOYMENT_BUCKET_NAME\",\
\"UnauthRoleName\": \"$UNAUTH_ROLE_NAME\",\
\"StackName\": \"$STACK_NAME\",\
\"StackId\": \"$STACK_ID\",\
\"AuthRoleName\": \"$AUTH_ROLE_NAME\",\
\"UnauthRoleArn\": \"$UNAUTH_ROLE_ARN\",\
\"AuthRoleArn\": \"$AUTH_ROLE_ARN\"\
}"
PROVIDER_CONFIG="{\
\"awscloudformation\":$AWSCLOUDFORMATIONCONFIG\
}"
echo "generated provider config:"
echo $PROVIDER_CONFIG
AWS_CONFIG="{\
\"configLevel\":\"project\",\
\"useProfile\":true,\
\"profileName\":\"default\"\
}"
echo "running env import..."
# Step 1: import env from cloud to local
amplify env import \
--name $ENV_NAME \
--config $PROVIDER_CONFIG \
--awsInfo $AWS_CONFIG \
--yes
# Step 2: now if you list envs, you will see the imported env
# $ amplify env list
# Step 3: select imported env
# $ amplify env checkout nirdosh
# Step 4: pull env
# $ amplify env pull
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment