code: def task_pre_step(
      self,
      step_name,
      task_datastore,
      metadata,
      run_id,
      task_id,
      flow,
      graph,
      retry_count,
      max_user_code_retries,
      ubf_context,
      inputs,
  ):
      meta = {}
      meta["aws-step-functions-execution"] = os.environ[
          "METAFLOW_RUN_ID"
      ]
      meta["aws-step-functions-state-machine"] = os.environ[
          "SFN_STATE_MACHINE"
      ]
      entries = [
          MetaDatum(
              field=k,
              value=v,
              type=k,
              tags=["attempt_id:{0}".format(retry_count)],
          )
          for k, v in meta.items()
      ]
      # Register book-keeping metadata for debugging.
      metadata.register_metadata(run_id, step_name, task_id, entries)
  
file_path: metaflow/metaflow/plugins/aws/step_functions/step_functions_decorator.py
imports: import os
  import json
  import time
  from metaflow.decorators import StepDecorator
  from metaflow.metadata import MetaDatum
  from .dynamo_db_client import DynamoDbClient
label_desc: Use image node_id 1 for calling the StepFunctionsInternalDecorator obj's underlying member method code with example usage: obj.task_pre_step(step_name, task_datastore, metadata, run_id, task_id, flow, graph, retry_count, max_user_code_retries, ubf_context, inputs) without return types