当 Azure 资源管理器 (ARM) 在 Azure 上部署我的模板时,我收到错误。这部分崩溃了:
{
"comments": "Some comments.",
"tags": {
"displayName": "Server IP Address"
},
"type": "Microsoft.Network/publicIPAddresses",
"name": "[variables('publicIPAddressesDevTableauServerIpName')]",
"apiVersion": "2017-06-01",
"location": "[parameters('location')]",
"properties": {
"publicIPAllocationMethod": "Static",
"idleTimeoutInMinutes": 4,
"dnsSettings": {
"domainNameLabel": "[parameters('tableauResourceGroupName')]"
}
},
"dependsOn": []
},
我收到的错误:
{
"error": {
"code": "NoRegisteredProviderFound",
"message": "No registered resource provider found for location 'westeurope' and API version '2017-09-01' for type 'publicIPAddresses'. The supported api-versions are '2014-12-01-preview, 2015-05-01-preview, 2015-06-15, 2016-03-30, 2016-06-01, 2016-07-01, 2016-08-01, 2016-09-01, 2016-10-01, 2016-11-01, 2016-12-01, 2017-03-01, 2017-04-01, 2017-06-01, 2017-08-01, 2017-09-01'. The supported locations are 'westus, eastus, northeurope, westeurope, eastasia, southeastasia, northcentralus, southcentralus, centralus, eastus2, japaneast, japanwest, brazilsouth, australiaeast, australiasoutheast, centralindia, southindia, westindia, canadacentral, canadaeast, westcentralus, westus2, ukwest, uksouth, koreacentral, koreasouth'."
}
}
我尝试过不同的 API 版本,但没有成功。任何人都知道为什么会发生这种情况?它一直工作到9月3日,但从4日开始停止。我假设 Microsoft 推出了 API 版本控制的一些更新。
好吧,您要么部署了错误的文件,要么没有保存文件或类似的东西。因为
"2017-06-01"
(本示例中的内容)是受支持的 API 版本,并且它显示 2017-09-01 isn't supported
。
ps。尽管
2017-09-01
被列为支持,但它也不适合我,所以恢复到 2017-06-01
。这并不意味着你要牺牲任何东西
我刚刚通过 ARM CLI (azure-cli 2.0.16) 在同一位置 (西欧) 部署相同的 apiVersion (2017-06-01),但对于相同的资源类型 (网络/公共IP地址) 也遇到了同样的问题。我确信我已经用正确的内容保存了所有内容,并且我的 ARM 模板是 git 控制的,并且截至 2017 年 7 月运行顺利。
有趣的是,创建了 pub IP 资源,Azure 门户中的部署日志显示正常,但 2 秒后紧随其后的是同一资源的 BadRequest。
对此可能有多种解释,但我敢打赌最近在我的 Ubuntu 工作站上更新的 azure-cli 存在一些错误。
此外,如果您注意到,错误消息会自相矛盾,指出不支持 apiVersion 2017-09-01,然后将其列为受支持。
当 MS 为某些资源类型引入新的 API 版本但 azure-cli 不是最新版本时,类似的事情不止一次发生在我身上。
如果忽略该问题没有帮助,并且它不会为您创建资源,那么,请尝试按照 MS 指南从这里将 azure-cli 更新到最新版本。
如果没有帮助,请在这里打开错误报告,这绝对不是您的 ARM 模板的问题。
当指定区域不支持您用于在 Azure 上创建 MongoDB 服务的 API 版本时,会出现此错误(在您的情况下为
centralus
)。 Azure 资源具有支持其部署的特定 API 版本,这也取决于区域。
检查支持的 API 版本: 验证
databaseAccounts
中的 centralus
资源类型支持的正确 API 版本。根据错误,支持的 API 版本包括直至 2024-09-01-preview
的各种版本。您可能不小心使用了 2024-12-01-preview
,该功能尚不受支持。
更新您的请求以使用受支持的 API 版本之一。例如,尝试使用
2024-08-15
或 2024-09-01-preview
。
验证 Azure CLI 或 SDK 版本: 如果您使用的是 Azure CLI 或 SDK,请确保将其更新到最新版本。过时的版本可能不支持所需的 API 版本或功能。
要更新 Azure CLI:
bash az 升级
3. **Specify a Supported Region:**
Double-check that the region you are deploying to (`centralus`) supports the MongoDB account type. The error message lists several supported regions, so confirm that the `centralus` region supports MongoDB services.
If `centralus` doesn't meet your requirements, you can try a different region, such as `eastus` or `westus2`.
4. **Deploy via Azure Portal:**
To bypass potential CLI or SDK issues, try creating the MongoDB resource directly through the [Azure Portal](https://portal.azure.com). The portal ensures you are using supported API versions and regions.
5. **Check Resource Provider Registration:**
Ensure that the `Microsoft.DocumentDB` resource provider is registered for your subscription.
To register the provider:
```bash
az provider register --namespace Microsoft.DocumentDB
验证:
az provider show --namespace Microsoft.DocumentDB
az deployment group create --verbose
通过解决这些问题,您应该能够成功部署 MongoDB 服务。如果您需要具体步骤的帮助,请告诉我!