Microsoft Azure Java SDK: копия снимка - PullRequest
0 голосов
/ 05 октября 2018

Я ищу способ копирования снимков управляемого диска Azure между регионами с помощью Java SDK.Любые предложения или указатели будут полезны

Заранее спасибо Прасад

1 Ответ

0 голосов
/ 07 октября 2018

Вы можете использовать Java SDK для создания снимков управляемых дисков Azure с различными группами ресурсов и регионами:

Disk osDisk = azure.disks().getById(linuxVM.osDiskId());
Snapshot osSnapshot = azure.snapshots().define(managedOSSnapshotName)
  .withRegion(Region.US_EAST)
  .withExistingResourceGroup(rgName)
  .withLinuxFromDisk(osDisk)
  .create();

См. Java: Управление управляемыми дисками Azure для получения более подробной информации.

Обновление-1

Если вы хотите скопировать снимок из других регионов, просто измените withLinuxFromDisk() на withLinuxFromSnapshot().

Вы можете получитьдополнительные интерфейсы о снимке Azure в Java SDK из Java SDK для Azure .

Update-2

Для вашей проблемы, которую вы хотите создатьснимок из снимка.С примером кода ниже, и он работает хорошо.

import com.microsoft.azure.management.Azure;
import com.microsoft.azure.credentials.ApplicationTokenCredentials;
import com.microsoft.azure.AzureEnvironment;
import com.microsoft.azure.management.compute.Snapshot;
import com.microsoft.azure.management.resources.fluentcore.arm.Region;

import java.io.IOException;


public class test {

    public static void main(String[] args) throws IOException {

        ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(
                "xxxxxxxxx",
                "xxxxxxxxx",
                "xxxxxxxxx",
                AzureEnvironment.AZURE);

        Azure.Authenticated azureAuth = Azure.authenticate(credentials);
        Azure azure = azureAuth.withDefaultSubscription();

        Snapshot osSnapshot = azure.snapshots().define("managedOSSnapshotName")
                .withRegion(Region.US_EAST)
                .withExistingResourceGroup("charlesJava")
                .withDataFromSnapshot("/subscriptions/xxxxxxx/resourceGroups/groupName/providers/Microsoft.Compute/snapshots/snapshottest")
                .create();
    }
}

Параметр, который .withDataFromSnapshot() является идентификатором ресурса, другими словами, это идентификатор ресурса снимка.Но прежде всего вы должны получить аутентификацию группы ресурсов , которую вы хотите использовать, по крайней мере, с разрешения Contributor.Для этого шага вы можете создать субъект-службу и добавить роль для своей группы ресурсов, в которой находится снимок.

...