gpt4 book ai didi

azure - 微软Azure Java SDK : snapshot copy

转载 作者:行者123 更新时间:2023-12-03 02:56:11 26 4
gpt4 key购买 nike

我正在寻找一种使用 Java SDK 在区域之间复制 Azure 托管磁盘快照的方法。任何建议或指示都会有帮助

提前致谢普拉萨德

最佳答案

您可以使用 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: Manage Azure Managed Disks获取更多详细信息。

更新1

如果您想从其他区域复制快照,只需将withLinuxFromDisk()更改为withLinuxFromSnapshot()即可。

更多关于Java SDK中Azure快照的接口(interface)可以从Java SDK for Azure获取.

更新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()的参数为资源Id,即快照资源Id。但首先,您应该获得您想要使用的资源组的身份验证,至少具有贡献者权限。对于此步骤,您可以创建一个服务主体并为快照所在的资源组添加角色。

关于azure - 微软Azure Java SDK : snapshot copy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52663785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com