in src/deep_learning_container.py [0:0]
def tag_instance(instance_id, region):
"""
Apply instance tag on the instance that is running the container using botocore
"""
args = parse_args()
framework, framework_version, container_type = (
args.framework,
args.framework_version,
args.container_type,
)
py_version = sys.version.split(" ")[0]
device = _retrieve_device()
cuda_version = f"_cuda{_retrieve_cuda()}" if device == "gpu" else ""
os_version = _retrieve_os()
tag = f"{framework}_{container_type}_{framework_version}_python{py_version}_{device}{cuda_version}_{os_version}"
tag_struct = {"Key": "aws-dlc-autogenerated-tag-do-not-delete", "Value": tag}
request_status = None
if instance_id and region:
try:
session = botocore.session.get_session()
ec2_client = session.create_client("ec2", region_name=region)
response = ec2_client.create_tags(Resources=[instance_id], Tags=[tag_struct])
request_status = response.get("ResponseMetadata").get("HTTPStatusCode")
if os.environ.get("TEST_MODE") == str(1):
with open(os.path.join(os.sep, "tmp", "test_tag_request.txt"), "w+") as rf:
rf.write(json.dumps(tag_struct, indent=4))
except Exception as e:
logging.error(f"Error. {e}")
logging.debug("Instance tagged successfully: {}".format(request_status))
else:
logging.error("Failed to retrieve instance_id or region")
return request_status