code: func (agent *ecsAgent) reregisterContainerInstance(client api.ECSClient,
  	capabilities []*ecs.Attribute, tags []*ecs.Tag, registrationToken string, platformDevices []*ecs.PlatformDevice) error {
  	_, availabilityZone, err := client.RegisterContainerInstance(agent.containerInstanceARN, capabilities, tags, registrationToken, platformDevices)
  	//set az to agent
  	agent.availabilityZone = availabilityZone
  
  	if err == nil {
  		return nil
  	}
  	seelog.Errorf("Error re-registering: %v", err)
  	if apierrors.IsInstanceTypeChangedError(err) {
  		seelog.Criticalf(instanceTypeMismatchErrorFormat, err)
  		return err
  	}
  	if _, ok := err.(apierrors.AttributeError); ok {
  		seelog.Critical("Instance re-registration attempt with an invalid attribute")
  		return err
  	}
  	return transientError{err}
  }
docs: // reregisterContainerInstance registers a container instance that has already been
  // registered with ECS. This is for cases where the ECS Agent is being restored
  // from a check point.