Thank You in advance @Matthijs van der Veer , yes it was. I realized the issue was came from the Function App in the context of the C# code.
It failed to read the message body to obtain my telemetry, because it was encoded.
To decode, we can use:
var bodyJson = Encoding.ASCII.GetString((byte[])deviceMessage["body"]);
JObject body = (JObject)JsonConvert.DeserializeObject(bodyJson);
Another thing is we need to instantiate BasicDigitalTwin first before updating our Digital Twin as follows (for example in my case):
var cred = new DefaultAzureCredential();
var client = new DigitalTwinsClient(new Uri(adtInstanceUrl), cred);
string twinId = "<TWIN_ID>";
var initData = new BasicDigitalTwin
{
Id = twinId,
Metadata = { ModelId = "<MODEL_ID>" },
Contents =
{
{ "Temperature", 0.0},
{ "Humidity", 0.0},
{ "Light", 0.0}
}
};