将云服务与特定虚拟网络关联时,该实例会自动从所选子网范围获取IP。
有没有办法从实例本身动态地了解这个IP?如果是这样,一旦创建实例,这个信息是否可用,例如在执行启动任务时?
如果没有,是否有办法在实例创建后的任何时间从实例外部以编程方式获取此IP?
我更喜欢PowerShell解决方案,但任何事情都可以。
感谢。
答案 0 :(得分:1)
如果您来自实例,则在引导时分配IP地址。因此,当执行启动任务(PaaS / Cloud Service)时,您可以通过枚举网卡来确定IP地址。或者获得IP端点。
示例powershell(从未经过测试)看起来像这样:
[Reflection.Assembly]::LoadWithPartialName("Microsoft.WindowsAzure.ServiceRuntime")
$ipEndpoint = [Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment]::CurrentRoleInstance.InstanceEndpoints["Endpoint1"].IPEndpoint
现在您拥有$ipEndpoint
变量,该变量是.NET类型IPEndpoint
并保存VM的本地IP地址。