我正在使用 Terraform 为我们的应用程序创建应用程序注册和角色。但我不知道如何对二头肌做同样的事情。这是今天使用的:
步骤 1. 在 Active Directory 中注册应用程序,有效创建“应用程序注册”。
resource "azuread_application" "ad_app" {
name = local.full_app_name
type = "webapp/api"
owners = var.app_owners
}
Run Code Online (Sandbox Code Playgroud)
第 2 步:为我们的应用程序创建角色
resource "azuread_application_app_role" "person_read" {
application_object_id = azuread_application.ad_app.id
allowed_member_types = ["Application"]
description = "Person Reader can search and read persons"
display_name = "Person Reader"
value = "Persons.Read"
}
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何使用 Bicep(或 ARM 模板)执行这些步骤。我尝试过'Microsoft.Authorization/roleDefinitions',但似乎不对。我不知道如何进行应用程序注册。
azure-active-directory terraform azure-rm-template azure-bicep
我正在研究 ARM 模板,我已经创建了包含两个或多个 azure 应用服务以及应用服务计划的模板文件,然后配置了每个应用服务的 VNET 集成。
这是示例 JSON 代码:
{
"comments": "Web-App-01",
"name": "[variables('app_name_01')]",
"type": "Microsoft.Web/sites",
"location": "[variables('location')]",
"apiVersion": "2016-08-01",
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', variables('asp_name_01'))]"
],
"tags": {
"displayName": "[variables('app_name_01')]"
},
"properties": {
"name": "[variables('app_name_01')]",
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('asp_name_01'))]",
"siteConfig": {
"alwaysOn": true
}
},
"resources": [
{
"type": "Microsoft.Web/sites/virtualNetworkConnections",
"name": "[concat(variables('app_name_01'), '/', variables('vnet_connection_name'),uniqueString('asdsdaxsdsd'))]",
"apiVersion": "2016-08-01",
"location": "[variables('location')]",
"properties": {
"vnetResourceId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vm_vnet_name'), variables('web_subnet_name'))]"
},
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('app_name_01'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vm_vnet_name'), variables('web_subnet_name'))]"
]
}
]
},
{
"comments": "Web-App-02",
"name": "[variables('app_name_02')]", …Run Code Online (Sandbox Code Playgroud) azure azure-virtual-network azure-web-app-service azure-rm-template
大家,
有人可以帮助我使用ARM模板部署WebJobs吗?
谢谢Rajaram.
在模板下面部署:
https://gist.github.com/rnkhouse/aea0a8fd395da37b19466348b919d620
错误:
"部署失败,状态码为:400,消息:部署模板验证失败:'资源'Microsoft.Network/virtualNetworks/mtes-dev-VNET'未在模板中定义.请参阅https://aka.ms/arm -template用于使用细节.'."
我已经在其他模板中创建了虚拟网络,并在此处使用相同的资源组.但是,我仍然犯了错误.请指教!
我有一个 ARM 模板,它提供 cosmosDb 的 primaryMasterKey,如下所示:
{ "properties": { "enabled": true, "siteConfig": { "appSettings": [ { "name": "MongoDb:CnnDetails", "value": "[listKeys(resourceId('Microsoft.DocumentDB/databaseAccounts') , variables('cosmosdb_full')), '2015-04-08').primaryMasterKey]" } }
如何修改它以获取实际的连接字符串?
我尝试了几件事:
'语言表达式属性'primaryConnectionString'不存在,可用属性为'primaryMasterKey、secondaryMasterKey、primaryReadonlyMasterKey、secondaryReadonlyMasterKey'
'语言表达式属性 'primaryConnectionString' 不存在,可用属性为 'connectionStrings'
我去https://docs.microsoft.com/en-us/rest/api/cosmos-db-resource-provider/databaseaccounts/listconnectionstrings#code-try-0尝试一下。ListKeys 返回这样的结构:
{ "primaryMasterKey": "[REDACTED]", "secondaryMasterKey": "[REDACTED]", "primaryReadonlyMasterKey": "[REDACTED]", "secondaryReadonlyMasterKey": "[REDACTED]" }
所以我明白为什么 .primaryMasterKey 起作用了。但 ListConnectionStrings 返回:
{
"connectionStrings": [
{
"connectionString": "mongodb://[REDACTED]:10255/?ssl=true&replicaSet=globaldb",
"description": "Primary MongoDB Connection String"
},
{
"connectionString": "mongodb://[REDACTED]:10255/?ssl=true&replicaSet=globaldb",
"description": "Secondary MongoDB …Run Code Online (Sandbox Code Playgroud) 我试图通过Azure资源管理器创建一个网站,然后从私有Github存储库进行部署.
我有一个适用于公共存储库的ARM模板.如果我然后将存储库设为私有,请通过Portal连接到它,一切正常.
如果我重新部署ARM模板,它将失败并显示消息
"Cannot find SourceControlToken with name GitHub."
Run Code Online (Sandbox Code Playgroud)
似乎当门户连接到私有仓库时,它将创建一个用于进行身份验证的ssh密钥.
ssh密钥似乎来自kudu,可以在部署站点后获得.
我也尝试过使用访问令牌,但无法使用访问令牌
所以简单的问题是,如何通过ARM模板部署私有仓库
通过ARM模板部署Azure功能应用程序和AppSettings时,是否可以告诉Azure不要删除未在模板中声明的AppSettings?
例如,从模板中获取以下AppSettings配置,并想象我正在更新现有的功能应用程序.在这种情况下,将删除名为storageaccountname_STORAGE的AppSetting,这是不合需要的,因为(例如)它已被创建以促进绑定.
{
"apiVersion":"2016-08-01",
"name":"appsettings",
"type":"config",
"dependsOn":[
"[resourceId('Microsoft.Web/Sites/Slots', variables('functionAppName'), 'Staging')]"
],
"properties":{
"AzureWebJobsStorage":"[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storageAccountName'), ';AccountKey=', listkeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2015-05-01-preview').key1, ';')]",
"AzureWebJobsDashboard":"[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storageAccountName'), ';AccountKey=', listkeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2015-05-01-preview').key1, ';')]",
"APPINSIGHTS_INSTRUMENTATIONKEY":"[reference(resourceId('Microsoft.Insights/components', variables('applicationInsightsName')), '2014-04-01').InstrumentationKey]",
"FUNCTION_APP_EDIT_MODE":"readwrite",
"FUNCTIONS_EXTENSION_VERSION":"~1",
"WEBSITE_CONTENTAZUREFILECONNECTIONSTRING":"[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storageAccountName'), ';AccountKey=', listkeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2015-05-01-preview').key1, ';')]",
"WEBSITE_CONTENTSHARE":"[toLower(variables('functionAppName'))]",
"WEBSITE_NODE_DEFAULT_VERSION":"6.5.0"
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法通过ARM模板选择性地设置AppSettings,或者模板根本不适合这种情况所需的功能?
有没有办法通过 ARM 模板创建 Azure 存储队列?我可以找到一种创建容器的方法,但找不到与通过 ARM 创建存储队列相关的任何内容。
azure azure-storage azure-resource-manager azure-rm-template
如何通过资源类型和标识符识别 ARM 模板中是否存在 azure 资源
我正在通过 ARM 模板部署 Azure Front Door,并尝试在自定义域上启用 HTTPS。
根据Front Door的Azure 文档,有一个快速入门模板“将自定义域添加到您的 Front Door 并使用通过 DigiCert 生成的 Front Door 托管证书为其启用 HTTPS 流量”。但是,虽然这会添加自定义域,但它不会启用 HTTPS。
查看 Front Door的ARM 模板参考,我看不到任何明显的启用 HTTPS 的方法,但也许我遗漏了什么?
尽管有以下附加信息,我还是希望能够通过 ARM 模板部署在 Front Door 自定义域上启用 HTTPS。这在这个时候可能吗?
请注意,有一个启用 HTTPS的REST 操作,但这似乎不适用于 Front Door 托管证书 -
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/frontendEndpoints/{frontendEndpointName}/enableHttps?api-version=2019-05-01
{
"certificateSource": "FrontDoor",
"protocolType": "ServerNameIndication",
"minimumTLSVersion": "1.2"
}
Run Code Online (Sandbox Code Playgroud)
还有一个AzPowerShell cmdlet 来启用 HTTP,它确实有效。
Enable-AzFrontDoorCustomDomainHttps -ResourceGroupName "lmk-bvt-accounts-front-door" -FrontDoorName "my-front-door" -FrontendEndpointName "my-front-door-rg"
Run Code Online (Sandbox Code Playgroud)