Skip to content

Commit 3edd49b

Browse files
barshauldvora-h
andauthored
Fixed CredentialsProvider examples (#2587)
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
1 parent 5588ae0 commit 3edd49b

File tree

1 file changed

+30
-20
lines changed

1 file changed

+30
-20
lines changed

docs/examples/connection_examples.ipynb

+30-20
Original file line numberDiff line numberDiff line change
@@ -222,18 +222,23 @@
222222
"import json\n",
223223
"import cachetools.func\n",
224224
"\n",
225-
"sm_client = boto3.client('secretsmanager')\n",
226-
" \n",
227-
"def sm_auth_provider(self, secret_id, version_id=None, version_stage='AWSCURRENT'):\n",
228-
" @cachetools.func.ttl_cache(maxsize=128, ttl=24 * 60 * 60) #24h\n",
229-
" def get_sm_user_credentials(secret_id, version_id, version_stage):\n",
230-
" secret = sm_client.get_secret_value(secret_id, version_id)\n",
231-
" return json.loads(secret['SecretString'])\n",
232-
" creds = get_sm_user_credentials(secret_id, version_id, version_stage)\n",
233-
" return creds['username'], creds['password']\n",
225+
"class SecretsManagerProvider(redis.CredentialProvider):\n",
226+
" def __init__(self, secret_id, version_id=None, version_stage='AWSCURRENT'):\n",
227+
" self.sm_client = boto3.client('secretsmanager')\n",
228+
" self.secret_id = secret_id\n",
229+
" self.version_id = version_id\n",
230+
" self.version_stage = version_stage\n",
234231
"\n",
235-
"secret_id = \"EXAMPLE1-90ab-cdef-fedc-ba987SECRET1\"\n",
236-
"creds_provider = redis.CredentialProvider(supplier=sm_auth_provider, secret_id=secret_id)\n",
232+
" def get_credentials(self) -> Union[Tuple[str], Tuple[str, str]]:\n",
233+
" @cachetools.func.ttl_cache(maxsize=128, ttl=24 * 60 * 60) #24h\n",
234+
" def get_sm_user_credentials(secret_id, version_id, version_stage):\n",
235+
" secret = self.sm_client.get_secret_value(secret_id, version_id)\n",
236+
" return json.loads(secret['SecretString'])\n",
237+
" creds = get_sm_user_credentials(self.secret_id, self.version_id, self.version_stage)\n",
238+
" return creds['username'], creds['password']\n",
239+
"\n",
240+
"my_secret_id = \"EXAMPLE1-90ab-cdef-fedc-ba987SECRET1\"\n",
241+
"creds_provider = SecretsManagerProvider(secret_id=my_secret_id)\n",
237242
"user_connection = redis.Redis(host=\"localhost\", port=6379, credential_provider=creds_provider)\n",
238243
"user_connection.ping()"
239244
]
@@ -266,19 +271,24 @@
266271
"import boto3\n",
267272
"import cachetools.func\n",
268273
"\n",
269-
"ec_client = boto3.client('elasticache')\n",
274+
"class ElastiCacheIAMProvider(redis.CredentialProvider):\n",
275+
" def __init__(self, user, endpoint, port=6379, region=\"us-east-1\"):\n",
276+
" self.ec_client = boto3.client('elasticache')\n",
277+
" self.user = user\n",
278+
" self.endpoint = endpoint\n",
279+
" self.port = port\n",
280+
" self.region = region\n",
270281
"\n",
271-
"def iam_auth_provider(self, user, endpoint, port=6379, region=\"us-east-1\"):\n",
272-
" @cachetools.func.ttl_cache(maxsize=128, ttl=15 * 60) # 15m\n",
273-
" def get_iam_auth_token(user, endpoint, port, region):\n",
274-
" return ec_client.generate_iam_auth_token(user, endpoint, port, region)\n",
275-
" iam_auth_token = get_iam_auth_token(endpoint, port, user, region)\n",
276-
" return iam_auth_token\n",
282+
" def get_credentials(self) -> Union[Tuple[str], Tuple[str, str]]:\n",
283+
" @cachetools.func.ttl_cache(maxsize=128, ttl=15 * 60) # 15m\n",
284+
" def get_iam_auth_token(user, endpoint, port, region):\n",
285+
" return self.ec_client.generate_iam_auth_token(user, endpoint, port, region)\n",
286+
" iam_auth_token = get_iam_auth_token(self.endpoint, self.port, self.user, self.region)\n",
287+
" return iam_auth_token\n",
277288
"\n",
278289
"username = \"barshaul\"\n",
279290
"endpoint = \"test-001.use1.cache.amazonaws.com\"\n",
280-
"creds_provider = redis.CredentialProvider(supplier=iam_auth_provider, user=username,\n",
281-
" endpoint=endpoint)\n",
291+
"creds_provider = ElastiCacheIAMProvider(user=username, endpoint=endpoint)\n",
282292
"user_connection = redis.Redis(host=endpoint, port=6379, credential_provider=creds_provider)\n",
283293
"user_connection.ping()"
284294
]

0 commit comments

Comments
 (0)