napche/azure-vm-client

Azure 虚拟机 REST API PHP 库

0.0.4 2019-03-29 07:28 UTC

This package is auto-updated.

Last update: 2024-09-29 05:01:43 UTC


README

基于 https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines

创建 Azure Active Directory (AAD) 应用程序

AAD 鼓励使用应用程序/服务主体进行应用程序的认证。应用程序/服务主体组合提供了一个服务身份来管理您的 Azure 订阅。有关 AAD 应用程序和服务主体的更多信息,请点击此处

  • 安装 Azure CLI
  • 运行 az login 登录 Azure
  • 运行 az ad sp create-for-rbac 创建具有对当前 Azure 订阅的 Azure 资源管理器访问权限的 Azure Active Directory 应用程序
    • 如果您想为不同的 Azure 订阅运行此操作,请运行 az account set --subscription '你的订阅名称'
  • 运行 az account list --query "[?isDefault].id" -o tsv 获取您的 Azure 订阅 ID。

az ad sp create-for-rbac 的输出应如下所示

{
  "appId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "displayName": "some-display-name",
  "name": "http://azure-cli-2017-04-03-15-30-52",
  "password": "XXXXXXXXXXXXXXXXXXXX",
  "tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}

tenantappIdpassword 用于客户端构造函数。

示例用法

        use Azure\Entity\VirtualMachine;
        use Azure\AzureVMClient;
        use Azure\Profile\StorageProfile;
        
        $resourceGroupName = 'new-resource-group';
        $client->createResourceGroup($resourceGroupName, $region, $tag);
        
        // Create new machine
        $name = 'new_vm';
        $region = 'westeurope';
        $machine = new VirtualMachine( $name, $region );
        $machine->setResourceGroup( $resourceGroupName );
        
        // Add or change Profiles..
        $storage = new StorageProfile();
        $machine->setStorageProfile( $storage );
        
        // Create client with instant authentication.
        $client = new AzureVMClient(
            $subscriptionId,
            $tenant,
            $applicationId,
            $password
        );
        
        /*
        // Create client and authenticate LATER.
        $client = new AzureVMClient(
            $subscriptionId
        );
        
        // Do some other stuff.
        
        $client->authenticate($tenant, $applicationId, $password);
        */
        
        // Create a VM.
        $client->createVM( $machine );
        
        // Delete afterwards.
        $client->deleteResourceGroup( $resourceGroupName );