如何通过 Azure CLI 将 IP 地址添加到 Cosmosdb 数据库防火墙

问题描述 投票:0回答:3

我想通过 Azure CLI 将我的 IP 添加到 cosmosdb 防火墙。 使用 Azure CLI 执行此操作的唯一方法是使用

az cosmosdb update
,但它会覆盖防火墙中的当前 IP。

我使用的是 MacOS,因此我可以通过

curl ifconfig.me
获取我的 IP。

如何将我的 IP 添加到防火墙而不覆盖当前 IP?

azure shell azure-cosmosdb
3个回答
7
投票

您可以简单地使用

az cosmosdb list
获取列表并将您的 IP 附加到列表中,然后使用该列表
cosmosdb update

DESIRED_IP=$(curl ifconfig.me)
CURRENT_IPS=$(az cosmosdb list | jq -r '.[0].ipRules | .[] | .ipAddressOrRange' | paste -sd "," -)
DESIRED_IPS=$CURRENT_IPS,$DESIRED_IP
az cosmosdb update -n .. -g .. --ip-range-filter "$DESIRED_IPS"

1
投票

你不能简单地添加一个新的IP(就像大多数azure服务😡),你需要获取当前的IP列表,将新的添加到最后,然后更新整个列表。

az cosmosdb list
获取一个 json 对象,其中包含有关所有 Cosmos 数据库实例的所有信息。

技巧是使用查询 (

--query
) 从 json 中提取您要更新的数据库实例的 IP 列表。

这是一个示例脚本:

# Your IP
$IP_ADDRESS="1.2.3.4"
# Get current cosmos IP rules
CURRENT_IPS=$(az cosmosdb list --query "[?instanceId=='my-istance-guid-here'].ipRules[].ipAddressOrRange | join(',',@)"  | sed 's/"//g')
# Add new IP to the exisintg listb (stupid cosmos has different system to everything else - cant justy add a new IP)
DESIRED_IPS=$CURRENT_IPS,$IP_ADDRESS
# Add the IP address to the Cosmos DB firewall using the Azure CLI
az cosmosdb update --name "my-cosmos-db-name-here" --resource-group "my-resource-group" --ip-range-filter "$DESIRED_IPS"

有关 az 命令的更多信息 - https://learn.microsoft.com/en-us/cli/azure/cosmosdb?view=azure-cli-latest#az-cosmosdb-list

有关 --query / JMESPath 的更多信息请参见此处 - https://jmespath.org


0
投票

az cosmosdb update 命令需要很长时间才能返回。我后面有一个 echo 语句,但尚未打印在控制台上。这正常吗?

© www.soinside.com 2019 - 2024. All rights reserved.