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

bxpogfeg  于 2022-12-19  发布在  Shell
关注(0)|答案(2)|浏览(151)

我想通过Azure CLI将我的IP添加到cosmosdb防火墙。使用Azure CLI执行此操作的唯一方法是使用az cosmosdb update,但它会覆盖防火墙中的当前IP。
我使用MacOS,所以我可以通过curl ifconfig.me获得我的IP。
如何在不覆盖当前IP的情况下将我的IP添加到防火墙?

2wnc66cl

2wnc66cl1#

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

8cdiaqws2#

你不能简单地添加一个新的IP(像大多数Azure服务😡),你需要获得当前的IP列表,将新的IP添加到最后,然后更新整个列表。
az cosmosdb list获取一个json对象,其中包含关于所有cosmos db示例的所有信息。
技巧是使用查询(--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
更多信息--此处为查询/ JMESPath-https://jmespath.org

相关问题