Aaron Wormus
06/16/2023, 3:14 PMSecretBinary
and reading the block like this:
from prefect_aws import AwsSecret
def my_flow():
secrets_manager = AwsSecret.load("aaron-secret")
print(secrets_manager.read_secret())
Gives me a
KeyError: 'SecretBinary'
Aaron Wormus
06/16/2023, 3:16 PMread_secret
function it works as expected.
from prefect_aws.secrets_manager import read_secret
def my_flow():
aws_credentials = AwsCredentials(
aws_access_key_id=None,
aws_secret_access_key=None
)
secret = read_secret(secret_name="aaron-secret", aws_credentials=aws_credentials)
print_secret(secret)
Aaron Wormus
06/16/2023, 3:18 PMread_secret
functions return the secret.Aaron Wormus
06/16/2023, 3:19 PMprefect_aws/secrets_manager.py
client = self.aws_credentials.get_secrets_manager_client()
if version_id is not None:
read_kwargs["VersionId"] = version_id
if version_stage is not None:
read_kwargs["VersionStage"] = version_stage
response = await run_sync_in_worker_thread(
client.get_secret_value, SecretId=self.secret_name, **read_kwargs
)
secret = response["SecretBinary"]
arn = response["ARN"]
<http://self.logger.info|self.logger.info>(f"The secret {arn!r} data was successfully read.")
return secret
Returns the KeyError
Aaron Wormus
06/16/2023, 3:21 PMclient = aws_credentials.get_boto3_session().client("secretsmanager")
get_secret_value_kwargs = dict(SecretId=secret_name)
if version_id is not None:
get_secret_value_kwargs["VersionId"] = version_id
if version_stage is not None:
get_secret_value_kwargs["VersionStage"] = version_stage
try:
response = await run_sync_in_worker_thread(
client.get_secret_value, **get_secret_value_kwargs
)
except ClientError:
logger.exception("Unable to get value for secret %s", secret_name)
raise
else:
return response.get("SecretString") or response.get("SecretBinary")
Returns the SecretString
Aaron Wormus
06/16/2023, 3:24 PMAaron Wormus
06/16/2023, 3:25 PMJames Gatter
06/16/2023, 3:32 PMAaron Wormus
06/16/2023, 3:38 PMJames Gatter
06/16/2023, 3:40 PMAaron Wormus
06/16/2023, 3:42 PMJames Gatter
06/16/2023, 3:43 PM