in cookbooks/aws-parallelcluster-environment/files/cfn_hup_configuration/share_compute_fleet_dna.py [0:0]
def get_user_data(lt_id, lt_version, region_name):
"""
Get UserData from specified Launch Template using EC2 DescribeLaunchTemplateVersions API.
:param lt_id: Launch Template ID (eg: lt-12345678901234567)
:param lt_version: Launch Template latest Version Number (eg: 2)
:param region_name: AWS region name (eg: us-east-1)
:return: string of user_data in MIME format
"""
decoded_data = None
try:
proxy_config = parse_proxy_config()
ec2_client = boto3.client("ec2", region_name=region_name, config=proxy_config)
logger.info("Running EC2 DescribeLaunchTemplateVersions API for %s version %s", lt_id, lt_version)
response = ec2_client.describe_launch_template_versions(
LaunchTemplateId=lt_id,
Versions=[
lt_version,
],
).get("LaunchTemplateVersions")
decoded_data = base64.b64decode(response[0]["LaunchTemplateData"]["UserData"], validate=True).decode("utf-8")
except Exception as err:
if hasattr(err, "message"):
err = err.message
logger.error(
"Unable to get UserData for launch template %s with version %s.\nException: %s", lt_id, lt_version, err
)
return decoded_data