Python boto3를 이용한 AWS 리소스 컨트롤-세션등록 및 함수출력하기
2019-12-17
.
import boto3 ##ec2 tag 등록
session = boto3.session.Session(profile_name="default")
ec2_cli = session.resource(service_name="ec2", region_name="ap-northeast-2")
tag_change = ec2_cli.create_tags(Resources=['i-0f7ac7a56b2d76e35'], Tags=[{"Key" : "Name", "Value" : "minman"}])
#Session 등록(credential에 등록된 것에 대해 session 등록)
session = boto3.session.Session(profile_name='default')
ec2_res = session.resource(service_name='ec2', region_name='ap-northeast-2')
print(ec2_res)
dir(ec2_res) # 해당 서비스에 대한 함수 출력하는 것
ec2.ServiceResource()
['ClassicAddress',
'DhcpOptions',
'Image',
'Instance',
'InternetGateway',
'KeyPair',
'NetworkAcl',
'NetworkInterface',
'NetworkInterfaceAssociation',
'PlacementGroup',
'Route',
'RouteTable',
'RouteTableAssociation',
'SecurityGroup',
'Snapshot',
'Subnet',
'Tag',
'Volume',
'Vpc',
'VpcAddress',
'VpcPeeringConnection',
'__class__',
'__delattr__',
'__dict__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__le__',
'__lt__',
'__module__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__',
'__weakref__',
'classic_addresses',
'create_dhcp_options',
'create_instances',
'create_internet_gateway',
'create_key_pair',
'create_network_acl',
'create_network_interface',
'create_placement_group',
'create_route_table',
'create_security_group',
'create_snapshot',
'create_subnet',
'create_tags',
'create_volume',
'create_vpc',
'create_vpc_peering_connection',
'dhcp_options_sets',
'disassociate_route_table',
'get_available_subresources',
'images',
'import_key_pair',
'instances',
'internet_gateways',
'key_pairs',
'meta',
'network_acls',
'network_interfaces',
'placement_groups',
'register_image',
'route_tables',
'security_groups',
'snapshots',
'subnets',
'volumes',
'vpc_addresses',
'vpc_peering_connections',
'vpcs']
#session 등록하고 해당 서비스에 대한 함수 보기 좋게 출력
import pprint
session = boto3.session.Session(profile_name='default')
ec2_res = session.resource(service_name='ec2', region_name='ap-northeast-2')
print(pprint.pprint(dir(ec2_res)))
['ClassicAddress',
'DhcpOptions',
'Image',
'Instance',
'InternetGateway',
'KeyPair',
'NetworkAcl',
'NetworkInterface',
'NetworkInterfaceAssociation',
'PlacementGroup',
'Route',
'RouteTable',
'RouteTableAssociation',
'SecurityGroup',
'Snapshot',
'Subnet',
'Tag',
'Volume',
'Vpc',
'VpcAddress',
'VpcPeeringConnection',
'__class__',
'__delattr__',
'__dict__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__le__',
'__lt__',
'__module__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__',
'__weakref__',
'classic_addresses',
'create_dhcp_options',
'create_instances',
'create_internet_gateway',
'create_key_pair',
'create_network_acl',
'create_network_interface',
'create_placement_group',
'create_route_table',
'create_security_group',
'create_snapshot',
'create_subnet',
'create_tags',
'create_volume',
'create_vpc',
'create_vpc_peering_connection',
'dhcp_options_sets',
'disassociate_route_table',
'get_available_subresources',
'images',
'import_key_pair',
'instances',
'internet_gateways',
'key_pairs',
'meta',
'network_acls',
'network_interfaces',
'placement_groups',
'register_image',
'route_tables',
'security_groups',
'snapshots',
'subnets',
'volumes',
'vpc_addresses',
'vpc_peering_connections',
'vpcs']
None
# resource, client 별로 지원하는 함수 확인
session = boto3.session.Session(profile_name='default')
ec2_res = session.client(service_name='ec2', region_name='ap-northeast-2')
print(pprint.pprint(dir(ec2_res)))
['_PY_TO_OP_NAME',
'__class__',
'__delattr__',
'__dict__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattr__',
'__getattribute__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__le__',
'__lt__',
'__module__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__',
'__weakref__',
'_cache',
'_client_config',
'_convert_to_request_dict',
'_emit_api_params',
'_endpoint',
'_exceptions',
'_exceptions_factory',
'_get_waiter_config',
'_load_exceptions',
'_loader',
'_make_api_call',
'_make_request',
'_register_handlers',
'_request_signer',
'_response_parser',
'_serializer',
'_service_model',
'accept_reserved_instances_exchange_quote',
'accept_transit_gateway_vpc_attachment',
'accept_vpc_endpoint_connections',
'accept_vpc_peering_connection',
'advertise_byoip_cidr',
'allocate_address',
'allocate_hosts',
'apply_security_groups_to_client_vpn_target_network',
'assign_ipv6_addresses',
'assign_private_ip_addresses',
'associate_address',
'associate_client_vpn_target_network',
'associate_dhcp_options',
'associate_iam_instance_profile',
'associate_route_table',
'associate_subnet_cidr_block',
'associate_transit_gateway_route_table',
'associate_vpc_cidr_block',
'attach_classic_link_vpc',
'attach_internet_gateway',
'attach_network_interface',
'attach_volume',
'attach_vpn_gateway',
'authorize_client_vpn_ingress',
'authorize_security_group_egress',
'authorize_security_group_ingress',
'bundle_instance',
'can_paginate',
'cancel_bundle_task',
'cancel_capacity_reservation',
'cancel_conversion_task',
'cancel_export_task',
'cancel_import_task',
'cancel_reserved_instances_listing',
'cancel_spot_fleet_requests',
'cancel_spot_instance_requests',
'confirm_product_instance',
'copy_fpga_image',
'copy_image',
'copy_snapshot',
'create_capacity_reservation',
'create_client_vpn_endpoint',
'create_client_vpn_route',
'create_customer_gateway',
'create_default_subnet',
'create_default_vpc',
'create_dhcp_options',
'create_egress_only_internet_gateway',
'create_fleet',
'create_flow_logs',
'create_fpga_image',
'create_image',
'create_instance_export_task',
'create_internet_gateway',
'create_key_pair',
'create_launch_template',
'create_launch_template_version',
'create_nat_gateway',
'create_network_acl',
'create_network_acl_entry',
'create_network_interface',
'create_network_interface_permission',
'create_placement_group',
'create_reserved_instances_listing',
'create_route',
'create_route_table',
'create_security_group',
'create_snapshot',
'create_snapshots',
'create_spot_datafeed_subscription',
'create_subnet',
'create_tags',
'create_traffic_mirror_filter',
'create_traffic_mirror_filter_rule',
'create_traffic_mirror_session',
'create_traffic_mirror_target',
'create_transit_gateway',
'create_transit_gateway_route',
'create_transit_gateway_route_table',
'create_transit_gateway_vpc_attachment',
'create_volume',
'create_vpc',
'create_vpc_endpoint',
'create_vpc_endpoint_connection_notification',
'create_vpc_endpoint_service_configuration',
'create_vpc_peering_connection',
'create_vpn_connection',
'create_vpn_connection_route',
'create_vpn_gateway',
'delete_client_vpn_endpoint',
'delete_client_vpn_route',
'delete_customer_gateway',
'delete_dhcp_options',
'delete_egress_only_internet_gateway',
'delete_fleets',
'delete_flow_logs',
'delete_fpga_image',
'delete_internet_gateway',
'delete_key_pair',
'delete_launch_template',
'delete_launch_template_versions',
'delete_nat_gateway',
'delete_network_acl',
'delete_network_acl_entry',
'delete_network_interface',
'delete_network_interface_permission',
'delete_placement_group',
'delete_queued_reserved_instances',
'delete_route',
'delete_route_table',
'delete_security_group',
'delete_snapshot',
'delete_spot_datafeed_subscription',
'delete_subnet',
'delete_tags',
'delete_traffic_mirror_filter',
'delete_traffic_mirror_filter_rule',
'delete_traffic_mirror_session',
'delete_traffic_mirror_target',
'delete_transit_gateway',
'delete_transit_gateway_route',
'delete_transit_gateway_route_table',
'delete_transit_gateway_vpc_attachment',
'delete_volume',
'delete_vpc',
'delete_vpc_endpoint_connection_notifications',
'delete_vpc_endpoint_service_configurations',
'delete_vpc_endpoints',
'delete_vpc_peering_connection',
'delete_vpn_connection',
'delete_vpn_connection_route',
'delete_vpn_gateway',
'deprovision_byoip_cidr',
'deregister_image',
'describe_account_attributes',
'describe_addresses',
'describe_aggregate_id_format',
'describe_availability_zones',
'describe_bundle_tasks',
'describe_byoip_cidrs',
'describe_capacity_reservations',
'describe_classic_link_instances',
'describe_client_vpn_authorization_rules',
'describe_client_vpn_connections',
'describe_client_vpn_endpoints',
'describe_client_vpn_routes',
'describe_client_vpn_target_networks',
'describe_conversion_tasks',
'describe_customer_gateways',
'describe_dhcp_options',
'describe_egress_only_internet_gateways',
'describe_elastic_gpus',
'describe_export_image_tasks',
'describe_export_tasks',
'describe_fast_snapshot_restores',
'describe_fleet_history',
'describe_fleet_instances',
'describe_fleets',
'describe_flow_logs',
'describe_fpga_image_attribute',
'describe_fpga_images',
'describe_host_reservation_offerings',
'describe_host_reservations',
'describe_hosts',
'describe_iam_instance_profile_associations',
'describe_id_format',
'describe_identity_id_format',
'describe_image_attribute',
'describe_images',
'describe_import_image_tasks',
'describe_import_snapshot_tasks',
'describe_instance_attribute',
'describe_instance_credit_specifications',
'describe_instance_status',
'describe_instance_type_offerings',
'describe_instance_types',
'describe_instances',
'describe_internet_gateways',
'describe_key_pairs',
'describe_launch_template_versions',
'describe_launch_templates',
'describe_moving_addresses',
'describe_nat_gateways',
'describe_network_acls',
'describe_network_interface_attribute',
'describe_network_interface_permissions',
'describe_network_interfaces',
'describe_placement_groups',
'describe_prefix_lists',
'describe_principal_id_format',
'describe_public_ipv4_pools',
'describe_regions',
'describe_reserved_instances',
'describe_reserved_instances_listings',
'describe_reserved_instances_modifications',
'describe_reserved_instances_offerings',
'describe_route_tables',
'describe_scheduled_instance_availability',
'describe_scheduled_instances',
'describe_security_group_references',
'describe_security_groups',
'describe_snapshot_attribute',
'describe_snapshots',
'describe_spot_datafeed_subscription',
'describe_spot_fleet_instances',
'describe_spot_fleet_request_history',
'describe_spot_fleet_requests',
'describe_spot_instance_requests',
'describe_spot_price_history',
'describe_stale_security_groups',
'describe_subnets',
'describe_tags',
'describe_traffic_mirror_filters',
'describe_traffic_mirror_sessions',
'describe_traffic_mirror_targets',
'describe_transit_gateway_attachments',
'describe_transit_gateway_route_tables',
'describe_transit_gateway_vpc_attachments',
'describe_transit_gateways',
'describe_volume_attribute',
'describe_volume_status',
'describe_volumes',
'describe_volumes_modifications',
'describe_vpc_attribute',
'describe_vpc_classic_link',
'describe_vpc_classic_link_dns_support',
'describe_vpc_endpoint_connection_notifications',
'describe_vpc_endpoint_connections',
'describe_vpc_endpoint_service_configurations',
'describe_vpc_endpoint_service_permissions',
'describe_vpc_endpoint_services',
'describe_vpc_endpoints',
'describe_vpc_peering_connections',
'describe_vpcs',
'describe_vpn_connections',
'describe_vpn_gateways',
'detach_classic_link_vpc',
'detach_internet_gateway',
'detach_network_interface',
'detach_volume',
'detach_vpn_gateway',
'disable_ebs_encryption_by_default',
'disable_fast_snapshot_restores',
'disable_transit_gateway_route_table_propagation',
'disable_vgw_route_propagation',
'disable_vpc_classic_link',
'disable_vpc_classic_link_dns_support',
'disassociate_address',
'disassociate_client_vpn_target_network',
'disassociate_iam_instance_profile',
'disassociate_route_table',
'disassociate_subnet_cidr_block',
'disassociate_transit_gateway_route_table',
'disassociate_vpc_cidr_block',
'enable_ebs_encryption_by_default',
'enable_fast_snapshot_restores',
'enable_transit_gateway_route_table_propagation',
'enable_vgw_route_propagation',
'enable_volume_io',
'enable_vpc_classic_link',
'enable_vpc_classic_link_dns_support',
'exceptions',
'export_client_vpn_client_certificate_revocation_list',
'export_client_vpn_client_configuration',
'export_image',
'export_transit_gateway_routes',
'generate_presigned_url',
'get_capacity_reservation_usage',
'get_console_output',
'get_console_screenshot',
'get_default_credit_specification',
'get_ebs_default_kms_key_id',
'get_ebs_encryption_by_default',
'get_host_reservation_purchase_preview',
'get_launch_template_data',
'get_paginator',
'get_password_data',
'get_reserved_instances_exchange_quote',
'get_transit_gateway_attachment_propagations',
'get_transit_gateway_route_table_associations',
'get_transit_gateway_route_table_propagations',
'get_waiter',
'import_client_vpn_client_certificate_revocation_list',
'import_image',
'import_instance',
'import_key_pair',
'import_snapshot',
'import_volume',
'meta',
'modify_capacity_reservation',
'modify_client_vpn_endpoint',
'modify_default_credit_specification',
'modify_ebs_default_kms_key_id',
'modify_fleet',
'modify_fpga_image_attribute',
'modify_hosts',
'modify_id_format',
'modify_identity_id_format',
'modify_image_attribute',
'modify_instance_attribute',
'modify_instance_capacity_reservation_attributes',
'modify_instance_credit_specification',
'modify_instance_event_start_time',
'modify_instance_metadata_options',
'modify_instance_placement',
'modify_launch_template',
'modify_network_interface_attribute',
'modify_reserved_instances',
'modify_snapshot_attribute',
'modify_spot_fleet_request',
'modify_subnet_attribute',
'modify_traffic_mirror_filter_network_services',
'modify_traffic_mirror_filter_rule',
'modify_traffic_mirror_session',
'modify_transit_gateway_vpc_attachment',
'modify_volume',
'modify_volume_attribute',
'modify_vpc_attribute',
'modify_vpc_endpoint',
'modify_vpc_endpoint_connection_notification',
'modify_vpc_endpoint_service_configuration',
'modify_vpc_endpoint_service_permissions',
'modify_vpc_peering_connection_options',
'modify_vpc_tenancy',
'modify_vpn_connection',
'modify_vpn_tunnel_certificate',
'modify_vpn_tunnel_options',
'monitor_instances',
'move_address_to_vpc',
'provision_byoip_cidr',
'purchase_host_reservation',
'purchase_reserved_instances_offering',
'purchase_scheduled_instances',
'reboot_instances',
'register_image',
'reject_transit_gateway_vpc_attachment',
'reject_vpc_endpoint_connections',
'reject_vpc_peering_connection',
'release_address',
'release_hosts',
'replace_iam_instance_profile_association',
'replace_network_acl_association',
'replace_network_acl_entry',
'replace_route',
'replace_route_table_association',
'replace_transit_gateway_route',
'report_instance_status',
'request_spot_fleet',
'request_spot_instances',
'reset_ebs_default_kms_key_id',
'reset_fpga_image_attribute',
'reset_image_attribute',
'reset_instance_attribute',
'reset_network_interface_attribute',
'reset_snapshot_attribute',
'restore_address_to_classic',
'revoke_client_vpn_ingress',
'revoke_security_group_egress',
'revoke_security_group_ingress',
'run_instances',
'run_scheduled_instances',
'search_transit_gateway_routes',
'send_diagnostic_interrupt',
'start_instances',
'stop_instances',
'terminate_client_vpn_connections',
'terminate_instances',
'unassign_ipv6_addresses',
'unassign_private_ip_addresses',
'unmonitor_instances',
'update_security_group_rule_descriptions_egress',
'update_security_group_rule_descriptions_ingress',
'waiter_names',
'withdraw_byoip_cidr']
None
#S3
s3_res = boto3.resource('s3')
for bucket in s3_res.buckets.all():
print(bucket.name)
minman
bucket_name = 'minman'
s3_res = boto3.resource('s3')
each_bucket = s3_res.Bucket(bucket_name)
version = each_bucket.objects
for ver in version.all():
print(ver.bucket_name)
print(ver.key)
print(ver.storage_class)