有没有办法阻止SQL Azure数据库,以便它不会对我们的帐户收取任何费用?我不想删除它,只是在测试时它没有被使用,而不是我们将它设置为"停止",就像我们可以处理网站,云服务和VM一样.
谢谢
我一直在梳理Powershell 命令,试图找出如何使用我当前部署的网站/ SQL数据库/存储帐户并将它们移动到自己的资源组中.
是否可以在资源组之间移动Azure"资源"?或者我是否总是需要创建新资源并将数据/代码迁移到这些新资源中?
我有一个运行n Azure的站点,它使用EF Database First模型.
如果我在web.config中嵌入连接字符串并且部署all是美好的.
<add name="MyEntities" connectionString="metadata=res://*/App_Code.Model.csdl|res://*/App_Code.Model.ssdl|res://*/App_Code.Model.msl;provider=System.Data.SqlClient;provider connection string='Data Source=my.database.windows.net;Initial Catalog=myTest_DB;User ID=***;Password=***; MultipleActiveResultSets=False'" providerName="System.Data.EntityClient"/>
Run Code Online (Sandbox Code Playgroud)
但是,我不希望web.config中的连接字符串,因为它包含凭据.
所以我将它移动到Azure Properties中的连接字符串区域.
我遇到的第一个问题是获取元数据无效关键字错误
我通过将类型从SQL数据库更改为自定义来解决这个问题.
但是,我现在收到此错误:
应用程序配置文件中的连接字符串"MyEntities"不包含必需的providerName属性."
我已经在网上搜索并尝试了很多连接字符串,但还没找到正确的连接字符串.
注意:我想我可以将它设置为应用程序设置并将字符串的初始化移动到代码,但即使只是为了好奇,我想知道如何通过门户网站进行操作.
entity-framework connection-string azure azure-management azure-sql-database
我曾经将Azure资源管理为一个旧的预览版本.身份验证的工作方式如下:
// Authorize
this.AuthenticationResult = this.Authorize();
this.Credentials = new TokenCloudCredentials(config.SubscriptionId, this.AuthenticationResult.AccessToken);
this.ResourceManagement = new ResourceManagementClient(this.Credentials, new Uri(config.ManagementBaseUrl));
Run Code Online (Sandbox Code Playgroud)
那将弹出和交互式用户登录窗口.我想用新的流畅的nuget包(Microsoft.Azure.Management.Fluent version="1.0.0")做同样的事情
Azure.Authenticate(???)
Run Code Online (Sandbox Code Playgroud)
这似乎是身份验证方法的最佳文档:https://github.com/Azure/azure-sdk-for-net/blob/Fluent/AUTH.md
但它只涵盖了将硬盘上存储凭据的选项,我希望避免这些选项.因此,无论用户使用我的程序,都需要登录.
总结:如何使用最新的Azure管理API使用交互式用户登录进行身份验证?
c# azure azure-management azure-management-api azure-resource-manager
我正在尝试使用Azure管理API创建Kubernetes集群。
var credentials = SdkContext.AzureCredentialsFactory
.FromFile(Environment.GetEnvironmentVariable("AZURE_AUTH_LOCATION"));
var azure = Azure
.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(credentials)
.WithDefaultSubscription();
var kubernetesCluster = azure.KubernetesClusters.Define("aks").WithRegion(Region.EuropeWest)
.WithNewResourceGroup("aksResourceGroup").WithLatestVersion().WithRootUsername("aksUsername")
.WithSshKey(sshPublicKey).WithServicePrincipalClientId("clientId")
.WithServicePrincipalSecret("secret").DefineAgentPool("ap").WithVirtualMachineCount(1)
.WithVirtualMachineSize(ContainerServiceVirtualMachineSizeTypes.StandardA0).Attach()
.WithDnsPrefix("dns-aks").Create();
Run Code Online (Sandbox Code Playgroud)
在最后一行中,将引发CloudException消息:找不到订阅[]。
即使引发异常,也会创建资源组,但资源组为空。
我已使用带有该服务主体的Azure CLI登录并且已经运行
az account list
Run Code Online (Sandbox Code Playgroud)
响应如下:
[
{
"cloudName": "AzureCloud",
"id": "SUBSCRIPTION ID FROM EXCEPTION ABOVE",
"isDefault": true,
"name": "Pay-As-You-Go",
"state": "Enabled",
"tenantId": "xxx",
"user": {
"name": "xxxx",
"type": "servicePrincipal"
}
}
]
Run Code Online (Sandbox Code Playgroud)
应用程序注册位于Azure Active Directory>应用程序注册>所有应用程序中。我什至授予了所有可能的API的权限。
为了接收该异常消息,我做错了什么吗?
我正在尝试通过API将诊断扩展安装到现有的Azure云服务中.Cloud Service已分配保留的IP.在使用ChangeConfigurationBySlot执行此操作时,我收到" 在部署更新或升级期间无法添加,删除或更改保留的IP ".有谁知道让这个工作的诀窍?这是API中的错过还是我做错了什么?
这是相关的代码段:
var dep = client.Deployments.GetBySlot(resource.ServiceName, DeploymentSlot.Production);
var serviceConfig = XElement.Parse(dep.Configuration, LoadOptions.SetBaseUri);
var config = new DeploymentChangeConfigurationParameters(serviceConfig.ToString())
{
ExtendedProperties = dep.ExtendedProperties,
Mode = DeploymentChangeConfigurationMode.Auto,
TreatWarningsAsError = false,
Configuration = serviceConfig.ToString(),
ExtensionConfiguration = new ExtensionConfiguration
{
AllRoles = new List<ExtensionConfiguration.Extension>(),
NamedRoles = extensionConfig
}
};
var result = client.Deployments.ChangeConfigurationBySlot(resource.ServiceName, DeploymentSlot.Production, config);
Run Code Online (Sandbox Code Playgroud)
以下是云服务配置的相关部分
<ServiceConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" serviceName="IS.Admin.Azure" osFamily="4" osVersion="*" schemaVersion="2014-06.2.4" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
<Role name="IS.Admin">
…
</Role>
<NetworkConfiguration>
<VirtualNetworkSite name="is-prod" />
<AddressAssignments>
<InstanceAddress roleName="IS.Admin">
<Subnets>
<Subnet name="Subnet-1" …Run Code Online (Sandbox Code Playgroud) azure azure-cloud-services azure-management azure-management-api
我们想在 Azure 上创建两个环境。这两个环境将用作 Staging 和 Production,但我们希望能够非常轻松地在它们之间交换,因此 staging 可以像 prod 一样工作,反之亦然。这两个环境将包含 Azure 应用服务(Web 应用、API 应用和逻辑应用)。
创建这两个环境的最佳实践是什么?我们需要有两个订阅,还是两个资源组?感谢所有的建议。
azure azure-virtual-network azure-management azure-resource-manager azure-app-service-plans
我正在尝试连接到我的azure订阅,我有一个代码,允许我获取令牌
var authContext = new AuthenticationContext(string.Format
("https://login.windows.net/{0}", tenantId));
var credential = new ClientCredential(applicationId, password);
AuthenticationResult token = authContext.AcquireTokenAsync
("https://management.core.windows.net/", credential).Result;
if (token == null)
{
Console.WriteLine("Failed to obtain the token");
return;
}
Run Code Online (Sandbox Code Playgroud)
从这一步我不知道如何使用ResourceManagementClient类来连接...
我想完全自动化我的资源创建过程.不幸的是,全新订阅默认情况下没有注册一些资源提供程序.例如SQL.这很容易解决,如下所述:https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-common-deployment-errors#noregisteredproviderfound
但是,这仅概述了使用手动使用门户或使用Powershell的方法.
我正在寻找一个解决方案 Microsoft.Azure.Management.ResourceManager.Fluent
似乎不一致,我无法使用C#,但我似乎无法在任何地方找到功能.
如何使用Azure流畅资源管理为新订阅注册资源提供程序?
c# azure azure-management azure-management-api azure-resource-manager