17/08/16 - Notas de lançamento do Apigee Edge para nuvem pública

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X
.info

Na terça-feira, 30 de agosto de 2016, lançamos uma nova versão do Apigee Edge para nuvem pública.

Novos recursos e atualizações

Veja a seguir os novos recursos e atualizações desta versão.

Payloads JSON em Atribuir mensagem e Gerar falha

Ao definir um payload JSON usando uma política de Atribuir mensagem ou Gerar falha, os usuários às vezes precisavam usar soluções alternativas para garantir que uma mensagem JSON fosse formatada corretamente no ambiente de execução, como iniciar o payload com uma barra invertida "\" ou especificar um variablePrefix e variableSuffix no elemento Payload, mesmo que nenhuma variável fosse usada na mensagem.

Com esse aprimoramento, não são necessárias soluções alternativas para garantir a formatação adequada da mensagem JSON, e variáveis podem ser especificadas usando chaves sem criar um JSON inválido. Por exemplo, o código a seguir insere o valor de message.content na mensagem JSON:

<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>

Se você usou uma solução alternativa, seu código vai continuar funcionando no estado em que se encontra. Também é possível usar variablePrefix e variableSuffix em vez de chaves para indicar variáveis.

Consulte o elemento <Set><Payload> nos documentos de referência da política de Atribuir mensagem e Gerar falha. (APIRT-1160)

Aprimoramentos da política XML para JSON

A política XML para JSON foi aprimorada com os seguintes recursos. É possível configurar a política para:

  • Tratar alguns elementos XML como matrizes durante a conversão, o que coloca os valores entre colchetes "[ ]" no documento JSON.
  • Remover ou eliminar níveis da hierarquia de documentos XML no documento JSON final.

Para mais informações, consulte XML para JSON policy. (APIRT-1144)

Vários curingas em caminhos de recursos de produtos de API

Ao definir caminhos de recursos no produto de API, é possível incluir curingas em vários lugares em um caminho de recurso. Por exemplo, /team/*/invoices/** permite chamadas de API com qualquer valor após /team e qualquer caminho de recurso após invoices/. Um URI permitido em uma chamada de API seria proxyBasePath/team/finance/invoices/company/a.

Se, após essa versão, os caminhos de recursos do produto de API pararem de funcionar como esperado, defina a seguinte propriedade na sua organização para reverter ao comportamento anterior: features.enableStandardWildCardMatchForAPIProductResources = true

(MGMT-3273)

Funções criptográficas em JavaScript

Um novo conjunto de funções JavaScript crypto de alta performance está disponível para criar, receber e atualizar os seguintes objetos de hash: MD5, SHA-1, SHA256, SHA512. O objeto criptográfico também permite receber a data em vários formatos. Para mais informações, consulte o modelo de objeto JavaScript. (APIRT-2886)

Verificação da versão do JAR de destaque de Java

Ao fazer o upload de um recurso JAR Java para um proxy de API, um código de status HTTP 400 é retornado (em vez de um 500) se a versão do recurso Java for incompatível com a versão do Java com suporte do Edge, listada em Software com suporte e versões compatíveis. (MGMT-3420)

Validação de recursos de proxy de API

Quando você tem arquivos de recursos de proxy de API (como JARs JavaScript ou Java) armazenados no escopo do ambiente ou da organização, a estrutura de validação não exige mais que você também inclua esses recursos no nível do proxy de API em um pacote de proxy para que a importação passe na validação. A validação de recursos agora ocorre no momento da implantação, não no momento da importação. (MGMT-1430)

Configurar o tempo limite para proxies de API individuais

É possível configurar proxies de API para expirar após um período especificado (com um status de tempo limite de gateway 504 ). O principal caso de uso é para clientes da nuvem privada que têm proxies de API que levam mais tempo para serem executados. Por exemplo, digamos que você precise que proxies específicos expirem em três minutos. É possível usar uma nova api.timeout propriedade na configuração de um proxy de API. Veja como fazer isso com o exemplo de três minutos:

  1. Primeiro, configure o balanceador de carga, o roteador e o processador de mensagens para expirar após três minutos.
  2. Em seguida, configure os proxies relevantes para expirar em três minutos. Especifique o valor em milissegundos. Exemplo:
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. No entanto, aumentar os tempos limite do sistema pode causar problemas de desempenho, porque todos os proxies sem uma configuração api.timeout usam os novos tempos limite maiores do balanceador de carga, roteador e processador de mensagens. Assim, configure outros proxies de API que não exigem tempos limite mais longos para usar tempos limite mais baixos. Por exemplo, o código a seguir define um proxy de API para expirar após um minuto:
    <Property name="api.timeout">60000</Property>

Os clientes do Cloud, que não podem modificar os tempos limite do Edge, também podem configurar um tempo limite do proxy de API, desde que o tempo limite seja menor que o tempo limite padrão do processador de mensagens do Edge de 57 segundos.

Não é possível preencher o valor com uma variável. Essa propriedade é abordada na Referência de propriedades do endpoint. (APIRT-1778)

TLS/SSL para a política de registro de mensagens

<KeyStore> e <TrustStore> podem ser definidos na configuração SSLInfo na política de registro de mensagens, permitindo TLS/SSL unidirecional e bidirecional com um serviço de registro. Você configura SSLInfo na política de registro de mensagens da mesma forma que você faria em um TargetEndpoint de proxy TargetEndpoint. No entanto, o TLS/SSL de registro de mensagens oferece suporte apenas ao protocolo TCP. (APIRT-1858)

Bugs corrigidos

Os bugs a seguir foram corrigidos nesta versão. Esta lista é principalmente para usuários que verificam se os tíquetes de suporte foram corrigidos. Ela não foi projetada para fornecer informações detalhadas a todos os usuários.

ID do problema Descrição
SECENG-609 As chamadas de ambiente de execução não falham durante a exclusão do keystore associado ou quando o certificado válido no keystore é excluído
MGMT-3404 A visualização/recuperação de registros do Node.js e a implantação de proxies são muito lentas
MGMT-3400 A chamada para a API de gerenciamento /userroles falha se o usuário que faz a chamada tiver um "+" sinal no nome
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1, ao importar um pacote de proxy de API que contém o diretório resources/node/resources
MGMT-3364 OAuthV2: verificação de redirect_uri
MGMT-3319 As entradas de lista em um cofre que tem valor nulo em uma das entradas não funcionam para organizações (CPS e não CPS)
MGMT-3226 A consulta no nível da organização/ambiente não deve extrair todos os dados, causando falha na API
A versão 160302 tinha um bug em que a listagem de recursos no nível da organização/ambiente falhava se o tamanho cumulativo dos recursos fosse maior que 16 MB. Essa correção resolve o problema.
AXAPP-2429 A API Analytics que usa response_status_code retorna erro de acesso aos dados
AXAPP-2386 Corrigir o conteúdo de relatórios vazios em relatórios de e-mail diários do Analytics
AXAPP-2347 Não estou recebendo e-mails de resumo diário do Analytics
APIRT-3141 Os destaques de Java falham ao chamar new ExecutionResult() , porque o construtor foi tornado particular
APIRT-3140 A política ServiceCallout não funciona em chamadas de API HEAD
APIRT-3131 createdBy incorreto mostrado para um proxy de API ao usar a monetização com um provedor de autenticação externo
APIRT-3121 A mudança feita no arquivo de recursos da organização não é 100% eficaz
APIRT-3117 O MP atingiu 100% de utilização da CPU e parou de veicular tráfego
APIRT-3016 Erros de "tempo limite de chamada" do roteador em implantações
APIRT-2975 Falha no upload do pacote de certificados
APIRT-2955 Não é possível mascarar determinados atributos de dados de resposta JSON para o cabeçalho Content-Type compatível com FHIR 'application/json+fhir'
APIRT-2946 A política OAuthV2-RefreshToken não oculta atributos, mesmo que a exibição esteja definida como "false"
APIRT-2908 É necessário aplicar o TLS1.2 para chamadas de API internas após a atualização do TLS1.2 no host virtual
APIRT-2901 As respostas compactadas retornadas do cache são compactadas duas vezes
APIRT-2873 Os MPs geram NullPointerException relacionados a VerifyAPIKey após a exclusão de produtos/desenvolvedores/proxies
APIRT-2871 Políticas IOIntensive aparecendo duas vezes no Trace
APIRT-2825 Erro gramatical na resposta de erro do token de acesso
APIRT-2750 Falhas de tráfego altas em uma organização específica
APIRT-2685 O tráfego não pode fluir com um erro desconhecido sendo gerado
APIRT-2647 Erro"O fluxo de entrada subjacente retornou zero bytes" com nonprod/dev
APIRT-2630 Problemas intermitentes ao tentar ler o valor do cache
APIRT-2620 Pool de linhas de execução separado para algumas etapas de bloqueio
APIRT-2610 java.lang.ClassCastException com a política de cache de resposta
APIRT-2608 Erro de análise de cabeçalhos Last-Modified em políticas de cache de resposta
APIRT-2605 As variáveis"organization" e "environment" não podem ser substituídas por políticas
APIRT-2566 A política OAuthV2 retorna um cabeçalho WWW-Authenticate malformado
APIRT-2491 A atualização do TargetServer falhou devido ao tempo limite de RPC entre o gerenciamento e os MPs
APIRT-2386 Um escopo de string vazia é criado em um produto de API com escopos OAuth permitidos vazios
APIRT-2383 As políticas de transformação XSL não parecem registrar nenhum dado em caso de erro
APIRT-2364 As variáveis de fluxo de falha do OAuth não são atualizadas em caso de erro
APIRT-2216 Eventos enviados pelo servidor: o fluxo de eventos está com problemas na produção
APIRT-2079 A chamada cURL de depuração não para após o tempo limite expirar para a sessão criada
APIRT-1495 A proteção contra ameaças XML não detecta o Content-Type fhir
APIRT-347 A política XSL não é validada corretamente na importação (não atribui resultados a variáveis de saída conforme documentado)