如何通过 CLI 获取 Google Cloud SQL 实例的 IP
How to get IP of Google Cloud SQL instance via CLI
我在 Google 云平台上使用云 SQL。
将数据库的IP作为变量很有用,可以在脚本中使用。
可以使用什么命令来实现?
Bash 示例:
export DP_IP=$(gcloud ................)
更新: 另请参阅@rossco 的回答
基本解决方案:
export DB_IP=$(gcloud sql instances describe $DATABASE_ID --project $PROJECT_ID --format 'value(ipAddresses.ipAddress)')
使用 Secrets Manager 的解决方案:
使用这些 Bash 命令,您可以获得 url 并将其保存在 Secrets Manager 中:
首先创建空的Secret:
gcloud secrets create "DB_IP" --project $PROJECT_ID --replication-policy=automatic
然后:
gcloud sql instances describe $DATABASE_ID --project $PROJECT_ID --format 'value(ipAddresses.ipAddress)' --project $PROJECT_ID | gcloud secrets versions add "DB_IP" --data-file=- --project $PROJECT_ID
或添加“:5432”的版本
DB_IP=$(gcloud sql instances describe $DATABASE_ID --project $PROJECT_ID --format 'value(ipAddresses.ipAddress)') # capture first string.
echo "$DB_IP:5432" | gcloud secrets versions add "DB_IP" --data-file=- --project $PROJECT_ID
然后您可以根据需要从 Secrets Manager 加载它:
export DB_IP=$(gcloud secrets versions access latest --secret="DB_IP" --project $PROJECT_ID )
你可以试试这个:
$ echo $(gcloud sql instances describe [instance id] --format="value(ipAddresses.ipAddress)")
当有多个 IP 地址可用时,接受的答案将不起作用,例如 public、传出和私有。要从特定实例中 select 您感兴趣的 IP 地址,您需要按地址类型进行过滤。
例如获取命名实例的私有IP
gcloud sql instances list --filter=name:$DATABASE_ID --format="value(PRIVATE_ADDRESS)"
如果您想要 public 地址,请将 PRIVATE_ADDRESS 更改为 PRIMARY_ADDRES
我在 Google 云平台上使用云 SQL。
将数据库的IP作为变量很有用,可以在脚本中使用。
可以使用什么命令来实现?
Bash 示例:
export DP_IP=$(gcloud ................)
更新: 另请参阅@rossco 的回答
基本解决方案:
export DB_IP=$(gcloud sql instances describe $DATABASE_ID --project $PROJECT_ID --format 'value(ipAddresses.ipAddress)')
使用 Secrets Manager 的解决方案:
使用这些 Bash 命令,您可以获得 url 并将其保存在 Secrets Manager 中:
首先创建空的Secret:
gcloud secrets create "DB_IP" --project $PROJECT_ID --replication-policy=automatic
然后:
gcloud sql instances describe $DATABASE_ID --project $PROJECT_ID --format 'value(ipAddresses.ipAddress)' --project $PROJECT_ID | gcloud secrets versions add "DB_IP" --data-file=- --project $PROJECT_ID
或添加“:5432”的版本
DB_IP=$(gcloud sql instances describe $DATABASE_ID --project $PROJECT_ID --format 'value(ipAddresses.ipAddress)') # capture first string.
echo "$DB_IP:5432" | gcloud secrets versions add "DB_IP" --data-file=- --project $PROJECT_ID
然后您可以根据需要从 Secrets Manager 加载它:
export DB_IP=$(gcloud secrets versions access latest --secret="DB_IP" --project $PROJECT_ID )
你可以试试这个:
$ echo $(gcloud sql instances describe [instance id] --format="value(ipAddresses.ipAddress)")
当有多个 IP 地址可用时,接受的答案将不起作用,例如 public、传出和私有。要从特定实例中 select 您感兴趣的 IP 地址,您需要按地址类型进行过滤。
例如获取命名实例的私有IP
gcloud sql instances list --filter=name:$DATABASE_ID --format="value(PRIVATE_ADDRESS)"
如果您想要 public 地址,请将 PRIVATE_ADDRESS 更改为 PRIMARY_ADDRES