View a markdown version of this page

Enviando e recebendo mensagens AS2 - AWS Transfer Family

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Enviando e recebendo mensagens AS2

Esta seção descreve os processos para enviar e receber mensagens AS2. Ele também fornece detalhes sobre nomes de arquivos e locais associados às mensagens AS2.

A tabela a seguir lista os algoritmos de criptografia disponíveis para mensagens AS2 e quando você pode usá-los.

Algoritmo de criptografia HTTP HTTPS Observações
AES128_CBC Sim Sim
AES192_CBC Sim Sim
AES256_CBC Sim Sim
DES_EDE3_CBC Sim Sim Use esse algoritmo somente se precisar oferecer suporte a um cliente antigo que o exija, pois é um algoritmo de criptografia fraco.
NONE Não Sim Se você estiver enviando mensagens para um servidor Transfer Family, só poderá selecionar NONE se estiver usando um Application Load Balancer (ALB).

Processo de recebimento de mensagens AS2

O processo de entrada é definido como uma mensagem ou arquivo que está sendo transferido para o seu AWS Transfer Family servidor. A sequência das mensagens de entrada é a seguinte:

  1. Um processo administrativo ou automatizado inicia uma Transferência de Arquivos AS2 no servidor AS2 remoto do parceiro.

  2. O servidor AS2 remoto do parceiro assina e criptografa o conteúdo do arquivo e, em seguida, envia uma solicitação HTTP POST para um endpoint de entrada AS2 hospedado no Transfer Family.

  3. Usando os valores configurados para o servidor, parceiros, certificados e contrato, o Transfer Family descriptografa e verifica a carga do AS2. O conteúdo do arquivo é armazenado no armazenamento de arquivos configurado do Amazon S3.

  4. A resposta MDN assinada é retornada em linha com a resposta HTTP ou de forma assíncrona por meio de uma solicitação HTTP POST separada para o servidor de origem.

  5. Uma trilha de auditoria é escrita para a Amazon CloudWatch com detalhes sobre a troca.

  6. O arquivo descriptografado está disponível em uma pasta chamada inbox/processed.

Diagrama que mostra a sequência de processamento das mensagens recebidas.

Enviando e recebendo mensagens AS2 por HTTPS

Esta seção descreve como configurar um servidor Transfer Family que usa o protocolo AS2 para enviar e receber mensagens por HTTPS.

Envie mensagens AS2 por HTTPS

Para enviar mensagens AS2 usando HTTPS, crie um conector com as seguintes informações:

  • Para o URL, especifique um URL HTTPS

  • Para o algoritmo de criptografia, selecione qualquer um dos algoritmos disponíveis.

    nota

    Para enviar mensagens para um servidor Transfer Family sem usar criptografia (ou seja, você seleciona o algoritmo NONE de criptografia), você deve usar um Application Load Balancer (ALB).

  • Forneça os valores restantes para o conector, conforme descrito em Configurar conectores AS2.

Receba mensagens AS2 por HTTPS

AWS Transfer Family Atualmente, os servidores AS2 fornecem apenas transporte HTTP pela porta 5080. No entanto, você pode encerrar o TLS em um balanceador de carga de rede ou aplicativo na frente do endpoint VPC do servidor Transfer Family usando uma porta e um certificado de sua escolha. Com essa abordagem, você pode fazer com que as mensagens AS2 recebidas usem HTTPS.

Pré-requisitos

  • O VPC deve estar no mesmo Região da AWS servidor do Transfer Family.

  • As sub-redes da sua VPC devem estar dentro das zonas de disponibilidade nas quais você deseja usar o servidor.

    nota

    Cada servidor Transfer Family pode suportar até três zonas de disponibilidade.

  • Aloque até três endereços IP Elastic na mesma região do seu servidor. Ou você pode optar por trazer seu próprio intervalo de endereços IP (BYOIP).

    nota

    O número de endereços IP elásticos deve corresponder ao número de zonas de disponibilidade que você usa com os endpoints do servidor.

Você pode configurar um Network Load Balance (NLB) ou um Application Load Balancer (ALB). A tabela a seguir lista os prós e os contras de cada abordagem.

A tabela abaixo fornece as diferenças nos recursos quando você usa um NLB versus um ALB para encerrar o TLS.

Recurso Network Load Balancer (NLB) Application Load Balancer (ALB)
Latência Menor latência à medida que opera na camada de rede. Maior latência à medida que opera na camada do aplicativo.
Compatibilidade com IP estático Pode anexar endereços IP elásticos que podem ser estáticos. Não é possível anexar endereços IP elásticos: fornece um domínio cujos endereços IP subjacentes podem mudar.
Roteamento avançado Não suporta roteamento avançado.

Suporta roteamento avançado. Pode injetar o X-Forwarded-Proto cabeçalho necessário para AS2 sem criptografia.

Esse cabeçalho está descrito X-Forwarded-Protono site developer.mozilla.org.

TLS/SSL rescisão Suporta TLS/SSL rescisão Suporta TLS/SSL rescisão
TLS mútua (mTLS) Atualmente, o Transfer Family não suporta o uso de um NLB para mTLS Support para mTLS
Configure NLB

Este procedimento descreve como configurar um Network Load Balancer (NLB) voltado para a Internet em sua VPC.

Para criar um Network Load Balancer e definir o endpoint da VPC do servidor como o destino do balanceador de carga
  1. Abra o console do Amazon Elastic Compute Cloud em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Balanceadores de carga e, em seguida, escolha Criar balanceador de carga.

  3. Em Network Load Balancer, escolha Criar.

  4. Na seção Configurações básicas, insira as seguintes informações:

    • Em Nome, insira um nome descritivo para o balanceador de carga.

    • Para Esquema, escolha Internet-facing.

    • Em Tipo de endereço IP, selecione IPv4.

  5. Na seção Mapeamento de rede, insira as seguintes informações:

    • Em VPC, escolha a nuvem privada virtual (VPC) que você criou.

    • Em Mapeamentos, escolha as zonas de disponibilidade associadas às sub-redes públicas que estão disponíveis na mesma VPC que você usa com os endpoints do servidor.

    • Para o endereço IPv4 de cada sub-rede, escolha um dos endereços IP elásticos alocados.

  6. Na seção Receptores e roteamento, insira as seguintes informações:

    • Para Protocolos, escolha TLS.

    • Em Porta, insira 5080.

    • Em Ação padrão, escolha Criar grupo de destino. Para obter detalhes sobre a criação de um novo grupo-alvo, consulte Para criar um grupo de destino.

    Depois de criar um grupo-alvo, insira seu nome no campo Ação padrão.

  7. Na seção Configurações do ouvinte seguro, escolha seu certificado na área SSL/TLS Certificado padrão.

  8. Escolha Criar balanceador de carga para criar seu NLB.

  9. (Opcional, mas recomendado) Ative os logs de acesso do Network Load Balancer para manter uma trilha de auditoria completa, conforme descrito em Logs de acesso do Network Load Balancer.

    Recomendamos esta etapa porque a conexão TLS é encerrada no NLB. Portanto, o endereço IP de origem refletido nos grupos de CloudWatch log AS2 do Transfer Family é o endereço IP privado do NLB, em vez do endereço IP externo do seu parceiro comercial.

Configure ALB

Este procedimento descreve como configurar um Application Load Balancer (ALB) em sua VPC.

Para criar um Application Load Balancer e definir o VPC endpoint do servidor como destino do balanceador de carga
  1. Abra o console do Amazon Elastic Compute Cloud em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Balanceadores de carga e, em seguida, escolha Criar balanceador de carga.

  3. Em Application Load Balancer, escolha Create (Criar).

  4. No console do ALB, crie um novo ouvinte HTTP na porta 443 (HTTPS).

  5. (Opcional). Se você quiser configurar a autenticação mútua (mTLS), defina as configurações de segurança e um armazenamento confiável.

    1. Anexe seu SSL/TLS certificado ao ouvinte.

    2. Em Tratamento de certificados do cliente, selecione Autenticação mútua (mTLS).

    3. Escolha Verificar com um repositório confiável.

    4. Em Configurações avançadas do mTLS, escolha ou crie um repositório confiável fazendo o upload de seus certificados CA.

  6. Crie um novo grupo-alvo e adicione os endereços IP privados dos endpoints do servidor Transfer Family AS2 como destinos na porta 5080. Para obter detalhes sobre a criação de um novo grupo-alvo, consulte Para criar um grupo de destino.

  7. Configure verificações de saúde para que o grupo-alvo use o protocolo HTTP na porta 5080.

  8. Crie uma nova regra para encaminhar o tráfego HTTPS do ouvinte para o grupo-alvo.

  9. Configure o ouvinte para usar seu SSL/TLS certificado.

Depois de configurar o balanceador de carga, os clientes se comunicam com o balanceador de carga por meio do receptor de porta personalizado. Em seguida, o balanceador de carga se comunica com o servidor pela porta 5080.

Para criar um grupo de destino
  1. Depois de escolher Criar grupo-alvo no procedimento anterior, você será direcionado para a página Especificar detalhes do grupo de destino para um novo grupo-alvo.

  2. Na seção Configurações básicas, insira as seguintes informações.

    • Em Escolher um tipo de destino, escolha Endereços IP.

    • Em Nome do grupo de destino, insira um nome para o grupo de destino.

    • Para Protocolo, sua seleção depende de você estar usando um ALB ou um NLB.

      • Para um Network Load Balancer (NLB), escolha TCP

      • Para um Application Load Balancer (ALB), escolha HTTP

    • Em Porta, insira 5080.

    • Em Tipo de endereço IP, selecione IPv4.

    • Em VPC, escolha a VPC criada para o servidor Transfer Family AS2.

  3. Na seção Verificações de saúde, escolha o protocolo de verificação de saúde.

    • Para um ALB, escolha HTTP

    • Para um NLB, escolha TCP

  4. Escolha Próximo.

  5. Na página Registrar alvos, insira as seguintes informações:

    • Em Rede, confirme se a VPC que você criou para o servidor Transfer Family AS2 foi especificada.

    • Para o endereço IPv4, insira o endereço IPv4 privado dos endpoints do servidor Transfer Family AS2.

      Se você tiver mais de um endpoint para seu servidor, escolha Adicionar endereço IPv4 para adicionar outra linha para inserir outro endereço IPv4. Repita esse processo até inserir os endereços IP privados de todos os endpoints do seu servidor.

    • Verifique se as portas estão definidas como 5080.

    • Escolha Incluir como pendente abaixo para adicionar suas entradas à seção Revisar metas.

  6. Na seção Revisar alvos, revise seus alvos IP.

  7. Escolha Criar grupo-alvo e, em seguida, volte ao procedimento anterior para criar seu NLB e insira o novo grupo-alvo onde indicado.

Teste o acesso ao servidor a partir de um endereço IP elástico

Conecte-se ao servidor pela porta personalizada usando um endereço IP elástico ou o nome DNS do Network Load Balancer.

Importante

Gerencie o acesso ao seu servidor a partir de endereços IP do cliente usando as listas de controle de acesso à rede (ACL da rede) para as sub-redes configuradas no balanceador de carga. As permissões da Network ACL são definidas no nível da sub-rede, portanto, as regras se aplicam a todos os recursos que usam a sub-rede. Não é possível controlar o acesso de endereços IP de clientes usando grupos de segurança, porque o tipo de destino do balanceador de carga é definido como endereços IP em vez de Instâncias. Portanto, o balanceador de carga não preserva endereços IP de origem. Se as verificações de integridade do Network Load Balancer falharem, isso significa que o balanceador de carga não pode se conectar ao endpoint do servidor. Para solucionar esse problema, verifique o seguinte:

  • Confirme se o grupo de segurança associado ao endpoint do servidor permite conexões de entrada das sub-redes configuradas no balanceador de carga. O balanceador de carga deve ser capaz de se conectar ao endpoint do servidor pela porta 5080.

  • Confirme se o estado do servidor está online.

Transferindo arquivos usando um conector AS2

Os conectores AS2 estabelecem um relacionamento entre parceiros comerciais para transferências de mensagens AS2 de um servidor Transfer Family para um destino externo de propriedade do parceiro.

Você pode usar o Transfer Family para enviar mensagens AS2 referenciando o ID do conector e os caminhos para os arquivos, conforme ilustrado no seguinte comando start-file-transfer AWS Command Line Interface ()AWS CLI:

aws transfer start-file-transfer --connector-id c-1234567890abcdef0 \ --send-file-paths "/amzn-s3-demo-source-bucket/myfile1.txt" "/amzn-s3-demo-source-bucket/myfile2.txt"

Para obter detalhes dos conectores, execute o seguinte comando:

aws transfer list-connectors

O comando list-connectors retorna os IDs do conector, os URLs e nomes do recurso da Amazon (ARNs) dos seus conectores.

Para retornar as propriedades de um conector específico, execute o comando a seguir com o ID que você deseja usar:

aws transfer describe-connector --connector-id your-connector-id

O comando describe-connector retorna todas as propriedades do conector, incluindo URL, funções, perfis, avisos de disposição de mensagens (MDNs), tags e métricas de monitoramento.

Você pode confirmar que o parceiro recebeu os arquivos com êxito visualizando os arquivos JSON e MDN. Esses arquivos são nomeados de acordo com as convenções descritas em Nomes e localizações dos arquivos. Se você configurou uma função de registro ao criar o conector, também poderá verificar seus CloudWatch registros quanto ao status das mensagens AS2.

Para ver os detalhes do conector AS2, consulte Exibir detalhes do conector AS2. Para obter mais informações sobre como criar conectores AS2, consulte Configurar conectores AS2.

Para enviar uma mensagem de saída AS2

O processo de saída é definido como uma mensagem ou arquivo enviado AWS para um cliente ou serviço externo. A sequência das mensagens de saída é a seguinte:

  1. Um administrador chama o comando start-file-transfer AWS Command Line Interface (AWS CLI) ou a operação StartFileTransfer da API. Essa operação faz referência a uma configuração connector.

  2. O Transfer Family detecta uma nova solicitação de arquivo e localiza o arquivo. O arquivo é compactado, assinado e criptografado.

  3. Um cliente HTTP de transferência executa uma solicitação HTTP POST para transmitir a carga para o servidor AS2 do parceiro.

  4. O processo retorna a resposta MDN assinada, em linha com a resposta HTTP (MDN síncrona ou assíncrona).

  5. À medida que o arquivo se move entre os diferentes estágios de transmissão, o processo entrega o recibo da resposta do MDN e os detalhes do processamento ao cliente.

  6. O servidor AS2 remoto disponibiliza o arquivo descriptografado e verificado para o administrador parceiro.

Diagrama que mostra a sequência de processamento das mensagens enviadas.

O processamento AS2 suporta muitos dos protocolos RFC 4130, com foco em casos de uso comuns e integração com implementações de servidores existentes AS2-enabled . Para obter detalhes sobre as configurações suportadas, consulte Configurações AS2.

Nomes e localizações dos arquivos

Esta seção discute as convenções de nomenclatura de arquivos para transferências AS2.

Para Transferência de Arquivos de entrada, observe o seguinte:

  • Você especifica o diretório base em um contrato. O diretório base é o nome do bucket do Amazon S3 combinado com um prefixo, se houver. Por exemplo, ./amzn-s3-demo-bucket/AS2-folder

  • Se um arquivo de entrada for processado com êxito, o arquivo (e o arquivo JSON correspondente) será salvo na pasta /processed. Por exemplo, ./amzn-s3-demo-bucket/AS2-folder/processed

    O arquivo JSON contém os seguintes campos:

    • agreement-id

    • as2-from

    • as2-to

    • as2-message-id

    • transfer-id

    • client-ip

    • connector-id

    • failure-message

    • file-path

    • message-subject

    • mdn-message-id

    • mdn-subject

    • requester-file-name

    • requester-content-type

    • server-id

    • status-code

    • failure-code

    • transfer-size

  • Se um arquivo de entrada não puder ser processado com êxito, o arquivo (e o arquivo JSON correspondente) será salvo na pasta /failed. Por exemplo, ./amzn-s3-demo-bucket/AS2-folder/failed

  • O arquivo transferido é armazenado na pasta processed como original_filename.messageId.original_extension. Ou seja, o ID da mensagem para a transferência é anexado ao nome do arquivo, antes da extensão original.

  • Um arquivo JSON é criado e salvo como original_filename.messageId.original_extension.json. Além do ID da mensagem que está sendo adicionado, a string .json é anexada ao nome do arquivo transferido.

  • Um arquivo de Aviso de Disposição de Mensagens (MDN) é criado e salvo como original_filename.messageId.original_extension.mdn. Além do ID da mensagem que está sendo adicionado, a string .mdn é anexada ao nome do arquivo transferido.

  • Se houver um arquivo de entrada chamado ExampleFileInS3Payload.dat, os seguintes arquivos serão criados:

    • ArquivoExampleFileInS3Payload.c4d6b6c7-23ea-4b8c-9ada-0cb811dc8b35@44313c54b0a46a36.dat

    • JSONExampleFileInS3Payload.c4d6b6c7-23ea-4b8c-9ada-0cb811dc8b35@44313c54b0a46a36.dat.json

    • MDNExampleFileInS3Payload.c4d6b6c7-23ea-4b8c-9ada-0cb811dc8b35@44313c54b0a46a36.dat.mdn

Para transferências de saída, a nomenclatura é semelhante, com a diferença de que não há arquivo de mensagem de entrada e, além disso, a ID de transferência da mensagem transferida é adicionada ao nome do arquivo. O ID de transferência é retornado pela operação API StartFileTransfer (ou quando outro processo ou script chama essa operação).

  • O transfer-id é um identificador associado a uma Transferência de Arquivos. Todas as solicitações que fazem parte de uma StartFileTransfer chamada compartilham um transfer-id.

  • O diretório base é o mesmo que o caminho que você usa para o arquivo de origem. Ou seja, o diretório base é o caminho que você especifica na operação ou no start-file-transfer AWS CLI comando da StartFileTransfer API. Por exemplo:

    aws transfer start-file-transfer --send-file-paths /amzn-s3-demo-bucket/AS2-folder/file-to-send.txt

    Se você executar esse comando, os arquivos MDN e JSON serão salvos em /amzn-s3-demo-bucket/AS2-folder/processed (para transferências bem-sucedidas) ou /amzn-s3-demo-bucket/AS2-folder/failed (para transferências malsucedidas).

  • Um arquivo JSON é criado e salvo como original_filename.transferId.messageId.original_extension.json.

  • Um arquivo MDN é criado e salvo como original_filename.transferId.messageId.original_extension.mdn.

  • Se houver um arquivo de saída chamado ExampleFileOutTestOutboundSyncMdn.dat, os seguintes arquivos serão criados:

    • JSONExampleFileOutTestOutboundSyncMdn.dedf4601-4e90-4043-b16b-579af35e0d83.fbe18db8-7361-42ff-8ab6-49ec1e435f34@c9c705f0baaaabaa.dat.json

    • MDNExampleFileOutTestOutboundSyncMdn.dedf4601-4e90-4043-b16b-579af35e0d83.fbe18db8-7361-42ff-8ab6-49ec1e435f34@c9c705f0baaaabaa.dat.mdn

Você também pode verificar os CloudWatch registros para ver os detalhes de suas transferências, incluindo as que falharam.

Códigos de status

A tabela a seguir lista todos os códigos de status que podem ser registrados nos CloudWatch registros quando você ou seu parceiro enviam uma mensagem AS2. Diferentes etapas de processamento de mensagens se aplicam a diferentes tipos de mensagens e são destinadas somente ao monitoramento. Os estados COMPLETED e FAILED representam a etapa final do processamento e são visíveis nos arquivos JSON.

Código Description Processamento concluído?
PROCESSANDO A mensagem está sendo convertida em seu formato final. Por exemplo, as etapas de descompressão e descriptografia têm esse status. Não
MDN_TRANSMITEM O processamento de mensagens está enviando uma resposta MDN. Não
MDN_RECEIVE O processamento de mensagens está recebendo uma resposta MDN. Não
CONCLUÍDO O processamento da mensagem foi concluído com êxito. Esse estado inclui quando um MDN é enviado para uma mensagem de entrada ou para verificação de mensagens enviadas pelo MDN. Sim
FAILED O processamento da mensagem falhou. Para obter uma lista de códigos de erro, consulteCódigos de erro AS2. Sim

Arquivos JSON de amostra

Esta seção lista exemplos de arquivos JSON para transferências de entrada e saída, incluindo arquivos de amostra para transferências bem-sucedidas e transferências que falham.

Exemplo de arquivo de saída que foi transferido com sucesso:

{ "requester-content-type": "application/octet-stream", "message-subject": "File xyzTest from MyCompany_OID to partner YourCompany", "requester-file-name": "TestOutboundSyncMdn-9lmCr79hV.dat", "as2-from": "MyCompany_OID", "connector-id": "c-c21c63ceaaf34d99b", "status-code": "COMPLETED", "disposition": "automatic-action/MDN-sent-automatically; processed", "transfer-size": 3198, "mdn-message-id": "OPENAS2-11072022063009+0000-df865189-1450-435b-9b8d-d8bc0cee97fd@PartnerA_OID_MyCompany_OID", "mdn-subject": "Message be18db8-7361-42ff-8ab6-49ec1e435f34@c9c705f0baaaabaa has been accepted", "as2-to": "PartnerA_OID", "transfer-id": "dedf4601-4e90-4043-b16b-579af35e0d83", "file-path": "/amzn-s3-demo-bucket/as2testcell0000/openAs2/TestOutboundSyncMdn-9lmCr79hV.dat", "as2-message-id": "fbe18db8-7361-42ff-8ab6-49ec1e435f34@c9c705f0baaaabaa", "timestamp": "2022-07-11T06:30:10.791274Z" }

Exemplo de arquivo de saída que foi transferido sem sucesso:

{ "failure-code": "HTTP_ERROR_RESPONSE_FROM_PARTNER", "status-code": "FAILED", "requester-content-type": "application/octet-stream", "subject": "Test run from Id da86e74d6e57464aae1a55b8596bad0a to partner 9f8474d7714e476e8a46ce8c93a48c6c", "transfer-size": 3198, "requester-file-name": "openAs2TestOutboundWrongAs2Ids-necco-3VYn5n8wE.dat", "as2-message-id": "9a9cc9ab-7893-4cb6-992a-5ed8b90775ff@718de4cec1374598", "failure-message": "http://Test123456789.us-east-1.elb.amazonaws.com:10080 returned status 500 for message with ID 9a9cc9ab-7893-4cb6-992a-5ed8b90775ff@718de4cec1374598", "transfer-id": "07bd3e07-a652-4cc6-9412-73ffdb97ab92", "connector-id": "c-056e15cc851f4b2e9", "file-path": "/amzn-s3-demo-bucket-4c1tq6ohjt9y/as2IntegCell0002/openAs2/openAs2TestOutboundWrongAs2Ids-necco-3VYn5n8wE.dat", "timestamp": "2022-07-11T21:17:24.802378Z" }

Exemplo de arquivo de entrada que foi transferido com sucesso:

{ "requester-content-type": "application/EDI-X12", "subject": "File openAs2TestInboundAsyncMdn-necco-5Ab6bTfCO.dat sent from MyCompany to PartnerA", "client-ip": "10.0.109.105", "requester-file-name": "openAs2TestInboundAsyncMdn-necco-5Ab6bTfCO.dat", "as2-from": "MyCompany_OID", "status-code": "COMPLETED", "disposition": "automatic-action/MDN-sent-automatically; processed", "transfer-size": 1050, "mdn-subject": "Message Disposition Notification", "as2-message-id": "OPENAS2-11072022233606+0000-5dab0452-0ca1-4f9b-b622-fba84effff3c@MyCompany_OID_PartnerA_OID", "as2-to": "PartnerA_OID", "agreement-id": "a-f5c5cbea5f7741988", "file-path": "processed/openAs2TestInboundAsyncMdn-necco-5Ab6bTfCO.OPENAS2-11072022233606+0000-5dab0452-0ca1-4f9b-b622-fba84effff3c@MyCompany_OID_PartnerA_OID.dat", "server-id": "s-5f7422b04c2447ef9", "timestamp": "2022-07-11T23:36:36.105030Z" }

Exemplo de arquivo de entrada que foi transferido sem sucesso:

{ "failure-code": "INVALID_REQUEST", "status-code": "FAILED", "subject": "Sending a request from InboundHttpClientTests", "client-ip": "10.0.117.27", "as2-message-id": "testFailedLogs-TestRunConfig-Default-inbound-direct-integ-0c97ee55-af56-4988-b7b4-a3e0576f8f9c@necco", "as2-to": "0beff6af56c548f28b0e78841dce44f9", "failure-message": "Unsupported date format: 2022/123/456T", "agreement-id": "a-0ceec8ca0a3348d6a", "as2-from": "ab91a398aed0422d9dd1362710213880", "file-path": "failed/01187f15-523c-43ac-9fd6-51b5ad2b08f3.testFailedLogs-TestRunConfig-Default-inbound-direct-integ-0c97ee55-af56-4988-b7b4-a3e0576f8f9c@necco", "server-id": "s-0582af12e44540b9b", "timestamp": "2022-07-11T06:30:03.662939Z" }