Chúng tôi có một kịch bản trong đó chúng tôi cần truy xuất thông tin mô tả cho các phiên bản EC2 chạy trên AWS. Để thực hiện điều này, chúng tôi đang sử dụng SDK Java AWS. Trong 90% trường hợp sử dụng của chúng tôi, lớp học com.amazonaws.services.ec2.model.Instance
chính xác là những gì chúng tôi cần. Tuy nhiên, cũng có một trường hợp sử dụng nhỏ, trong đó sẽ có ích khi lấy XML thô mô tả cá thể. Tức là, dữ liệu XML trước khi nó được chuyển đổi thành đối tượng Instance
. Có cách nào để nhận được cả hai đối tượng Instance
đối tượng và chuỗi XML bằng cách sử dụng SDK Java AWS không? Có cách nào để chuyển đổi thủ công từ cái này sang cái khác không? Hoặc, chúng ta có bị buộc thực hiện một cuộc gọi riêng biệt bằng cách sử dụng HttpClient
hoặc một cái gì đó tương tự để lấy dữ liệu XML không?Nhận Mô tả XML của EC2 Instance bằng cách sử dụng SDK Java AWS?
Trả lời
Nếu bạn có xml (ví dụ: sử dụng API phần còn lại AWS trực tiếp), thì bạn có thể sử dụng các lớp com.amazonaws.services.ec2.model.transform.*
để chuyển đổi xml thành đối tượng java. Thật không may, nó chỉ cung cấp các lớp học cần thiết cho bản thân SDK. Vì vậy, bạn, ví dụ, có thể chuyển đổi XML thô thành một Instance bằng cách sử dụng InstanceStaxUnmarshaller, nhưng không thể chuyển đổi Instance thành XML trừ khi bạn viết trình chuyển đổi đó.
Dưới đây là một ví dụ làm thế nào để phân tích cú pháp XML Instance:
XMLEventReader eventReader = XMLInputFactory.newInstance().createXMLEventReader(new StringReader(instanceXml));
StaxUnmarshallerContext suc = new StaxUnmarshallerContext(eventReader, new TreeMap<>());
InstanceStaxUnmarshaller isu = new InstanceStaxUnmarshaller();
Instance i = isu.unmarshall(suc);
System.out.println(i.toString());
Bạn có lẽ có thể cố gắng để ngăn chặn phản ứng AWS liệu, vì vậy bạn có thể giữ XML thô trong khi vẫn sử dụng SDK hầu hết thời gian. Nhưng tôi sẽ không gọi điều đó dễ dàng vì nó sẽ đòi hỏi khá nhiều mã hóa.
Bạn có thể sử dụng JAXB. Nguyên so sánh như sau. JAXB (Kiến trúc Java cho XML Binding) có thể chuyển đổi đối tượng Java thành/từ tệp XML.
StringWriter sw = new StringWriter();
JAXB.marshal(instance, sw);
String xmlString = sw.toString();
Bạn có thể sử dụng API phần còn lại AWS để thay thế Java SDK. Tiền thưởng sẽ có hiệu suất nhỏ vì bạn sẽ không gửi dữ liệu thống kê tới Amazon như SDK.
Có cách nào để sử dụng Java AWS SDK và marshal XML từ REST API để các đối tượng Java? Có những trường hợp mà các đối tượng Java sẽ thuận tiện hơn nhiều để làm việc với, nhưng một vài trường hợp sử dụng mà XML sẽ tốt hơn. – Shadowman
Thực hiện một EC2Client bằng cách thêm xử lý yêu cầu và ghi đè lên các phương pháp beforeUnmarshalling() như dưới đây
AmazonEC2ClientBuilder.standard().withRegion("us-east-1")
.withRequestHandlers(
new RequestHandler2() {
@Override
public HttpResponse beforeUnmarshalling(Request<?> request, HttpResponse httpResponse) {
// httpResponse.getContent() is the raw xml response from AWS
// you either save it to a file or to a XML document
return new HTTPResponse(...);
// if you consumed httpResponse.getContent(), you need to provide new HTTPResponse
}
}
).build():
- 1. aws CloudFormation AWS :: EC2 :: Instance BlockDeviceMappings and Volumes
- 2. cách bắt đầu và dừng các phiên bản ec2 bằng cách sử dụng php aws sdk
- 3. Amazon AWS EC2 Instance - Không thể kết nối với SSH
- 4. Hiển thị tên EC2 Instance sử dụng Boto 3
- 5. Sử dụng aws-sdk với angular2
- 6. Nhận DNS công khai của Amazon EC2 Instance từ JAVA API
- 7. lấy các cá thể ec2 bằng một thẻ nhất định bằng aws sdk
- 8. Pagination với DynamoDBMapper Java AWS SDK
- 9. Nhận cá thể-id của cá thể EC2 qua Java
- 10. S3 Proxy tới EC2 Instance
- 11. sử dụng aws-sdk để tải hình ảnh lên s3 bằng cách sử dụng nodejs
- 12. Tạo hình ảnh thể hiện AWS EC2 bằng cách sử dụng saltstack?
- 13. JetS3t và AWS Java SDK
- 14. Rsync đến Amazon Ec2 Instance
- 15. Không thể đăng nhập vào EC2 (AWS) bằng cách sử dụng Putty
- 16. Low InnoDB Viết mỗi giây - AWS EC2 tới MySQL RDS bằng cách sử dụng Python
- 17. Làm cách nào để hạn chế EC2 mô tả các quyền đối với hình ảnh?
- 18. Truy cập Heroku Postgres Instance từ EC2
- 19. Đọc thông tin của Liên hệ bằng cách sử dụng Trình mô tả tệp trong android
- 20. Java Nhận Tên/Mô tả cho OID trong MIB
- 21. Cách chuyển tệp giữa AWS s3 và AWS ec2
- 22. Không thể duyệt đến EC2 Instance của tôi
- 23. Nhận trạng thái của EC2 phiên bản Java API
- 24. AWS EC2 FTP/HTML
- 25. Bật SSL trên apache instance trên EC2
- 26. Không thể kết nối với sổ ghi chép Jupyter trên bản AWS EC2 Instance
- 27. Không thể tải lên hình ảnh trong các nút bằng cách sử dụng aws-sdk
- 28. Dữ liệu POST xml bằng cách sử dụng java
- 29. Tải tệp bên ngoài lên thùng AWS S3 bằng cách sử dụng PHP SDK
- 30. Amazon Elastic Beanstalk vs EC2 instance with docker containers
Đó chính xác là những gì tôi đang tìm kiếm! Cảm ơn!! – Shadowman