@@ -54,8 +54,6 @@ def init_api():
5454 from datadog import api
5555
5656 if not api._api_key:
57- import boto3
58-
5957 DD_API_KEY_SECRET_ARN = os.environ.get("DD_API_KEY_SECRET_ARN", "")
6058 DD_API_KEY_SSM_NAME = os.environ.get("DD_API_KEY_SSM_NAME", "")
6159 DD_KMS_API_KEY = os.environ.get("DD_KMS_API_KEY", "")
@@ -64,15 +62,15 @@ def init_api():
6462 )
6563
6664 if DD_API_KEY_SECRET_ARN:
67- api._api_key = boto3.client ("secretsmanager").get_secret_value(
65+ api._api_key = _boto3_client ("secretsmanager").get_secret_value(
6866 SecretId=DD_API_KEY_SECRET_ARN
6967 )["SecretString"]
7068 elif DD_API_KEY_SSM_NAME:
71- api._api_key = boto3.client ("ssm").get_parameter(
69+ api._api_key = _boto3_client ("ssm").get_parameter(
7270 Name=DD_API_KEY_SSM_NAME, WithDecryption=True
7371 )["Parameter"]["Value"]
7472 elif DD_KMS_API_KEY:
75- kms_client = boto3.client ("kms")
73+ kms_client = _boto3_client ("kms")
7674 api._api_key = decrypt_kms_api_key(kms_client, DD_KMS_API_KEY)
7775 else:
7876 api._api_key = DD_API_KEY
@@ -87,3 +85,7 @@ def init_api():
8785
8886 # Unmute exceptions from datadog api client, so we can catch and handle them
8987 api._mute = False
88+
89+ def _boto3_client(*args, **kwargs):
90+ import botocore
91+ return botocore.session.get_session().create_client(*args, **kwargs)
0 commit comments