gcloud config set project <PROJECT_ID>
gcloud compute instances create lab --zone=asia-east1-b --machine-type=f1-micro --no-service-account --no-scopes --image-family=debian-9 --image-project=debian-cloud
gcloud compute scp --recurse ./resources/* lab:~/ --zone=asia-east1-b
gcloud auth login
gcloud config set project <PROJECT_ID>
gcloud config list
gcloud compute instances create vm-sdk-user --zone=asia-east1-b --machine-type=f1-micro
gcloud auth revoke --all
- Go to IAM & Admin
- Go to
- Go to
- Input a meaningful name (e.g. vm-creator) -> Click
CREATE
- Bind roles:
Compute Instance Admin (v1)
-> ClickCONTINUE
- Download a generated JSON key -> Click
+ CREATE KEY
-> SelectJSON
-> ClickCREATE
gcloud auth activate-service-account --key-file <SERVICE_ACCOUNT_KEY_PATH>
gcloud config set project <PROJECT_ID>
gcloud compute instances create vm-sdk-sva --zone=asia-east1-b --machine-type=f1-micro
Failed? How to fix it?
Grant the service account the `iam.serviceAccountUser` role on `default compute engine service account`
gcloud auth revoke --all
gcloud auth login
gcloud config set project <PROJECT_ID>
export PROJECT_ID=<YOUR_PROJECT_ID>
sed "s/PROJECT_ID/$PROJECT_ID/; s/NAME/vm-api-user/" vm.json > tmp.json
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
--data @tmp.json \
https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/zones/asia-east1-b/instances
gcloud auth revoke --all
gcloud auth activate-service-account --key-file <SERVICE_ACCOUNT_KEY_PATH>
export PROJECT_ID=<YOUR_PROJECT_ID>
sed "s/PROJECT_ID/$PROJECT_ID/; s/NAME/vm-api-sva/" vm.json > tmp.json
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
--data @tmp.json \
https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/zones/asia-east1-b/instances
gcloud auth revoke --all
unset GOOGLE_APPLICATION_CREDENTIALS
gcloud auth application-default login
export PROJECT_ID=<YOUR_PROJECT_ID>
sed "s/PROJECT_ID/$PROJECT_ID/; s/NAME/vm-api-user-adc/" vm.json > tmp.json
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
--data @tmp.json \
https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/zones/asia-east1-b/instances
gcloud auth application-default revoke
export GOOGLE_APPLICATION_CREDENTIALS=<SERVICE_ACCOUNT_KEY_PATH>
export PROJECT_ID=<YOUR_PROJECT_ID>
sed "s/PROJECT_ID/$PROJECT_ID/; s/NAME/vm-api-sva-adc/" vm.json > tmp.json
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
--data @tmp.json \
https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/zones/asia-east1-b/instances
gcloud auth application-default revoke
gcloud auth login
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
--data @request.json \
https://vision.googleapis.com/v1/images:annotate
gcloud auth login act as an oauth client, its project is NOT the project which enabled Vision API
gcloud auth revoke --all
- Go to IAM & Admin
-
Go to
-
Click
export API_KEY=<CREATED_API_KEY>
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://vision.googleapis.com/v1/images:annotate?key=$API_KEY
gcloud auth activate-service-account --key-file <SERVICE_ACCOUNT_KEY_PATH>
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
--data @request.json \
https://vision.googleapis.com/v1/images:annotate
gcloud auth revoke --all
export GOOGLE_APPLICATION_CREDENTIALS=<SERVICE_ACCOUNT_KEY_PATH>
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
--data @request.json \
https://vision.googleapis.com/v1/images:annotate
gcloud auth application-default revoke