按照 Azure Kudu 网页的建议,尝试从 curl 访问 Azure App 日志流。我在 Windows 10 命令提示符下。这是我正在尝试的示例命令行:
curl -u myUserName https://myApp.scm.azurewebsites.net/api/logstream
Enter host password for user 'myUserName':<password typed here>
Run Code Online (Sandbox Code Playgroud)
myApp: 是我的 Azure 应用服务的名称。
myUserName:
$myApp并且密码是一些 60 字符长的字符串时。在这两种情况下,curl 都会显示网页标题401的内容- 未经授权:由于凭据无效,访问被拒绝。. 我还尝试将用户名用双引号括起来,并用反斜杠 (\) 转义美元符号 ($)。没运气。
我一定是在做一些非常愚蠢的事情。我已经阅读了几个文档和帖子,比如官方 Kudu 文档,msdn,在 SO 上,我想我正在按照说明进行操作。其他来源:再次 MSDN,旧的 seirer 帖子。
编辑
经过建议,我尝试使用用户级部署凭据和 …
我有两个 Azure Function 应用程序,它们使用部署槽、阶段和生产。这两个 Azure Function 应用程序在应用程序设置中有大约 50 个键:值对,用于定义各种 API 密钥、应用程序行为、连接字符串等。
我想将这两个 Azure Function 应用程序部署到五个不同的环境(CI、DEV、QA、STG、PROD)。我相信使用 ARM 模板将这些资源部署到 Azure 是比 Azure CLI 更好的选择。我将在我的 Azure DevOps 发布管道中创建任务来实现这一点。
为了将 ARM 模板分解为易于维护的内容,我想为每个环境创建一个 ARM 模板参数文件。为 Azure 函数定义部署文件时,要定义的属性之一是siteConfig 对象,您可以在其中使用 NameValuePair 对象定义 appSettings 对象。对于每个环境,阶段和生产槽将具有不同的 API 密钥、连接字符串和应用程序行为。我的部署文件使用生产槽和阶段槽创建了 Azure Function 应用。在部署文件中,我必须两次提供 appSettings NameValuePair 对象。然后,我必须为每个环境创建 5 个不同的参数文件。乘以 2,因为我有两个插槽。
参数文件中定义的所有参数都必须在参数对象中的部署模板文件中定义也是如此吗?
我可以只从参数文件中传入一个带有 NameValuePairs 的对象数组,这样我就不必在顶部的部署文件中以及函数应用的 siteConfig.appSettings 下定义完整的参数列表吗?
此处的文档显示您只能提供字符串数组或具有多个键值的单个对象。但是 appSettings 是一个对象数组,其中每个对象都有 3 个键值对。
这就是资源在部署文件中的样子。我想简单地从参数文件中引用整个对象数组,但看起来文档说明我在部署文件的顶部定义了所有 50~ 个参数,然后参数文件在由 Azure CLI 或Azure DevOps 任务。
{
"type": "Microsoft.Web/sites",
"apiVersion": "2018-11-01",
"name": "[parameters('function-app-name')]",
"location": "[parameters('location')]",
"tags": …Run Code Online (Sandbox Code Playgroud) azure azure-resource-manager azure-cli azure-deployment-slots azure-functions
上次更新 Azure DevOps 后,我们的管道停止工作。
我正在使用AZURE CLI任务。
调查显示az cli已更新为2.2.0,但我们这边没有任何更改。
/usr/bin/az --version
azure-cli 2.2.0
Run Code Online (Sandbox Code Playgroud)
并且某些az cli操作开始打印警告。
Warnings默认情况下被重定向bash到错误流,所以我最终得到:
Error: The process '/bin/bash' failed because one or more lines were written to the STDERR stream
Run Code Online (Sandbox Code Playgroud)
az cli如何为我的管道设置具体版本?
我希望管道能够通过 Azure DevOps 更新保持稳定。
按照有关创建 blob 的 Azure CLI“快速入门”说明进行操作。
看起来默认存储帐户中的某些内容阻止了创建新容器的能力;然而,"defaultAction"是Allow:
以下 Azure CLI:
az storage container create --account-name meaningfulname --name nancy --auth-mode login
Run Code Online (Sandbox Code Playgroud)
...导致错误解释存储帐户的网络规则可能是原因:
The request may be blocked by network rules of storage account. Please check network rule set using 'az storage account show -n accountname --query networkRuleSet'.
If you want to change the default action to apply when no rule matches, please use 'az storage account update'.
Run Code Online (Sandbox Code Playgroud)
使用上述消息中的建议,帐户名称上的“show”命令给出:
> az storage account show -n meaningfulname --query networkRuleSet …Run Code Online (Sandbox Code Playgroud) 当您创建启用了软删除的 azure 密钥保管库时,即使您删除它并从头开始重新创建密钥保管库,该密钥保管库仍然存在。
启用软删除后,标记为已删除资源的资源会保留指定的时间段(默认为 90 天)。该服务还提供了一种用于恢复已删除对象的机制,实质上是撤消删除。
当您尝试通过 UI 删除密钥库时,您也会收到此错误消息:
此密钥保管库已启用软删除功能。软删除此密钥保管库后,它将作为隐藏保管库保留在您的订阅中。它将在您指定的保留期后清除。可以使用 Azure 门户、Azure PowerShell 或 Azure CLI 更快地清除它或还原保管库。请参阅此页面以供参考:https : //docs.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete
这导致我在开发中出现问题。我创建了一个启用了软删除的密钥保管库(偶然),现在我想完全删除该密钥保管库并使用不同的设置重新创建它。每次我删除它并重新创建它时,它都包含以前的所有设置、密钥等。我也无法创建具有相同名称且禁用软删除的密钥库。它抱怨具有该名称的密钥库已经存在(VaultAlreadyExists例外)并且设置不兼容。
MSDN 上的keyvault 文档(Azure 中上述消息的链接)提到了如何永久清除软删除,但它稍微委婉的句子对我没有帮助:
可以通过对代理资源的 POST 操作永久删除、清除密钥保管库,并且需要特殊权限。
那么我该如何摆脱这个东西呢?
我正在尝试使用Azure CLI在Azure AD应用程序中添加密钥.但是看看Azure CLI API似乎没有这样的命令.
例如:
我正尝试通过Azure CLI从以下链接自动执行任务:http: //blog.davidebbo.com/2014/12/azure-service-principal.html
我可以创建AD应用程序,服务主体,但我找不到为新创建AD应用程序添加密钥的方法.
我会感谢任何想法和方向:)
提前致谢 !
我们正在编写Azure Resource Manager模板.我们使用以下部署模板架构,因为它是我们在示例中看到的那个.
http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#
Run Code Online (Sandbox Code Playgroud)
它是从2014年初开始的.我们在哪里可以找到更新的模式版本列表?
我们查看了资源管理器提供程序,区域,API版本和模式的列表.它引用了每个提供程序的模式,而不是整个模板.
当我们找到更新的架构列表时,我们如何评估要使用的部署模板架构?最近更好吗?
我正在努力实现这一目标,但是我希望使用任何形式的非人工交互来启用诊断日志记录.我想在构建步骤中加入能够启用诊断日志记录的内容,默认情况下这些内容似乎已关闭.任何Powsershell(使用Azure RM)或visual studio团队服务构建可用于实现此目的的任务?
azure azure-diagnostics azure-web-sites azure-cli azure-web-app-service
我正在尝试使用Azure cli编写环境脚本.我创建了一些功能应用程序,并希望添加主机密钥或至少检索自动创建的默认密钥.天蓝色的cli根本没有任何支持.
似乎有一个api(文档似乎很稀疏)在函数本身允许我获取键,但是你需要一个键来使用它所以..没有帮助那里.
https://github.com/Azure/azure-webjobs-sdk-script/wiki/Key-management-API
例如:https://example-functions.azurewebsites.net/admin/host/keys? code = somecodeyoualreadyknow
我已经看到一些使用webapps scm api下载包含密钥的json文件的其他示例但是我不确定如何使用此API进行身份验证.我有一个服务主体(userid,密码,tenantid),我希望不必在我的脚本中添加另一个身份验证方案.
尝试az cli使用服务主体执行登录并抛出错误说明No subscriptions found for <Service_Principal_AppId>. If this is expected, use '--allow-no-subscriptions'. 此代码以前运行良好,但现在似乎不再起作用。正在使用的命令行如下:
$sp_appid = (Get-AzureRmADServicePrincipal -DisplayName $spDisplayName).ApplicationId.Guid
$sp_secret = (Get-AzureKeyVaultSecret -VaultName $kvName -Name $appKeySecretName).SecretValueText
az login --service-principal --username $sp_appid --password $sp_secret --tenant $tenant_Id
Run Code Online (Sandbox Code Playgroud)
我验证了Contributor在订阅级别为服务主体分配了角色。
azure ×10
azure-cli ×10
azure-cli2 ×1
azure-devops ×1
bash ×1
deployment ×1
kudu ×1
powershell ×1