Ce projet contient un ensemble de fonctions utilitaires pour interagir avec divers services AWS en utilisant Boto3.
Les fonctions sont organisées par service.
- Installation
- Utilisation
- Fonctionnalités
- Gestion Générique AWS (Boto3 Client & Resource)
- Gestion des EC2 Instances
- Gestion des Lambdas
- Gestion de CloudFormation
- Gestion de DynamoDB
- Gestion de CloudWatch Logs
- Gestion des Groupes Auto Scaling
- Gestion des Snapshots EBS
- Gestion des RDS Instances
- Gestion des VPC
- Gestion des Rôles IAM
- Gestion des SNS
- Gestion des SQS
- Gestion des CloudWatch Alarms
- Gestion des Route 53
- Gestion des API Gateway
- Gestion des Step Functions
- Gestion de S3
- Gestion des Secrets Manager
Pour utiliser ces fonctions, vous devez installer Boto3. Vous pouvez l'installer via pip :
pip install boto3
Importez les fonctions nécessaires dans votre script Python :
from aws_helpers import create_session, get_boto3_client, start_ec2_instance
create_session(profile_name=None)
: Crée une session boto3 avec un profil AWS donné.get_boto3_client(service_name, region_name=REGION)
: Initialise et retourne un client boto3 pour un service AWS donné.get_boto3_resource(service_name, region_name=REGION)
: Initialise et retourne une ressource boto3 pour un service AWS donné.safe_boto3_call(client_method, *args, **kwargs)
: Enveloppe un appel boto3 et gère les erreurs de manière propre.
start_ec2_instance(instance_id)
: Démarre une instance EC2 donnée.stop_ec2_instance(instance_id)
: Arrête une instance EC2 donnée.get_ec2_instance_status(instance_id)
: Retourne l'état d'une instance EC2 donnée.
deploy_lambda(lambda_name, zip_file_path, role_arn, handler, runtime='python3.8')
: Déploie une fonction Lambda avec un fichier ZIP.invoke_lambda(lambda_name, payload)
: Invoque une fonction Lambda avec un payload.add_lambda_permission(lambda_name, statement_id, action, principal, source_arn)
: Ajoute une permission à une fonction Lambda.delete_lambda(lambda_name)
: Supprime une fonction Lambda.
deploy_cloudformation_stack(stack_name, template_body, parameters)
: Déploie un stack CloudFormation.get_cloudformation_stack_status(stack_name)
: Retourne le statut d'un stack CloudFormation donné.
get_dynamodb_item(table_name, key)
: Récupère un élément d'une table DynamoDB.put_dynamodb_item(table_name, item)
: Ajoute ou met à jour un élément dans une table DynamoDB.delete_dynamodb_item(table_name, key)
: Supprime un élément d'une table DynamoDB.update_dynamodb_item(table_name, key, attribute_updates)
: Met à jour un élément d'une table DynamoDB.list_dynamodb_table(table_name)
: Scanne une table DynamoDB et retourne tous les éléments.
log_to_cloudwatch(log_group, log_stream, message)
: Envoie un log à un groupe et un flux de logs CloudWatch.
list_auto_scaling_groups()
: Liste tous les groupes Auto Scaling.update_auto_scaling_group_capacity(group_name, min_size, max_size, desired_capacity)
: Met à jour la capacité minimale, maximale et souhaitée d'un groupe Auto Scaling.scale_auto_scaling_group(group_name, desired_capacity)
: Ajuste manuellement la capacité souhaitée d'un groupe Auto Scaling.get_auto_scaling_group_instances(group_name)
: Récupère les instances associées à un groupe Auto Scaling.
create_ebs_snapshot(volume_id, description='Snapshot created via boto3')
: Crée un snapshot d'un volume EBS donné.list_ebs_snapshots(volume_id=None, owner_id='self')
: Liste tous les snapshots pour un volume EBS donné ou pour tous les volumes de l'utilisateur.delete_ebs_snapshot(snapshot_id)
: Supprime un snapshot EBS donné.create_volume_from_snapshot(snapshot_id, availability_zone, volume_type='gp2', size=None)
: Crée un nouveau volume EBS à partir d'un snapshot.
create_rds_instance(db_instance_identifier, db_instance_class, engine, master_username, master_user_password, db_name)
: Crée une instance RDS avec les paramètres spécifiés.
create_vpc(cidr_block)
: Crée un VPC avec un bloc CIDR spécifié.create_subnet(vpc_id, cidr_block, availability_zone)
: Crée un sous-réseau dans un VPC spécifié.create_internet_gateway(vpc_id)
: Crée une passerelle Internet pour un VPC donné.
create_iam_role(role_name, assume_role_policy_document, description='')
: Crée un rôle IAM avec une politique d'approbation spécifiée.delete_iam_role(role_name)
: Supprime un rôle IAM.attach_policy_to_role(role_name, policy_arn)
: Attache une politique gérée à un rôle IAM.create_policy(policy_name, policy_document, description='')
: Crée une politique gérée IAM avec un document de politique spécifié.delete_policy(policy_arn)
: Supprime une politique gérée IAM.
create_sns_topic(topic_name)
: Crée un sujet SNS.subscribe_email_to_topic(topic_arn, email_address)
: Abonne une adresse e-mail à un sujet SNS.publish_to_sns_topic(topic_arn, message, subject=None)
: Publie un message sur un sujet SNS.
create_sqs_queue(queue_name)
: Crée une file d'attente SQS.send_message_to_sqs(queue_url, message_body)
: Envoie un message à une file d'attente SQS.receive_messages_from_sqs(queue_url, max_number_of_messages=1)
: Reçoit des messages d'une file d'attente SQS.delete_message_from_sqs(queue_url, receipt_handle)
: Supprime un message d'une file d'attente SQS.
create_cloudwatch_alarm(alarm_name, metric_name, namespace, statistic, period, evaluation_periods, threshold, comparison_operator, actions_enabled=True, alarm_actions=None)
: Crée une alarme CloudWatch.
create_route53_hosted_zone(domain_name)
: Crée une zone hébergée Route 53.create_route53_record(hosted_zone_id, record_name, record_type, record_value)
: Crée un enregistrement DNS dans une zone hébergée Route 53.get_route53_hosted_zone_id(domain_name)
: Récupère l'ID d'une zone hébergée Route 53.delete_route53_hosted_zone(hosted_zone_id)
: Supprime une zone hébergée Route 53.
create_api_gateway(api_name, api_key_source='HEADER', description='')
: Crée une API Gateway.create_api_gateway_resource(api_id, parent_id, path_part)
: Crée une ressource pour une API Gateway.create_api_gateway_method_response(api_id, resource_id, http_method, status_code)
: Crée une réponse de méthode pour une API Gateway.create_api_gateway_method(api_id, resource_id, http_method, authorization_type='NONE')
: Crée une méthode HTTP pour une ressource d'une API Gateway.create_api_gateway_integration(api_id, resource_id, http_method, integration_type, uri, integration_http_method='POST')
: Crée une intégration pour une méthode d'une API Gateway.create_api_gateway_integration_response(api_id, resource_id, http_method, status_code, selection_pattern)
: Crée une réponse d'intégration pour une API Gateway.create_api_gateway_deployment(api_id, stage_name)
: Déploie une API Gateway.create_api_gateway_usage_plan(usage_plan_name, api_stages, throttle_settings=None, quota_settings=None)
: Crée un plan d'utilisation API Gateway.create_api_gateway_api_key(api_key_name, description='')
: Crée une clé API Gateway.create_api_gateway_usage_plan_key(usage_plan_id, key_id, key_type)
: Ajoute une clé à un plan d'utilisation API Gateway.
create_step_function(state_machine_name, definition)
: Crée une machine à états Step Functions.start_step_function_execution(state_machine_arn, input)
: Démarre l'exécution d'une machine à états Step Functions.get_step_function_execution_status(execution_arn)
: Récupère le statut d'une exécution de machine à états Step Functions.
upload_file_to_s3(bucket_name, file_path, object_name=None)
: Téléverse un fichier vers un bucket S3.download_file_from_s3(bucket_name, object_name, file_path)
: Télécharge un fichier depuis un bucket S3.list_s3_bucket_objects(bucket_name, prefix='')
: Liste les objets dans un bucket S3, optionnellement filtré par un préfixe.delete_s3_bucket_object(bucket_name, object_name)
: Supprime un objet d'un bucket S3.create_s3_bucket(bucket_name)
: Crée un bucket S3.delete_s3_bucket(bucket_name)
: Supprime un bucket S3.
get_secret(secret_name)
: Récupère un secret depuis AWS Secrets Manager.put_secret(secret_name, secret_value)
: Crée ou met à jour un secret dans AWS Secrets Manager.delete_secret(secret_name)
: Supprime un secret d'AWS Secrets Manager.