Cet article récapitulatif explique comment déployer une application Web développée à l'aide de Spring Boot sur Google Cloud Platform (GCP) et y accéder à partir d'un navigateur. La première moitié de la page traite de la création de l'environnement tel que Compute Engine et Cloud SQL requis pour exécuter l'application Web, et la seconde moitié du développement de l'application Web.
environnement
PC local
GCP
référence
L'environnement a été construit dans l'ordre suivant.
J'avais de l'expérience avec AWS, mais comme GCP est un débutant, j'ai fait un tableau de comparaison des principaux services.
un service | GCP | AWS | Utiliser dans cet article |
---|---|---|---|
L'informatique | Compute Engine | EC2 | Ubuntu, 1 instance |
Base de données | Cloud SQL | RDS | MySQL, 1 instance |
espace de rangement | Cloud Storage | S3 | Créer 1 bucket |
Stockage en bloc | Disque persistant | EBS | Aucune utilisation supplémentaire |
réseau | Cloud Virtual Network | VPC | Ajouter une règle de pare-feu |
Équilibreur de charge | Cloud Load Balancing | ELB | Aucun |
CDN | Cloud CDN | CloudFront | Aucun |
Contrôle d'accès | Cloud IAM | IAM | Ajouter un compte de service |
CLI | Cloud SDK | CLI | Presque jamais utilisé |
SDK Cloud> Documentation> Installer le SDK Cloud
Parmi les méthodes décrites dans la documentation officielle, j'ai utilisé la méthode «archive versionnée». Dans cet article, j'ai utilisé la console GCP basée sur un navigateur pour fonctionner, je n'utilise donc pas beaucoup le SDK Cloud.
** Installer **
Téléchargez le fichier d'archive de la version Windows et extrayez-le dans un emplacement approprié. Étant donné que python 2.7.x est requis pour exécuter le SDK Cloud, installez-le séparément ou utilisez la version du bundle python.
Exécutez le script d'installation dans le répertoire extrait. Normalement, le script d'installation ajoute le répertoire bin au chemin de la variable d'environnement, mais il semble que cela puisse échouer, alors définissez-le manuellement dans ce cas.
> install.bat
SDK Cloud> Documentation> Initialiser le SDK Cloud
Initialisez le SDK. Lorsque vous exécutez la commande suivante, le navigateur sera lancé et il vous sera demandé de vous authentifier avec votre compte Google. (Il semble que vous puissiez ajouter l'indicateur --console-only pour démarrer le flux d'approbation sur une base de console)
> gcloud init
Vous pouvez vérifier les informations du compte authentifié avec la commande suivante. Le SDK Cloud vous permet d'utiliser plusieurs comptes, mais un seul est toujours actif.
> gcloud auth list
Credentialed Accounts
ACTIVE ACCOUNT
* ********.********.********@gmail.com
To set the active account, run:
$ gcloud config set account `ACCOUNT`
SDK Cloud> Documentation> Gestion des composants du SDK
Après avoir installé le SDK Cloud, vous pourrez utiliser des outils de ligne de commande appelés certains composants. Les principaux sont l'outil gcloud qui exploite GCP et l'outil gsutil qui exploite Cloud Storage.
Vous pouvez vérifier les composants installés / désinstallés avec la commande suivante.
> gcloud components list
Your current Cloud SDK version is: 194.0.0
The latest available version is: 194.0.0
+-------------------------------------------------------------------------------------------------------------+
| Components |
+---------------+------------------------------------------------------+--------------------------+-----------+
| Status | Name | ID | Size |
+---------------+------------------------------------------------------+--------------------------+-----------+
| Not Installed | App Engine Go Extensions | app-engine-go | 153.2 MiB |
| Not Installed | Cloud Bigtable Command Line Tool | cbt | 4.2 MiB |
| Not Installed | Cloud Bigtable Emulator | bigtable | 3.7 MiB |
| Not Installed | Cloud Datalab Command Line Tool | datalab | < 1 MiB |
| Not Installed | Cloud Datastore Emulator | cloud-datastore-emulator | 17.9 MiB |
| Not Installed | Cloud Datastore Emulator (Legacy) | gcd-emulator | 38.1 MiB |
| Not Installed | Cloud Pub/Sub Emulator | pubsub-emulator | 33.4 MiB |
| Not Installed | Emulator Reverse Proxy | emulator-reverse-proxy | 14.5 MiB |
| Not Installed | Google Container Registry's Docker credential helper | docker-credential-gcr | 2.4 MiB |
| Not Installed | gcloud Alpha Commands | alpha | < 1 MiB |
| Not Installed | gcloud Beta Commands | beta | < 1 MiB |
| Not Installed | gcloud app Java Extensions | app-engine-java | 118.9 MiB |
| Not Installed | gcloud app PHP Extensions | app-engine-php | 19.1 MiB |
| Not Installed | gcloud app Python Extensions | app-engine-python | 6.2 MiB |
| Not Installed | gcloud app Python Extensions (Extra Libraries) | app-engine-python-extras | 27.8 MiB |
| Not Installed | kubectl | kubectl | 12.3 MiB |
| Installed | BigQuery Command Line Tool | bq | < 1 MiB |
| Installed | Cloud SDK Core Libraries | core | 7.4 MiB |
| Installed | Cloud Storage Command Line Tool | gsutil | 3.4 MiB |
+---------------+------------------------------------------------------+--------------------------+-----------+
To install or remove components at your current SDK version [194.0.0], run:
$ gcloud components install COMPONENT_ID
$ gcloud components remove COMPONENT_ID
To update your SDK installation to the latest version [194.0.0], run:
$ gcloud components update
Si une nouvelle version du SDK a été publiée, vous pouvez la mettre à jour avec la commande suivante. Veuillez noter que si le répertoire actuel se trouve dans le répertoire d'installation, la mise à jour échouera.
> gcloud components update
Créez toutes les instances de VM (Compute Engine), la base de données (Cloud SQL) et le stockage (Cloud Storage) nécessaires pour exécuter l'application Web dans le projet.
Ouvrez la console GCP et créez un nouveau projet.
Notez l'ID du projet tel qu'il sera émis lors de la création du projet. Vous pouvez trouver l'ID du projet dans les informations du projet sur le tableau de bord de la console.
Ensuite, je dois activer la facturation pour le projet, mais je l'ai utilisé car un emplacement d'essai gratuit était disponible.
Définissez l'ID du projet publié afin qu'il puisse être utilisé avec l'outil gcloud.
> gcloud config set project <project id>
Update property [core/project].
Compute Engine> Documents> Compte de service
Créez un compte de service pour exécuter l'instance de VM. Sélectionnez "IAM et autorisations" -> "Compte de service" -> "Créer un compte de service" dans le menu de gauche de la console GCP.
Le compte affiché dans la liste est le compte de service par défaut qui est automatiquement créé lorsque vous commencez à utiliser Compute Engine (il est créé lorsque vous ouvrez Compute Engine pour la première fois dans le menu de la console après la création d'un projet, il peut donc ne pas s'afficher en fonction du moment choisi. C'est possible). Vous pouvez utiliser ce compte, mais comme ce compte dispose d'un large éventail de privilèges, créez un compte dédié avec les privilèges minimum requis.
Cliquez sur Créer un compte de service pour commencer.
Cliquez sur Rôles pour attribuer les rôles suivants:
À propos, un rôle est un ensemble d'une ou de plusieurs autorités. Par exemple, le rôle de "Storage Object Viewer" ci-dessus a quatre privilèges comme indiqué dans la figure.
Une fois créé, il apparaîtra dans la liste.
Si vous souhaitez ajouter un rôle à votre compte de service, ouvrez IAM et administration-> IAM dans la console GCP. C'est un peu déroutant, mais cliquez sur l'icône en forme de crayon (n'importe laquelle) dans votre compte de service.
Soit dit en passant, le premier membre affiché sur cette page est le membre par défaut que Compute Engine crée automatiquement.
Compte de service par défaut de Compute Engine Pour des raisons historiques, tous les projets disposent d'un compte de service Compute Engine par défaut qui peut être identifié à l'aide de cet e-mail. [PROJECT_NUMBER][email protected]
Le deuxième membre est un compte spécial appartenant à Google. Ce compte n'est jamais utilisé par l'utilisateur et le rôle ne doit pas être modifié ou supprimé.
Compte de service Google API Outre le compte de service par défaut, chaque projet activé par Compute Engine dispose d'un compte de service API Google qui peut être identifié à l'aide de cet e-mail. [PROJECT_NUMBER]@cloudservices.gserviceaccount.com
Le troisième membre est mon compte Google, qui a un accès complet à toutes les ressources en tant que propriétaire du rôle. Le quatrième membre est le membre pour l'exécution de l'instance de VM ajoutée cette fois.
Cliquez sur Ajouter un autre rôle. Vous pouvez également modifier ou supprimer des rôles existants.
Créez un compartiment pour placer le fichier jar construit localement. Sélectionnez Stockage-> Navigateur-> Créer un bucket dans le menu de gauche de la console GCP.
Cliquez sur le bouton Créer un compartiment pour commencer.
J'ai choisi Regional comme classe de stockage par défaut. Je pensais que ce serait correct d'utiliser "Nearline" ou "Coldline" car je n'ai mis le fichier jar que temporairement, mais je l'ai arrêté car il semble que si je le supprime tôt (le supprime avant la période de conservation minimale), je serai facturé.
** Caractéristiques de la classe de stockage **
C'est une caractéristique en mars 2018.
Une fois le bucket créé, il apparaîtra dans la liste.
Téléchargez un fichier approprié pour vérifier l'opération.
Il est également possible de modifier les autorisations pour chaque compartiment comme indiqué dans la figure. Étant donné que vous avez attribué "Storage Object Viewer" et "Storage Object Creator" au compte de service de l'instance de VM que vous avez créée précédemment, ce compte de service est affiché dans les autorisations de ce compartiment.
Créez une instance de base de données (MySQL 5.7) de la base de données utilisée par l'application Web. Sélectionnez SQL dans le menu de gauche de la console GCP.
Cliquez sur le bouton Créer une instance pour commencer.
Sélectionnez MySQL comme moteur de base de données.
Sélectionnez la deuxième génération.
Saisissez l'ID d'instance et le mot de passe. Cliquez ensuite sur l'option de configuration.
Une certaine configuration est possible en ajoutant un indicateur d'option de réglage.
Il semble que l'indicateur ne puisse être défini que pour les éléments préparés à l'avance avec la formule de sélection (au moins à partir de la console GCP).
Le type de machine et les paramètres de stockage sont indiqués dans la figure ci-dessous. Le type de machine sélectionné est le type le moins performant pour le développement.
Une fois l'instance créée, elle apparaîtra dans la liste. Notez le "nom de connexion de l'instance" affiché à l'écran car il sera utilisé plus tard.
Vous devez activer "Google Cloud SQL API" pour vous connecter à MySQL à partir de votre instance de VM. Ce chiffre est déjà avec l'API activée et n'a pas été affiché au début. "Google Cloud SQL" s'affiche ci-dessus, mais je ne parviens pas à me connecter même si cette option est activée. Cliquez sur Activer les API et les services pour activer l'API.
Si vous saisissez "Google Cloud SQL" dans le champ de recherche et effectuez une recherche, "Google Cloud SQL API" s'affiche.
Cliquez sur Activer pour l'activer.
Créez une instance de VM pour exécuter votre application Web. Sélectionnez Compute Engine-> VM Instance dans le menu de gauche de la console GCP.
Cliquez sur le bouton Créer pour commencer.
Entrez les spécifications de l'instance de VM que vous souhaitez créer.
Entrez le script de démarrage avec des paramètres supplémentaires
** Contenu du script de démarrage **
Dans le script de démarrage, vous pouvez décrire le processus d'initialisation que vous souhaitez exécuter immédiatement après le démarrage de l'instance. Dans cet exemple, openjdk, mysql-client et google-fluentd sont installés. Bien que commenté, il est également possible d'obtenir les métadonnées du serveur de métadonnées et de les définir dans la variable d'environnement.
#! /bin/bash
set -e
set -v
# Talk to the metadata server to get the project id
#export PROJECTID=$(curl -s "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google")
#export BUCKET=$(curl -s "http://metadata.google.internal/computeMetadata/v1/project/attributes/MY_BUCKET" -H "Metadata-Flavor: Google")
#echo "Project ID: ${PROJECTID} Bucket: ${BUCKET}"
# Install dependencies from apt
sudo apt-get update
sudo apt-get --only-upgrade install -yq google-cloud-sdk
sudo apt-get install -yq openjdk-8-jdk
# Make Java8 the default
sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
# MySQL
sudo apt-get install -yq mysql-client
# Install logging monitor. The monitor will automatically pickup logs sent to syslog.
curl -sSO "https://dl.google.com/cloudagents/install-logging-agent.sh"
sudo bash install-logging-agent.sh
echo "Startup Complete"
Entrez "web-app" pour la balise de réseau réseau. Cette balise sera utilisée plus tard lors de l'ajout de règles de pare-feu. Enfin, cliquez sur le bouton "Créer".
Une fois l'instance de VM créée, elle apparaîtra dans la liste. Vous pouvez accéder à cette instance de VM en accédant à l'adresse IP externe. Cependant, il s'agit d'une adresse IP éphémère (temporaire). Vous pouvez également réserver et attribuer une adresse IP statique séparément.
Sélectionnez Afficher les commandes gcloud dans le menu déroulant SSH de la connexion.
La ligne de commande gcloud requise pour la connexion s'affiche.
Lorsque vous exécutez la ligne de commande illustrée dans la figure à partir de l'invite Windows, le logiciel du terminal démarre automatiquement et se connecte à l'instance de VM.
> gcloud compute --project "project-********" ssh --zone "us-east1-b" "web-app-instance-1"
Le SDK Cloud est déjà installé sur l'instance de VM.
$ gcloud components list
Your current Cloud SDK version is: 194.0.0
The latest available version is: 194.0.0
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Components │
├───────────────┬──────────────────────────────────────────────────────┬──────────────────────────┬───────────┤
│ Status │ Name │ ID │ Size │
├───────────────┼──────────────────────────────────────────────────────┼──────────────────────────┼───────────┤
│ Not Installed │ App Engine Go Extensions │ app-engine-go │ 151.9 MiB │
│ Not Installed │ Cloud Bigtable Command Line Tool │ cbt │ 4.5 MiB │
│ Not Installed │ Cloud Bigtable Emulator │ bigtable │ 3.7 MiB │
│ Not Installed │ Cloud Datalab Command Line Tool │ datalab │ < 1 MiB │
│ Not Installed │ Cloud Datastore Emulator │ cloud-datastore-emulator │ 17.9 MiB │
│ Not Installed │ Cloud Datastore Emulator (Legacy) │ gcd-emulator │ 38.1 MiB │
│ Not Installed │ Cloud Pub/Sub Emulator │ pubsub-emulator │ 33.4 MiB │
│ Not Installed │ Emulator Reverse Proxy │ emulator-reverse-proxy │ 14.5 MiB │
│ Not Installed │ Google Container Local Builder │ container-builder-local │ 3.8 MiB │
│ Not Installed │ Google Container Registry\'s Docker credential helper│ docker-credential-gcr │ 3.3 MiB │
│ Not Installed │ gcloud app Java Extensions │ app-engine-java │ 118.9 MiB │
│ Not Installed │ gcloud app PHP Extensions │ app-engine-php │ │
│ Not Installed │ gcloud app Python Extensions │ app-engine-python │ 6.2 MiB │
│ Not Installed │ gcloud app Python Extensions (Extra Libraries) │ app-engine-python-extras │ 27.8 MiB │
│ Not Installed │ kubectl │ kubectl │ 12.3 MiB │
│ Installed │ BigQuery Command Line Tool │ bq │ < 1 MiB │
│ Installed │ Cloud SDK Core Libraries │ core │ 7.4 MiB │
│ Installed │ Cloud Storage Command Line Tool │ gsutil │ 3.4 MiB │
│ Installed │ gcloud Alpha Commands │ alpha │ < 1 MiB │
│ Installed │ gcloud Beta Commands │ beta │ < 1 MiB │
└───────────────┴──────────────────────────────────────────────────────┴──────────────────────────┴───────────┘
To install or remove components at your current SDK version [194.0.0], run:
$ gcloud components install COMPONENT_ID
$ gcloud components remove COMPONENT_ID
To update your SDK installation to the latest version [194.0.0], run:
$ gcloud components update
Vérifier la version Java
$ java -version
openjdk version "1.8.0_162"
OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1~deb9u1-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)
Vérifiez la version du client MySQL
$ mysql --version
mysql Ver 15.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Vérifiez si le "journal d'écriture" attribué par IAM et google-fluentd installé par startup-script fonctionnent correctement.
$ ps -aux | grep google-fluentd
Rédigez un journal de confirmation. Ouvrez "Journalisation" -> "Journaux" dans la console et vérifiez si le message suivant est dans le journal de cette instance de VM.
$ logger "test log message"
Cloud SQL> Documents> MySQL> Connecter le client MySQL à partir de Compute Engine
Il existe plusieurs façons de se connecter d'une instance de VM Compute Engine à une instance de base de données Cloud SQL, mais cet article a utilisé cloud_sql_proxy.
Installez cloud_sql_proxy.
$ wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
$ chmod +x cloud_sql_proxy
Démarrez le proxy sur le socket TCP. La chaîne de caractères spécifiée pour les instances est "nom de connexion d'instance".
$ ./cloud_sql_proxy -instances=project-********:us-east1:mysql-********-********=tcp:3306 &
[1] 1415
2018/03/28 05:03:00 Listening on 127.0.0.1:3306 for project-********:us-east1:mysql-********-*********
2018/03/28 05:03:00 Ready for new connections
Vérifiez si vous pouvez vous connecter avec le client MySQL.
$ mysql -h 127.0.0.1 -u root -p
Enter password:
2018/03/28 05:03:20 New connection for "project-********:us-east1:mysql-********-*********"
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 178
Server version: 5.7.14-google-log (Google)
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
Créez une base de données à utiliser dans les applications Web.
CREATE DATABASE IF NOT EXISTS demo_db
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci;
CREATE USER IF NOT EXISTS 'demo_user'@'%'
IDENTIFIED BY 'demo_pass'
PASSWORD EXPIRE NEVER;
GRANT ALL ON demo_db.* TO 'demo_user'@'%';
DROP TABLE IF EXISTS memo;
CREATE TABLE IF NOT EXISTS memo (
id BIGINT AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
done BOOLEAN NOT NULL DEFAULT FALSE,
updated TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (id)
)
ENGINE = INNODB,
CHARACTER SET = utf8mb4,
COLLATE utf8mb4_general_ci;
INSERT INTO memo (id, title, description, done, updated) VALUES
(1, 'memo shopping', 'memo1 description', false, '2018-01-04 12:01:00'),
(2, 'memo job', 'memo2 description', false, '2018-01-04 13:02:10'),
(3, 'memo private', 'memo3 description', false, '2018-01-04 14:03:21'),
(4, 'memo job', 'memo4 description', false, '2018-01-04 15:04:32'),
(5, 'memo private', 'memo5 description', false, '2018-01-04 16:05:43'),
(6, 'memo travel', 'memo6 description', false, '2018-01-04 17:06:54'),
(7, 'memo travel', 'memo7 description', false, '2018-01-04 18:07:05'),
(8, 'memo shopping', 'memo8 description', false, '2018-01-04 19:08:16'),
(9, 'memo private', 'memo9 description', false, '2018-01-04 20:09:27'),
(10,'memo hospital', 'memoA description', false, '2018-01-04 21:10:38')
;
Assurez-vous que vous pouvez vous connecter avec demo_user.
$ mysql -h 127.0.0.1 -D demo_db -u demo_user -p
** Connectez-vous en utilisant gcloud **
Vous pouvez également vous connecter à une instance de base de données avec l'outil gcloud au lieu du client MySQL. Les informations utilisées à ce stade sont l'ID de l'instance de base de données, et non le nom de connexion de l'instance.
> gcloud sql connect <db instance id> -u root
Whitelisting your IP for incoming connection for 5 minutes...done.
Connecting to database with SQL user [root].Enter password: ********
** Connectez-vous en utilisant cloud_sql_proxy **
Une version Windows de cloud_sql_proxy est fournie. La méthode de connexion est identique à la connexion à partir d'une instance de VM.
> cloud_sql_proxy_x64.exe -instances=project-********:us-east1:mysql-********=tcp:3306
Utilisez l'outil gsutil pour voir si les objets du compartiment sont visibles.
$ gsutil ls gs://<my_bucket_name>
gs://<my_bucket_name>/test.txt
Vérifiez si vous pouvez télécharger le fichier à partir du bucket.
$ gsutil cp gs://<my_bucket_name>/test.txt .
Copying gs://<my_bucket_name>/test.txt...
/ [1 files][ 6.0 B/ 6.0 B]
Operation completed over 1 objects/6.0 B.
Vérifiez si vous pouvez télécharger le fichier dans le compartiment.
$ echo "test" > test2.xt
$ gsutil test2.txt gs://<my_bucket_name>
Copying file://test2.txt [Content-Type=text/plain]...
/ [1 files][ 6.0 B/ 6.0 B]
Operation completed over 1 objects/6.0 B.
Comme l'application Web écoute sur le port 9000, ajoutez une règle pour passer 9000. Sélectionnez Réseau VPC-> Règles de pare-feu dans le menu de gauche de la console GCP.
Cliquez sur Créer une règle de pare-feu pour commencer.
Pour la balise cible, saisissez la balise réseau qui a été définie lors de la création de l'instance de VM. La spécification d'une balise détermine à quoi s'applique cette règle.
La procédure pour exécuter une application Web développée à l'aide de Spring Boot sur une instance de VM est la suivante.
Construisez sur un PC local et générez un fichier jar
> mvn clean package
Téléchargez le fichier JAR généré dans le bucket
> gsutil cp .\target\demo-gcp-spring2-0.0.1-SNAPSHOT.jar gs://<my_bucket_name>
Téléchargez le fichier jar du bucket vers l'instance de VM
$ gsutil cp gs://<my_bucket_name>/demo-gcp-spring2-0.0.1-SNAPSHOT.jar .
Exécutez le fichier jar sur l'instance de VM
$ java -jar demo-gcp-spring2-0.0.1-SNAPSHOT.jar
Accès avec un navigateur
http://<IP externe de l'instance de VM>:9000/<API d'application>
** Envoyer le fichier jar **
Compute Engine> Documents> Transférer des fichiers vers des instances
Le fichier jar est envoyé à l'instance de VM via un bucket, mais vous pouvez également utiliser la commande gcloud compute scp.
> gcloud compute scp <local_file_name> <instance_id>:/tmp
Une API REST qui renvoie une ou plusieurs données dans la table mémo avec json.
/app/memo/{id}
** Exemple de réponse **
{
"id": 1,
"title": "memo shopping",
"description": "memo1 description",
"done": false,
"updated": "2018-01-04T12:01:00"
}
/app/memo/list?size=3
** Exemple de réponse **
[
{
"id": 1,
"title": "memo shopping",
"description": "memo1 description",
"done": false,
"updated": "2018-01-04T12:01:00"
},
{
"id": 2,
"title": "memo job",
"description": "memo2 description",
"done": false,
"updated": "2018-01-04T13:02:10"
},
{
"id": 3,
"title": "memo private",
"description": "memo3 description",
"done": false,
"updated": "2018-01-04T14:03:21"
}
]
Cloud Storage JSON API
Cloud Storage> Documentation> Présentation de l'API JSON Google Cloud Storage
Comment obtenir des informations de compartiment à partir d'une instance de VM à l'aide de curl. L'authentification API utilise OAuth 2.0.
Obtenez le jeton d'accès requis pour l'authentification. Ce jeton est généré par le compte de service de l'instance de VM.
$ gcloud auth list
Credentialed Accounts
ACTIVE ACCOUNT
* compute-engine-web-application@project-********.iam.gserviceaccount.com
To set the active account, run:
$ gcloud config set account `ACCOUNT`
$ gcloud auth print-access-token
<access_token>
Spécifiez le jeton d'accès obtenu dans l'en-tête d'autorisation.
Cette API / b / <bucket> / o
JSON renvoie une liste d'objets dans le bucket spécifié par \ <bucket >.
$ curl 'https://www.googleapis.com/storage/v1/b/<bucket>/o' \
-H 'Authorization: Bearer <access_token>' \
-H 'Accept: application/json' \
--compressed
Recommended Posts