Skip to content

Instantly share code, notes, and snippets.

@winzig
Created May 8, 2018 04:35
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save winzig/7957756827df311ac5f30046dd707723 to your computer and use it in GitHub Desktop.
Save winzig/7957756827df311ac5f30046dd707723 to your computer and use it in GitHub Desktop.
A bash script to help you clone an AWS CloudSearch domain
#!/bin/bash
#
# Usage: cloudsearch-clone-domain <domain> <newdomain>
#
# After you run this script, you'll have a file named define-fields-<newdomain>.sh, which
# you can run to re-create all the fields from the cloned domain. If you haven't yet created
# the new CS domain, then run `aws cloudsearch create-domain --domain-name <newdomain>` before
# running the define-fields script that is produced by this script.
die () {
echo >&2 "$@"
exit 1
}
[ "$#" -eq 2 ] || die "Usage: cloudsearch-clone-domain <domain> <newdomain>"
aws cloudsearch describe-index-fields --domain $1 | jq ".[][] | {\"DomainName\": \"$2\", \"IndexField\": .Options} | tostring" | sed 's/^/aws cloudsearch define-index-field --cli-input-json /' > define-fields-$2.sh
chmod +x define-fields-$2.sh
echo Run these commands to create your new domain, and then define its fields:
echo aws cloudsearch create-domain --domain-name $2
echo ./define-fields-$2.sh
@jvgeee
Copy link

jvgeee commented Feb 26, 2019

Really useful, thanks!

@Vakintoshka
Copy link

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment