一、概念

1、订阅

可以使用订阅为组织内的团队提供访问开发环境(即测试、生产、开发、临时部署等)和项目的权限。针对每个应用程序环境创建不同的订阅,并为每个订阅分配不同的服务管理员帐户,这是保护每个环境安全的一个好方法。订阅可以与任意数目的服务相关联,而帐户所有者则能在其帐户中创建订阅,并能为每个订阅分配服务管理员帐户。

2、资源组

一个容器,用于保存 Azure 解决方案的相关资源。 资源组包括你想要作为一个组进行管理的那些资源。 根据对组织有利的原则,决定如何将资源分配到资源组。

3、Compute(计算)

虚拟机,仅包含CPU与内存。

4、网络接口

网络接口 (NIC) 是 VM 与虚拟网络 (VNet) 之间互相连接的桥梁。 VM 必须至少有一个 NIC,但可以根据所创建 VM 的大小包含多个 NIC。 了解 Windows 或 Linux 的每个 VM 大小支持的 NIC 数。

5、IP 地址

可将以下类型的 IP 地址分配到 Azure 中的 NIC:

公共 IP 地址:用来与 Internet 以及未连接到 VNet 的其他 Azure 资源进行入站和出站通信(不提供网络地址转换 (NAT))。 向 NIC 分配公共 IP 地址是可选操作。 公共 IP 地址会产生少许费用,并且每个订阅可使用的最大公共 IP 地址数目有限制。
专用 IP 地址:用于在 VNet、本地网络和 Internet 中通信(提供 NAT)。 必须至少将一个专用 IP 地址分配给 VM。 若要详细了解 Azure 中的 NAT,请阅读了解 Azure 中的出站连接。
可将公共 IP 地址分配到 VM 或面向 Internet 的负载均衡器。 可将专用 IP 地址分配到 VM 和内部负载均衡器。 可以使用网络接口将 IP 地址分配给 VM。

6、虚拟网络和子网

子网是 VNet 中的一系列 IP 地址。 可将一个 VNet 划分为多个子网,以便于组织和提高安全性。 VM 中的每个 NIC 连接到一个 VNet 中的一个子网。 连接到 VNet 中的子网(不管是相同的子网还是不同的子网)的 NIC 可以互相通信,不需任何额外的配置。

设置 VNet 时,需指定拓扑,包括可用的地址空间和子网。 如果 VNet 要连接到其他 VNet 或本地网络,则必须选择不重叠的地址范围。 这些 IP 地址是专用的,无法从 Internet 访问,这种限制在过去只适用于不可路由的 IP 地址,例如 10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16。 现在,Azure 将所有地址范围都视为只能在 VNet 内部、互连 VNet 内部以及从本地位置访问的专用 VNet IP 地址空间的一部分。

二、虚拟机创建方式

门户、PowerShell、Azure CLI、REST API 或客户端 SDK

三、创建虚拟流程

1、注册账号

2、登录AZURE

3、创建订阅

4、创建资源组

5、创建虚拟机

附:登录Azure CLI

附:门户

四、Java SDK

有关使用用于 Java 的 Azure 库进行开发的模式和最佳做法

1、Maven依赖

<dependency><groupId>com.microsoft.azure</groupId><artifactId>azure</artifactId><version>1.3.0</version>
</dependency>

2、AZURE会话

  • subscription:使用 Azure CLI 2.0 中源自 az account show 的 id 值。
  • client:使用从服务主体(创建用来运行应用程序)获取的输出中的 appId 值。 如果没有用于应用的服务主体,请使用 Azure CLI 2.0 创建一个。
  • key:使用服务主体 create CLI 输出中的 password 值
  • tenant:使用服务主体 create CLI 输出中的 tenant 值

public static Azure getAzure(){String clientId = "your appId";String tenant = "your tenant";String password = "your password";String subscription = "your subscription";ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(clientId,
tenant, password, AzureEnvironment.AZURE);return Azure.configure().withLogLevel(LogLevel.NONE).authenticate(credentials).withSubscription(subscription);}

3、创建虚拟机

 VirtualMachine linuxVM = azure.virtualMachines().define("testLinuxVM").withRegion(Region.CHINA_NORTH).withNewResourceGroup("sampleVmResourceGroup").withNewPrimaryNetwork("10.0.0.0/24").withPrimaryPrivateIpAddressDynamic().withoutPrimaryPublicIpAddress().withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS).withRootUsername(userName).withSsh(sshKey).withUnmanagedDisks().withSize(VirtualMachineSizeTypes.Standard_A1).create();   

4、创建虚拟机(挂载系统磁盘,静态公网IP,数据盘)

 public static void main(String[] args){String usename = "zhangsan";String password = "AZa1234567890@";String osDiskName = "first-os-disk";String dataDiskName = "first-data-disk";String region = "westus";String resourceGroup = "first-resource-group";String vhdImage = "https://XXimage.blob.core.windows.net/images/CentOS_7.3_64.vhd";String vmName = "first-vm" ;String ipName = "first-ip";String networkName = "first-network";String subNet = "first-subnet";String vmType = "Standard_A0";int osDiskSize = 30;int dataDiskSize =500;//普通盘//DiskSkuTypes osSkuTypes = DiskSkuTypes.fromStorageAccountType(StorageAccountTypes.STANDARD_LRS);//StorageAccountTypes osDiskType = StorageAccountTypes.STANDARD_LRS;Azure azure = getAzure();//根据VHD创建系统盘/*Disk osDisk = azure.disks().define(osDiskName).withRegion(region).withExistingResourceGroup(resourceGroup).withLinuxFromVhd(vhdImage).withSizeInGB(osDiskSize).withSku(osSkuTypes).create();*///静态公网IP延迟创建Creatable<PublicIPAddress> publicIPAddressCreatable = azure.publicIPAddresses().define(ipName).withRegion(region).withExistingResourceGroup(resourceGroup).withStaticIP();//数据盘DiskSkuTypes diskSkuTypes = DiskSkuTypes.fromStorageAccountType(StorageAccountTypes.STANDARD_LRS);Creatable<Disk> dataDiskCreatable = azure.disks().define(dataDiskName).withRegion(region).withExistingResourceGroup(resourceGroup).withData().withSizeInGB(dataDiskSize).withSku(diskSkuTypes);//存在网络//Network network = azure.networks().getByResourceGroup(resourceGroup,networkName);VirtualMachine vm  = azure.virtualMachines().define(vmName).withRegion(region)//.withNewResourceGroup(resourceGroup).withExistingResourceGroup(resourceGroup).withNewPrimaryNetwork("10.0.6.0/24")//.withExistingPrimaryNetwork(network)//.withSubnet(subNet).withPrimaryPrivateIPAddressDynamic().withNewPrimaryPublicIPAddress(publicIPAddressCreatable)//.withoutPrimaryPublicIPAddress().withPopularLinuxImage(KnownLinuxVirtualMachineImage.CENTOS_7_2)//.withSpecializedOSDisk(osDisk, OperatingSystemTypes.LINUX).withNewDataDisk(diskCreatable)//.withOSDiskStorageAccountType(osDiskType)//.withOSDiskName(osDiskName)//.withOSDiskSizeInGB(osDiskSize).withRootUsername(usename).withRootPassword(password).withNewDataDisk(dataDiskCreatable).withSize(vmType).create();}

5、删除虚拟机(虚拟删除不会删除关联的资源)

        String resourceGroup = "first-resource-group";String vmName = "first-vm" ;String vmId = "xxxx";VirtualMachine vm = azure.virtualMachines()//.getByResourceGroup(resourceGroup,vmName).getById(vmId);vm.deallocate();//停机,释放资源azure.virtualMachines().deleteById(vm.vmId());azure.disks().deleteById(vm.osDiskId());for(VirtualMachineDataDisk disk: vm.dataDisks().values()){azure.disks().deleteById(disk.id());}azure.networkInterfaces().deleteById(vm.getPrimaryNetworkInterface().id());azure.publicIPAddresses().deleteById(vm.getPrimaryPublicIPAddressId());

6、查询虚拟机

虚拟机信息

//单一查询
VirtualMachine vm = azure.virtualMachines().getById(id);
//批量查询
PagedList<VirtualMachine> vms = azure.virtualMachines().list();
for (VirtualMachine vm : vms) {System.out.println("Found virtual machine with ID " + vm.id());
}

查询状态

VirtualMachine vm = azure.virtualMachines().getById(id);
PowerState powerState = vm.powerState();
boolean isRun = powerState == PowerState.RUNNING;
boolean isStoped = powerState == PowerState.STOPPED;
boolean isStoping = powerState == PowerState.STOPPING;
boolean isStarting = powerState == PowerState.STARTING;

查询磁盘

    public static void get (){String id = "xxx";Azure azure = getAzure();VirtualMachine vm  = azure.virtualMachines().getById(id);//系统盘Disk osDisk = azure.disks().getById(vm.osDiskId());//数据盘List<VirtualMachineDataDisk> dataDisk = vm.dataDisks().values().stream().collect(Collectors.toList());}

7、虚拟机操作

VirtualMachine vm = azure.virtualMachines().getById(id);
vm.start();//启动
vm.powerOff();//停止
vm.restart();//重启

8、更新虚拟信息

VirtualMachine vm = azure.virtualMachines().getById(id);
NetworkInterface networkInterface = vm.getPrimaryNetworkInterface();
//设置私有ip为静态
networkInterface .update().withPrimaryPrivateIPAddressStatic(net.primaryPrivateIP()).apply();
//设置系统盘大小以及设置机型vm.update().withOSDiskSizeInGB(50).withSize("Standard_D2_v2").apply();

五、REST API

Azure REST API参考

OAuth 2.0 代码授权

虚拟机API

常用公有云接入——AZURE相关推荐

  1. 常用公有云接入——华为

    一.介绍 1.什么是弹性云服务器? 弹性云服务器是由CPU.内存.镜像.云硬盘组成的一种可随时获取.弹性可扩展的计算服务器,同时它结合虚拟私有云.虚拟防火墙.数据多副本保存等能力,为您打造一个高效.可 ...

  2. 常用公有云接入——腾讯

    一.ES术语表 本文档涉及的一些常用术语如下: 术语 全称 中文 说明 Instance Instance 实例 指代一台云服务器. Region Region 地域 表示资源所在的地域,每个地域包含 ...

  3. 常用公有云接入——亚马逊

    一.什么是 Amazon EC2? Amazon Elastic Compute Cloud (Amazon EC2) 在 Amazon Web Services (AWS) 云中提供可扩展的计算容量 ...

  4. 常用公有云接入——阿里

    一.术语 中文 英文 说明 地域 Region 阿里云建设的数据中心.资源创建成功后无法更换地域. 可用区 Zone 同一地域内,电力和网络互相独立的物理数据中心.一个地域下可以有多个可用区.同一地域 ...

  5. 常用公有云接入——谷歌

    一.概念 1.项目 一个账号有唯一的项目,所有虚拟机都在project里面建. 2.计算引擎 虚拟机资源. 二.创建方式 1.页面控制台 2.gcloud命令行 3.REST API 4.SDK 三. ...

  6. 微软公有云Azure落地中国,全面大规模商用

    微软公有云Microsoft Azure已经落地中国,官方网址:http://www.windowsazure.cn/. Microsoft Azure in China简介: 1.2个分别位于上海和 ...

  7. 公有云的未来:要么统治世界,要么灭亡

    长久以来,私有云厂商都被一朵乌云笼罩着:私有云是否是一个伪命题,这个世界是否终将被公有云统治?无论如何振振有词,当2006年3月14日亚马逊向全世界宣布其公有云服务AWS时,IT的历史车轮就碾入了公有 ...

  8. 阿里热修复之Sophix——公有云发布版集成步骤

    Sophix 公有云接入 去年的时候写的一篇阿里云热修复的文章,那时它还是在公测阶段,一直没能投产,而今,公司项目需要集成已经投产的阿里Sophix功能,所以再次集成了一遍,记录下了步骤和遇到的一些问 ...

  9. Azure手把手系列 1:微软中国公有云概述

    很久没有写文章了,主要也是疏于自己的懒惰,对于IT技术的放弃,但我相信浪子回头金不换,所以我又回来了. 相信现在还在泡博客的还在做IT的,或多或少都听过云.私有云及公有云的概念,那么今天给大家分享的是 ...

最新文章

  1. cad指示箭头快捷键命令_CAD快捷键命令大全
  2. 使用intellij的svn时提示出错: Can't use Subversion command
  3. Flutter实现帧动画
  4. python设计模式8-组合模式
  5. java 中间件_从头到尾说一遍Java(中间件)垃圾回收
  6. nginx 开启gzip压缩--字符串压缩比率很牛叉
  7. php 获取小数精度,php小数精度问题
  8. Mac OS X的入门文档
  9. 【锂电】锂电工艺大全
  10. 简易四六级成绩管理系统
  11. 愿天下有情人都是失散多年的兄妹(bfs)
  12. Persistent Bugger 实践练习
  13. vmbox挂载共享目录
  14. app推广运营大神干货9问答::iOS渠道不知道去哪里挖掘等
  15. Linux强制修改超级用户root密码
  16. 美团笔试题 淘汰分数
  17. python爬取京东商品信息代码_爬取京东商品信息
  18. 无人驾驶系统技术岗位分析(感知算法)
  19. 基于PMOS的过压保护(OVP)电路仿真
  20. 精通Node.js: 你应该阅读的书籍

热门文章

  1. python豆瓣历史评分_Python实战-爬取豆瓣top250评分高于指定值的电影信息
  2. PAT乙级题目——1002写出这个数
  3. 利用数组创建二叉树并赋值
  4. 每天一小时python官方文档学习(五)————数据结构之元组、集合与字典
  5. x12arima季节调整方法_《时间序列X-12-ARIMA季节调整:原理与方法》
  6. [Spring5]IOC容器_Bean管理注解方式_组件扫描配置细节
  7. [剑指offer]面试题15:链表中倒数第k个结点
  8. 2019年第十届蓝桥杯国赛B组试题B-质数拆分-01背包问题+素数筛选
  9. 蓝桥杯2017初赛-分巧克力-二分
  10. 双端队列 BFS + Chamber of Secrets CodeForces - 173B