为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 GoLang API 在 Azure 中创建虚拟网络?

如何使用 GoLang API 在 Azure 中创建虚拟网络?

Go
慕妹3146593 2022-01-04 21:25:30
目前我正在尝试使用 GoLang 代码创建虚拟网络:client := network.NewVirtualNetworksClient(subscriptionID)var parameters network.VirtualNetworkc := make(<-chan struct{})c1, err := client.CreateOrUpdate(resourceGroupName, virtualNetworkName, parameters, c)utils.Info.Println(err.Error())utils.Info.Println(c1)但是代码不能正常工作。它抛出以下异常:发送请求失败:StatusCode=401 -- 原始错误:长时间运行的操作以“失败”状态终止:代码=“AuthenticationFailed”消息=“身份验证失败。缺少“授权”标头。”您的帮助将不胜感激。
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

有一些关于使用 Azure 身份验证的一般文档,您可以在此处找到:azure-sdk-for-node/Documentation/Authentication


虽然还没有专门针对虚拟网络的示例,但您可以在此处找到Azure SDK for Go 示例。


特别是对于 Go,您可以更新客户端以使用身份验证令牌,因此您的代码将如下所示:


c := make(chan struct{})

authConfig, err0 := azure.PublicCloud.OAuthConfigForTenant(<yourTenantID>)

token, err1 := azure.NewServicePrincipalToken(

                  *authConfig,

                  <yourClientID>,

                  <yourClientSecret>,

                  azure.PublicCloud.ResourceManagerEndpoint) 


client := network.NewVirtualNetworkClient(subscriptionID)

client.Authorizer = token


var parameters network.VirtualNetwork

c1, err2 := client.CreateOrUpdate(resourceGroupName, virtualNetworkName, parameters, c)


查看完整回答
反对 回复 2022-01-04
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

我假设您使用GoLang SDK for Azure?错误的原因是当您发出请求时,它没有 Authorization 标头。授权标头是您可以从 Azure Active Directory 获取的 JSON Web 令牌

1)查看Fiddler中的请求,看看你的请求是否符合规则

2) 阅读有关如何获取令牌的教程(12)。


查看完整回答
反对 回复 2022-01-04
  • 2 回答
  • 0 关注
  • 223 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号