Created
May 8, 2018 04:35
-
-
Save winzig/7957756827df311ac5f30046dd707723 to your computer and use it in GitHub Desktop.
A bash script to help you clone an AWS CloudSearch domain
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 |
Thank you!
This is great, thanks!
I have some recommendations, to also copy the domain definition, and not only the fields definition. Will fork this 👍
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Really useful, thanks!