gcp + apigee + attach
export PROJECT_ID=$(gcloud config list --format 'value(core.project)')
echo "PROJECT_ID=${PROJECT_ID}"
export INSTANCE_NAME=eval-instance
export ENV_NAME=eval
export PREV_INSTANCE_STATE=
echo "waiting for runtime instance ${INSTANCE_NAME} to be active"
while : ; do
export INSTANCE_STATE=$(
curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/instances/${INSTANCE_NAME}" |
jq "select(.state != null) | .state" --raw-output
)
[[ "${INSTANCE_STATE}" == "${PREV_INSTANCE_STATE}" ]] || (
echo
echo "INSTANCE_STATE=${INSTANCE_STATE}"
)
export PREV_INSTANCE_STATE=${INSTANCE_STATE}
[[ "${INSTANCE_STATE}" != "ACTIVE" ]] || break
echo -n "."
sleep 5
done
echo
echo "instance created, waiting for environment ${ENV_NAME} to be attached to instance"
while : ; do
export ATTACHMENT_DONE=$(
curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/instances/${INSTANCE_NAME}/attachments" |
jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ENV_NAME}\") | .environment" --join-output
)
[[ "${ATTACHMENT_DONE}" != "${ENV_NAME}" ]] || break
echo -n "."
sleep 5
done
echo "***ORG IS READY TO USE***"
apigee를 테스트해 보면서 제일 적응 안 되는 부분이 인스턴스를 붙이는 부분이라고 생각된다.
TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)")
gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
ssh 붙이는것은 분명한데 말이다.