要在azure sdk流畅的nuget中使用Azure进行身份验证,有一种方法可以使用客户端ID和密码,如下所示
var azureCredentials = new AzureCredentials(new
ServicePrincipalLoginInformation
{
ClientId = "ClientId",
ClientSecret = "ClientSecret"
}, "tenantId", AzureEnvironment.AzureGlobalCloud);
Run Code Online (Sandbox Code Playgroud)
在下面的代码中创建IAzure时,是否有任何接口可以使用身份验证令牌(JWT)而不是使用客户端ID和密码?
_azure = Azure
.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(azureCredentials)
.WithSubscription(_subscriptionId);
Run Code Online (Sandbox Code Playgroud)
注意:我有一个单独的身份验证器模块,它保留客户端ID和秘密,并使用它们来获取将由其他组件/ sdks使用的身份验证令牌.
我想创建一个BlobClient
了解 blob Uri 的 Azure SDK。我可以这样做:
StorageSharedKeyCredential storageCredential = new StorageSharedKeyCredential("devstoreaccount1", "account key");
BlobClient bl = new BlobClient(new Uri(blobUri), storageCredential);
Run Code Online (Sandbox Code Playgroud)
但我不想在这种情况下使用 StorageSharedKey。我想使用连接字符串。
然而,将连接字符串作为第一个参数的构造函数如下所示:
还有另一种方法可以使用 Blob Uri + 连接字符串初始化 BlobClient 吗?如果不是,因为我输入的只是 Blob Url,有没有办法解析 Url 以隔离容器名称和 Blob 名称?我不知道如何识别它们。
注意:尽管它可能看起来重复,但我的问题是不同的,我要求您阅读完整的描述,然后仅通过阅读问题标题就匆忙地将问题记下来。
我于2017 年 5 月 24 日在官方“ azure-webjobs-sdk-script ”git 存储库中打开了“ Azure 功能未在预定时间触发”问题,但目前还没有回复。所以我在这里重新提问。
我在消费计划中使用 azure 函数,并通过在 function.json 中设置以下 cron 表达式将其安排在每 UTC 时间凌晨 4 点执行:
{
"bindings": [
{
"name": "myTimer",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 0 4 * * *"
}
],
"disabled": false
}
Run Code Online (Sandbox Code Playgroud)
仅当我登录门户或单击函数刀片时, Azure 函数才会按时执行。当我从门户注销时它不会调用(建议系统侦听器或函数在一段时间后进入睡眠状态)。
他们的官方文档指出,消费计划中的函数不需要任何其他设置(如始终开启)来保持函数的活动状态,Azure Functions 主机的实例会根据传入事件的数量动态添加和删除。. 因此,根据文档,我无需配置其他设置即可执行消费计划中的功能。
我尝试过什么?
从“定时器触发的天蓝色功能未触发”问题中,我重新检查并确保了我的计划(消费计划)和时区。(我希望它在 utc 中运行,所以不需要显式设置)
从“ #1445:Azure 函数计时器触发器未触发”git 问题中,我检查了是否只是未出现的日志。但我当然可以肯定,它不是日志,而是不会触发实际功能,除非我打开门户或手动触发它。
如果我将计划更改为更接近的递归调用,我试图检查这种行为是否存在——我计划函数每 2 小时执行一次,即使我注销或没有手动唤醒函数,这个计划也能完美运行。这意味着,当计划设置为在更大的间隔集上运行时会出现一些问题(在我的情况下是每天)
我正在使用 Visual Studio 2015 项目模板中的 Azure 资源组项目为我的项目创建 Azure 资源管理器部署模板。我之前成功地创建了这些项目。但是今天更新了Azure SDK到v2.9.5,突然项目创建失败。它失败并显示以下错误消息。
无法将“System.__ComObject”类型的 COM 对象强制转换为“EnvDTE.Project”类型的接口。此操作失败,因为 IID 为“866311E6-C887-9833-645F5B93F6F1}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持 cush 接口(来自 HRESULT 的异常:0x80004002 (E_NONINTERFACE))。
当我从模板选择对话框中选择启动模板时会发生此异常(我选择了 WebApp+SQL 模板。这对于其他模板也失败)。所以在此之后,项目是不完整的创建。
我在 3 台安装了 Azure SDK v2.9.5 的不同 PC 上遇到了同样的问题。这个问题是否与 SDK 本身有关?或者我应该如何解决这个问题。
azure azure-resource-manager visual-studio-2015 azure-rm-template azure-sdk
对于特定的虚拟机,我希望能够检索公共 IP 地址。
我知道如何获取资源组的所有公共 IP 地址,我也知道如何获取特定虚拟机的 nic-id - 但我不知道如何连接两者。
这就是我所拥有的:
var resourceGroupName = "My-Resource-Group";
var vmName = "MyVM";
var subscriptionId = "bzz-bzz-bzz-bzz-bzz-bzz";
var tenantId = "bar-bar-bar-bar-bar-bar";
string clientId = "foo-foo-foo-foo-foo-foo";
string clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
var token = GetAccessTokenAsync(tenantId, clientId, clientSecret);
var credential = new TokenCredentials(token.Result.AccessToken);
var computeManagementClient = new ComputeManagementClient(credential) { SubscriptionId = subscriptionId };
var vmResult = await computeManagementClient.VirtualMachines.GetAsync(resourceGroupName, vmName, InstanceViewTypes.InstanceView);
//Get the NIC ID for the VM:
foreach (NetworkInterfaceReference nic in vmResult.NetworkProfile.NetworkInterfaces)
{
Console.WriteLine(" networkInterface id: " + …
Run Code Online (Sandbox Code Playgroud) 我正在消耗计划上运行 Azure Function 应用程序,并且我想监视当前运行的实例数量。使用格式的 REST API 端点
https://management.azure.com/subscriptions/{subscr}/resourceGroups/{rg}
/providers/Microsoft.Web/sites/{appname}/instances?api-version=2015-08-01
Run Code Online (Sandbox Code Playgroud)
我能够检索实例。但是,结果与我在 Application Insights/Live Metrics Stream 中看到的信息不匹配。
例如,现在 App Insights 显示有 4 台服务器在线,而 API 调用仅返回一台(这 1 个实例的 GUID 也在 App Insights guid 中)。
我可以信任谁?有没有更好的方法来获取实例计数(例如从 App Insights)?
更新:看起来 REST API 的数据是错误的。
我向队列发送了 10000 条消息,并使用处理请求的相应实例 ID 记录每个函数调用。
虽然消息不断传入且积压工作不断增长,但 REST API 的实例计数似乎是正确的(从 1 缩放到 12)。发送停止后,报告的实例计数迅速下降(最终回到 1,而处理器仍然繁忙)。
但根据速度和执行日志,我可以看出实际实例数不断增长,在处理最后一条消息时最终达到 15 个实例。
UPDATE2:看起来 SDK 拒绝报告超过 20 个服务器。该指标稳定在 20,而 App Insights 保持稳定增长,目前已达到 41。
我需要从 keyvault 中检索秘密。到目前为止,这是我的代码:
from azure.mgmt.keyvault import KeyVaultManagementClient
from azure.common.credentials import ServicePrincipalCredentials
subscription_id = 'x'
# See above for details on creating different types of AAD credentials
credentials = ServicePrincipalCredentials(
client_id = 'x',
secret = 'x',
tenant = 'x'
)
kv_client = KeyVaultManagementClient(credentials, subscription_id)
for vault in kv_client.vaults.list():
print(vault)
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
msrestazure.azure_exceptions.CloudError:Azure 错误:AuthorizationFailed 消息:对象 ID 为“x”的客户端“x”无权在范围“/subscriptions/x”上执行操作“Microsoft.Resources/subscriptions/resources/read”。
现在我可以使用 C# 代码/ POwershell 使用相同的凭据访问相同的 keyvault,因此授权肯定没有问题。不知道为什么它不能使用 SDK 工作。请帮忙。
我有以下 Terraform 资源用于配置 Azure 应用服务:
resource "azurerm_app_service" "app_service" {
name = "Test-App-Service-3479112"
location = "${azurerm_resource_group.resource_group.location}"
resource_group_name = "${azurerm_resource_group.resource_group.name}"
app_service_plan_id = "${azurerm_app_service_plan.app_service_plan.id}"
site_config {
dotnet_framework_version = "v4.0"
remote_debugging_version = "VS2012"
}
app_settings {
"ASPNETCORE_ENVIRONMENT" = "test"
"WEBSITE_NODE_DEFAULT_VERSION" = "4.4.7"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试添加要在我的资源中使用的 CORS 原始值。有没有办法在 Terraform 中添加它,或者如果没有,我该如何在我的 Terraform 文件中配置它(可能使用 Azure SDK)?
根据详细介绍 Azure 存储限制的这篇文章,可以发出的 Azure 资源管理器请求的数量是有限制的。
此外,本文详细介绍了 ARM API 的限制。此处的一篇帖子声称他们在发出过多请求后遇到了运行列表操作的问题。
我的问题是,每小时为 blob 存储生成的 SAS 密钥数量是否有限制?创建 SAS 密钥是 ARM 事件吗?
例如,如果我使用 Python Azure 存储 SDK 并尝试在一小时内为各种 blob(存储帐户中容器中的文件)创建 160,000 个 SAS 密钥,我会受到限制还是停止?
我的应用程序依赖这些密钥来允许微服务访问受保护的数据,但是如果我无法在短时间内创建大量 SAS 密钥,我将无法扩展此应用程序。
azure azure-storage azure-resource-manager azure-blob-storage azure-sdk
我使用Dot.Net SDK创建了Azure 逻辑应用程序。逻辑应用程序创建成功,但对于触发器和操作,我想使用现有的 Connector。我已手动创建 Azur Portal 的连接器。我正在传递该连接器的 APIConnection 或 Id 来请求 json,但它不会连接到该连接器。我的意思是逻辑应用程序是在没有任何连接器的情况下创建的。
下面是我的请求 Json。
{
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {
"$connections": {
"defaultValue": {
"smtp": {
"connectionId": "/subscriptions/680cf604-e2e7-4a14-9724-a26c35c573ff/resourceGroups/logicapp_flow_rnd/providers/Microsoft.Web/connections/smtp",
"connectionName": "smtp",
"id": "/subscriptions/680cf604-e2e7-4a14-9724-a26c35c573ff/providers/Microsoft.Web/locations/westindia/managedApis/smtp"
},
"sql": {
"connectionId": "/subscriptions/680cf604-e2e7-4a14-9724-a26c35c573ff/resourceGroups/logicapp_flow_rnd/providers/Microsoft.Web/connections/sql",
"connectionName": "sql",
"id": "/subscriptions/680cf604-e2e7-4a14-9724-a26c35c573ff/providers/Microsoft.Web/locations/westindia/managedApis/sql"
}
},
"type": "Object"
}
},
"triggers": {
"When_an_item_is_created": {
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['sql']['connectionId']"
}
},
"method": "get",
"path": "/datasets/default/tables/@{encodeURIComponent(encodeURIComponent('LogicAppTable1'))}/onnewitems"
},
"recurrence": {
"frequency": "Minute",
"interval": …
Run Code Online (Sandbox Code Playgroud)