22
33from dotenv import load_dotenv
44
5-
65class AWS_Config :
76
87 def __init__ (self ):
@@ -14,15 +13,17 @@ def __enter__(self):
1413 def __exit__ (self , type , value , traceback ):
1514 pass
1615
17- def aws_session_profile_name (self ): return os .getenv ('AWS_PROFILE_NAME' )
18- def aws_session_region_name (self ): return os .getenv ('AWS_DEFAULT_REGION' )
19- def aws_session_account_id (self ): return os .getenv ('AWS_ACCOUNT_ID' )
20- def dev_skip_aws_key_check (self ): return os .getenv ('DEV_SKIP_AWS_KEY_CHECK' , False ) # use to not have the 500ms check that happens during this check
21- def bot_name (self ): return os .getenv ('OSBOT_NAME' ) # todo: refactor variable to osbot_name (need to check for side effects)
22- def lambda_s3_bucket (self ): return os .getenv ('OSBOT_LAMBDA_S3_BUCKET' , f'{ self .aws_session_account_id ()} -osbot-lambdas' )
23- def lambda_s3_folder_layers (self ): return os .getenv ('OSBOT_LAMBDA_S3_FOLDER_LAYERS' , 'layers' )
24- def lambda_s3_folder_lambdas (self ): return os .getenv ('OSBOT_LAMBDA_S3_FOLDER_LAMBDAS' , 'lambdas' )
25- def lambda_role_name (self ): return os .getenv ('OSBOT_LAMBDA_ROLE_NAME' 'role-osbot-lambda' )
16+ def aws_access_key_id (self ): return os .getenv ('AWS_ACCESS_KEY_ID' )
17+ def aws_secret_access_key (self ): return os .getenv ('AWS_SECRET_ACCESS_KEY' )
18+ def aws_session_profile_name (self ): return os .getenv ('AWS_PROFILE_NAME' )
19+ def aws_session_region_name (self ): return os .getenv ('AWS_DEFAULT_REGION' )
20+ def aws_session_account_id (self ): return os .getenv ('AWS_ACCOUNT_ID' ) or self .sts_session_account_id ()
21+ def dev_skip_aws_key_check (self ): return os .getenv ('DEV_SKIP_AWS_KEY_CHECK' , False ) # use to not have the 500ms check that happens during this check
22+ def bot_name (self ): return os .getenv ('OSBOT_NAME' ) # todo: refactor variable to osbot_name (need to check for side effects)
23+ def lambda_s3_bucket (self ): return os .getenv ('OSBOT_LAMBDA_S3_BUCKET' ) or f'{ self .aws_session_account_id ()} -osbot-lambdas'
24+ def lambda_s3_folder_layers (self ): return os .getenv ('OSBOT_LAMBDA_S3_FOLDER_LAYERS' , 'layers' )
25+ def lambda_s3_folder_lambdas (self ): return os .getenv ('OSBOT_LAMBDA_S3_FOLDER_LAMBDAS' , 'lambdas' )
26+ def lambda_role_name (self ): return os .getenv ('OSBOT_LAMBDA_ROLE_NAME' 'role-osbot-lambda' )
2627
2728
2829 def set_aws_session_profile_name (self , value ): os .environ ['AWS_PROFILE_NAME' ] = value ; return value
@@ -34,6 +35,14 @@ def set_lambda_s3_folder_lambdas(self, value): os.environ['OSBOT_LAMBDA_S3_FOLDE
3435 def set_lambda_role_name (self , value ): os .environ ['OSBOT_LAMBDA_ROLE_NAME' ] = value ; return value
3536 def set_bot_name (self , value ): os .environ ['OSBOT_NAME' ] = value ; return value
3637
38+ def sts_session_account_id (self ): # to handle when the AWS_ACCOUNT_ID is not set
39+ from osbot_aws .apis .STS import STS # the use of this method is not advised
40+ return STS ().current_account_id () # since this is quite an expensive method
41+
42+ # helper methods
43+ def account_id (self ): return self .aws_session_account_id ()
44+ def region_name (self ): return self .aws_session_region_name ()
45+
3746
3847def set_aws_region (region_name ):
3948 AWS_Config ().set_aws_session_region_name (region_name )
0 commit comments