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



我想通过Azure CLI将我的IP添加到cosmosdb防火墙。使用Azure CLI的唯一方法是使用az cosmosdb update,但它会覆盖防火墙中的当前IP。

我使用的是MacOS,所以我可以通过curl ifconfig.me获取我的IP。

如何在不覆盖当前IP的情况下将我的IP添加到防火墙?

您可以简单地使用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"

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

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

诀窍是使用查询(--query(从json中提取只用于要更新的db实例的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最新#az cosmosdb列表

关于-query/JMESPath的更多信息,请点击此处-https://jmespath.org

相关内容

  • 没有找到相关文章

最新更新