Java 使用AWS SDK以编程方式创建/恢复EBS快照的示例
我在谷歌上找不到太多关于示例代码的信息,所有内容都显示了一个使用cli工具的示例 作为备份,如果我错了,请纠正我,这是我的(未测试) 据我所知,这将进入一个我无法控制的S3存储库。我假设我可以做一些类型的“列表快照”,并选择一个进行恢复Java 使用AWS SDK以编程方式创建/恢复EBS快照的示例,java,amazon-web-services,Java,Amazon Web Services,我在谷歌上找不到太多关于示例代码的信息,所有内容都显示了一个使用cli工具的示例 作为备份,如果我错了,请纠正我,这是我的(未测试) 据我所知,这将进入一个我无法控制的S3存储库。我假设我可以做一些类型的“列表快照”,并选择一个进行恢复 我希望能够使用快照恢复EBS,我发现了一些有关使用createVolume或类似工具从快照创建新EBS的信息。我想用特定快照还原当前EBS。有关创建快照的信息,请参阅以下内容: //来自本地: //I guess it's resolve
我希望能够使用快照恢复EBS,我发现了一些有关使用createVolume或类似工具从快照创建新EBS的信息。我想用特定快照还原当前EBS。有关创建快照的信息,请参阅以下内容: //来自本地:
//I guess it's resolved from your end. But to help other. Below is the code to Create a snapshot from C# AWS SDK
//Download AWSSDK.Core/AWSSDK.EC2/AWSSDK.S3 from nuget Package Manager and use the below code for reference
IAmazonEC2 client = new AmazonEC2Client(awsAccessKeyId, SecretAccessKey, RegionEndpoint.APSouth1);
//Change Region end point based on your location
CreateSnapshotsRequest createSnapshotsRequest = new CreateSnapshotsRequest();
createSnapshotsRequest.InstanceSpecification = new InstanceSpecification
{
InstanceId = "instance id",
ExcludeBootVolume = false
};
//tags can be added using below:
//createSnapshotsRequest.TagSpecifications = new List<TagSpecification>
//{
// new TagSpecification
// {
// Tags= new List<Tag>{
// new Tag
// {
// Key = tagKey,
// Value = tagValue
// }
// },
// ResourceType="snapshot"
// }
//};
var response = client.CreateSnapshots(createSnapshotsRequest);
Console.WriteLine(response.HttpStatusCode);
Console.WriteLine(response.Snapshots);
//If you are running the app on EC2 then use below:
//I guess it's resolved from your end. But to help other. Below is the code to Create a snapshot from C# AWS SDK
//Download AWSSDK.Core/AWSSDK.EC2/AWSSDK.S3 from nuget Package Manager and use the below code for reference
KeyValuePair<string, IAMSecurityCredentialMetadata> iamSecurityCredentialMetadata = EC2InstanceMetadata.IAMSecurityCredentials.FirstOrDefault();
IAmazonEC2 client = new AmazonEC2Client(iamSecurityCredentialMetadata.Value.AccessKeyId, iamSecurityCredentialMetadata.Value.SecretAccessKey, iamSecurityCredentialMetadata.Value.Token, EC2InstanceMetadata.Region);
CreateSnapshotsRequest createSnapshotsRequest = new CreateSnapshotsRequest();
createSnapshotsRequest.InstanceSpecification = new InstanceSpecification
{
InstanceId = EC2InstanceMetadata.InstanceId,
ExcludeBootVolume = false
};
//tags can be added using below:
//createSnapshotsRequest.TagSpecifications = new List<TagSpecification>
//{
// new TagSpecification
// {
// Tags= new List<Tag>{
// new Tag
// {
// Key = tagKey,
// Value = tagValue
// }
// },
// ResourceType="snapshot"
// }
//};
var response = client.CreateSnapshots(createSnapshotsRequest);
Console.WriteLine(response.HttpStatusCode);
Console.WriteLine(response.Snapshots);
//我想这已经从你这边解决了。而是帮助别人。下面是从C#AWS SDK创建快照的代码
//从nuget Package Manager下载AWSSDK.Core/AWSSDK.EC2/AWSSDK.S3,并使用以下代码作为参考
IAmazonEC2客户端=新的Amazonec2客户端(awsAccessKeyId,SecretAccessKey,RegionEndpoint.APSouth1);
//根据您的位置更改区域终点
CreateSnapshotsRequest CreateSnapshotsRequest=新建CreateSnapshotsRequest();
createSnapshotsRequest.InstanceSpecification=新InstanceSpecification
{
InstanceId=“实例id”,
ExcludeBootVolume=false
};
//可以使用以下方法添加标记:
//createSnapshotsRequest.TagSpecifications=新列表
//{
//新标签规范
// {
//标签=新列表{
//新标签
// {
//Key=tagKey,
//值=标记值
// }
// },
//ResourceType=“快照”
// }
//};
var response=client.CreateSnapshots(createSnapshotsRequest);
Console.WriteLine(response.HttpStatusCode);
控制台.WriteLine(响应.快照);
//如果您在EC2上运行应用程序,请使用以下命令:
//我想这已经从你这边解决了。而是帮助别人。下面是从C#AWS SDK创建快照的代码
//从nuget Package Manager下载AWSSDK.Core/AWSSDK.EC2/AWSSDK.S3,并使用以下代码作为参考
KeyValuePair iamSecurityCredentialMetadata=EC2InstanceMetadata.IAMSecurityCredentials.FirstOrDefault();
IAmazonEC2客户端=新的AmazonEC2Client(iamSecurityCredentialMetadata.Value.AccessKeyId、iamSecurityCredentialMetadata.Value.SecretAccessKey、iamSecurityCredentialMetadata.Value.Token、EC2InstanceMetadata.Region);
CreateSnapshotsRequest CreateSnapshotsRequest=新建CreateSnapshotsRequest();
createSnapshotsRequest.InstanceSpecification=新InstanceSpecification
{
InstanceId=EC2InstanceMetadata.InstanceId,
ExcludeBootVolume=false
};
//可以使用以下方法添加标记:
//createSnapshotsRequest.TagSpecifications=新列表
//{
//新标签规范
// {
//标签=新列表{
//新标签
// {
//Key=tagKey,
//值=标记值
// }
// },
//ResourceType=“快照”
// }
//};
var response=client.CreateSnapshots(createSnapshotsRequest);
Console.WriteLine(response.HttpStatusCode);
控制台.WriteLine(响应.快照);
您可以从快照创建新卷,但无法将快照恢复到现有卷中。您需要恢复到新卷、交换卷、删除旧卷。我知道,您是否有可能提供用于记录该过程的代码:)最好先停止实例,避免许多可能的操作系统问题,您想实现什么?我想自动化快照过程,还需要能够加载快照(使用sdk)你做到了吗?我尝试用从快照创建的新卷替换我的EC2卷,但它不允许我装载它。给了我以下错误,装载:/dev/xvdj受写保护,装载只读装载:错误的fs类型,错误的选项,/dev/xvdj上的错误超级块
//I guess it's resolved from your end. But to help other. Below is the code to Create a snapshot from C# AWS SDK
//Download AWSSDK.Core/AWSSDK.EC2/AWSSDK.S3 from nuget Package Manager and use the below code for reference
IAmazonEC2 client = new AmazonEC2Client(awsAccessKeyId, SecretAccessKey, RegionEndpoint.APSouth1);
//Change Region end point based on your location
CreateSnapshotsRequest createSnapshotsRequest = new CreateSnapshotsRequest();
createSnapshotsRequest.InstanceSpecification = new InstanceSpecification
{
InstanceId = "instance id",
ExcludeBootVolume = false
};
//tags can be added using below:
//createSnapshotsRequest.TagSpecifications = new List<TagSpecification>
//{
// new TagSpecification
// {
// Tags= new List<Tag>{
// new Tag
// {
// Key = tagKey,
// Value = tagValue
// }
// },
// ResourceType="snapshot"
// }
//};
var response = client.CreateSnapshots(createSnapshotsRequest);
Console.WriteLine(response.HttpStatusCode);
Console.WriteLine(response.Snapshots);
//If you are running the app on EC2 then use below:
//I guess it's resolved from your end. But to help other. Below is the code to Create a snapshot from C# AWS SDK
//Download AWSSDK.Core/AWSSDK.EC2/AWSSDK.S3 from nuget Package Manager and use the below code for reference
KeyValuePair<string, IAMSecurityCredentialMetadata> iamSecurityCredentialMetadata = EC2InstanceMetadata.IAMSecurityCredentials.FirstOrDefault();
IAmazonEC2 client = new AmazonEC2Client(iamSecurityCredentialMetadata.Value.AccessKeyId, iamSecurityCredentialMetadata.Value.SecretAccessKey, iamSecurityCredentialMetadata.Value.Token, EC2InstanceMetadata.Region);
CreateSnapshotsRequest createSnapshotsRequest = new CreateSnapshotsRequest();
createSnapshotsRequest.InstanceSpecification = new InstanceSpecification
{
InstanceId = EC2InstanceMetadata.InstanceId,
ExcludeBootVolume = false
};
//tags can be added using below:
//createSnapshotsRequest.TagSpecifications = new List<TagSpecification>
//{
// new TagSpecification
// {
// Tags= new List<Tag>{
// new Tag
// {
// Key = tagKey,
// Value = tagValue
// }
// },
// ResourceType="snapshot"
// }
//};
var response = client.CreateSnapshots(createSnapshotsRequest);
Console.WriteLine(response.HttpStatusCode);
Console.WriteLine(response.Snapshots);