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 nas mensagens Assign e Raise Fault

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

Com essa melhoria, não são necessárias soluções alternativas para garantir a formatação adequada das mensagens JSON, e as variáveis podem ser especificadas usando chaves sem criar um JSON inválido. Por exemplo, o comando 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 como está. 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 Assign Message e da política Raise Fault. (APIRT-1160)

Melhorias na política XML para JSON

A política XML para JSON foi aprimorada com os seguintes recursos. Você pode 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.
  • Remova ou elimine níveis da hierarquia do documento XML no documento JSON final.

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

Vários caracteres curinga em caminhos de recursos de produtos de API

Ao definir caminhos de recursos no produto de API, é possível incluir caracteres curinga em vários lugares de 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 esse lançamento, 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 e SHA512. O objeto crypto também permite receber a data em vários formatos. Para mais informações, consulte Modelo de objeto JavaScript. (APIRT-2886)

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

Ao fazer upload de um recurso JAR Java para um proxy de API, um código de status HTTP 400 será retornado (em vez de 500) se a versão do recurso Java for incompatível com a versão do Java compatível com o Edge, listada em Software 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ê 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, e não 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 do Cloud privado que têm proxies de API que levam mais tempo para serem executados. Por exemplo, digamos que você precise de proxies específicos para expirar em 3 minutos. Você pode usar uma nova propriedade api.timeout na configuração de um proxy de API. Veja como fazer isso com o exemplo de 3 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 comando a seguir define um proxy de API que expira depois de 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 ele 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)

Política de TLS/SSL para geração de registros 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 faria em um TargetEndpoint de proxy. No entanto, o TLS/SSL de registro de mensagens só é compatível com o 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 tempo de execução não falham durante a exclusão do truststore associado ou quando o certificado válido no truststore é 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 de "+" 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 Não é possível listar entradas em um cofre que tenha valor nulo em uma das entradas para organizações (CPS e não CPS)
MGMT-3226 As consultas no nível da organização/ambiente não devem extrair todos os dados, o que causa 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 superior a 16 MB. Essa correção resolve o problema.
AXAPP-2429 A API Analytics usando response_status_code retorna um erro de acesso a dados
AXAPP-2386 Corrigir conteúdo de relatórios vazios nos relatórios diários por e-mail do Analytics
AXAPP-2347 Não estou recebendo e-mails diários com o resumo das análises
APIRT-3141 As chamadas em Java falham ao chamar new ExecutionResult() , porque o construtor foi definido como particular
APIRT-3140 A política ServiceCallout não está funcionando 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 uso da CPU e parou de veicular tráfego
APIRT-3016 Erros de "Tempo limite da chamada excedido" 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 cabeçalho Content-Type compatível com FHIR 'application/json+fhir'
APIRT-2946 A política OAuthV2-RefreshToken não oculta atributos mesmo quando a exibição está definida como false
APIRT-2908 É necessário aplicar o TLS 1.2 para chamadas de API internas após a atualização do TLS 1.2 no virtualhost
APIRT-2901 As respostas compactadas com Gzip 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 rastreamento
APIRT-2825 Erro gramatical na resposta de erro do token de acesso
APIRT-2750 Muitas falhas de tráfego 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 do OAuthV2 retorna um cabeçalho WWW-Authenticate malformado
APIRT-2491 Falha na atualização do TargetServer devido ao tempo limite de RPC entre o gerenciamento e mps
APIRT-2386 Um escopo de string vazia é criado em um produto de API com um campo "Escopos OAuth permitidos" vazio
APIRT-2383 As políticas de transformação XSL não parecem registrar dados quando ocorre um erro
APIRT-2364 Variáveis de fluxo de falha do OAuth não são atualizadas em caso de erro
APIRT-2216 Eventos enviados pelo servidor: fluxo de eventos com problemas em produção
APIRT-2079 A chamada cURL de DEBUG 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 do 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)