Mendapatkan data tentang Amazon Machine Images dengan menggunakan SDK AWS - Amazon Elastic Compute Cloud

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mendapatkan data tentang Amazon Machine Images dengan menggunakan SDK AWS

Contoh kode berikut ini menunjukkan cara mendapatkan data Amazon Machine Image (AMI).

Contoh-contoh tindakan adalah kutipan kode dari program yang lebih besar dan harus dijalankan di dalam konteks. Anda dapat melihat tindakan ini dalam konteks pada contoh kode berikut:

CLI
AWS CLI

Contoh 1: Untuk menjelaskan AMI

Contoh describe-images berikut menjelaskan AMI tertentu di Wilayah tertentu.

aws ec2 describe-images \ --region us-east-1 \ --image-ids ami-1234567890EXAMPLE

Output:

{ "Images": [ { "VirtualizationType": "hvm", "Description": "Provided by Red Hat, Inc.", "PlatformDetails": "Red Hat Enterprise Linux", "EnaSupport": true, "Hypervisor": "xen", "State": "available", "SriovNetSupport": "simple", "ImageId": "ami-1234567890EXAMPLE", "UsageOperation": "RunInstances:0010", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "SnapshotId": "snap-111222333444aaabb", "DeleteOnTermination": true, "VolumeType": "gp2", "VolumeSize": 10, "Encrypted": false } } ], "Architecture": "x86_64", "ImageLocation": "123456789012/RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2", "RootDeviceType": "ebs", "OwnerId": "123456789012", "RootDeviceName": "/dev/sda1", "CreationDate": "2019-05-10T13:17:12.000Z", "Public": true, "ImageType": "machine", "Name": "RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2" } ] }

Untuk informasi selengkapnya, lihat Amazon Machine Image (AMI) di Panduan Pengguna Amazon EC2.

Contoh 2: Untuk menjelaskan AMI berdasarkan filter

Contoh describe-images berikut menjelaskan AMI Windows yang disediakan oleh Amazon yang didukung oleh Amazon EBS.

aws ec2 describe-images \ --owners amazon \ --filters "Name=platform,Values=windows" "Name=root-device-type,Values=ebs"

Untuk contoh output describe-images, lihat Contoh 1.

Untuk contoh tambahan menggunakan filter, lihat Mencantumkan dan memfilter sumber daya Anda di Panduan Pengguna Amazon EC2.

Contoh 3: Untuk menjelaskan AMI berdasarkan tanda

Contoh describe-images berikut menjelaskan semua AMI yang memiliki tanda Type=Custom. Contoh tersebut menggunakan parameter --query untuk hanya menampilkan ID AMI.

aws ec2 describe-images \ --filters "Name=tag:Type,Values=Custom" \ --query 'Images[*].[ImageId]' \ --output text

Output:

ami-1234567890EXAMPLE ami-0abcdef1234567890

Untuk contoh tambahan menggunakan filter tanda, lihat Bekerja dengan tanda di Panduan Pengguna Amazon EC2.

  • Untuk detail API, lihat DescribeImagesdi Referensi AWS CLI Perintah.

JavaScript
SDK untuk JavaScript (v3)
catatan

Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di Repositori Contoh Kode AWS.

import { paginateDescribeImages } from "@aws-sdk/client-ec2"; import { client } from "../libs/client.js"; // List at least the first i386 image available for EC2 instances. export const main = async () => { // The paginate function is a wrapper around the base command. const paginator = paginateDescribeImages( // Without limiting the page size, this call can take a long time. pageSize is just sugar for // the MaxResults property in the base command. { client, pageSize: 25 }, { // There are almost 70,000 images available. Be specific with your filtering // to increase efficiency. // See https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-ec2/interfaces/describeimagescommandinput.html#filters Filters: [{ Name: "architecture", Values: ["x86_64"] }], }, ); try { const arm64Images = []; for await (const page of paginator) { if (page.Images.length) { arm64Images.push(...page.Images); // Once we have at least 1 result, we can stop. if (arm64Images.length >= 1) { break; } } } console.log(arm64Images); } catch (err) { console.error(err); } };
  • Untuk detail API, lihat DescribeImagesdi Referensi AWS SDK for JavaScript API.

Python
SDK for Python (Boto3)
catatan

Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di Repositori Contoh Kode AWS.

class InstanceWrapper: """Encapsulates Amazon Elastic Compute Cloud (Amazon EC2) instance actions.""" def __init__(self, ec2_resource, instance=None): """ :param ec2_resource: A Boto3 Amazon EC2 resource. This high-level resource is used to create additional high-level objects that wrap low-level Amazon EC2 service actions. :param instance: A Boto3 Instance object. This is a high-level object that wraps instance actions. """ self.ec2_resource = ec2_resource self.instance = instance @classmethod def from_resource(cls): ec2_resource = boto3.resource("ec2") return cls(ec2_resource) def get_images(self, image_ids): """ Gets information about Amazon Machine Images (AMIs) from a list of AMI IDs. :param image_ids: The list of AMIs to look up. :return: A list of Boto3 Image objects that represent the requested AMIs. """ try: images = list(self.ec2_resource.images.filter(ImageIds=image_ids)) except ClientError as err: logger.error( "Couldn't get images. Here's why: %s: %s", err.response["Error"]["Code"], err.response["Error"]["Message"], ) raise else: return images
  • Untuk detail API, lihat DescribeImagesdi AWSSDK for Python (Boto3) Referensi API.

Untuk melihat daftar lengkap panduan developer SDK AWS dan contoh-contoh kode, silakan lihat Menggunakan layanan ini dengan AWS SDK. Topik ini juga mencakup informasi tentang cara memulai dan detail tentang versi SDK sebelumnya.