Está a ver a documentação do Apigee e do Apigee Hybrid.
Ver documentação do
Apigee Edge.
ExecutionFailed
Código de erro
steps.jsonthreatprotection.ExecutionFailed
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: error_description at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Tipos de erros e possíveis causas
A política JSONThreatProtection pode gerar muitos tipos diferentes de erros ExecutionFailed. A tabela abaixo apresenta os diferentes tipos de erros e as respetivas causas possíveis:
Tipo de erro | Causa |
O comprimento do nome da entrada do objeto foi excedido | O comprimento máximo da string permitido no nome de entrada de um objeto foi excedido. |
Número de entradas de objetos excedido | O número máximo de entradas permitidas num objeto foi excedido. |
Excedeu a contagem de elementos da matriz | O número máximo de elementos permitidos numa matriz foi excedido. |
Profundidade do contentor excedida | A profundidade de aninhamento máxima permitida foi excedida. |
Comprimento do valor da string excedido | O comprimento máximo permitido para um valor de string foi excedido. |
Objeto JSON inválido | O payload JSON de entrada é inválido. |
O comprimento do nome da entrada do objeto foi excedido
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded object entry name length at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded object entry name length at line 2",
"detail": {
"errorcode": "steps.jsonthreatprotection.ExecutionFailed"
}
}
}
Causa
Este erro ocorre se o payload da mensagem de entrada especificado pelo elemento <Source>
contiver um objeto JSON com um nome de propriedade que exceda o comprimento máximo especificado no elemento <ObjectEntryNameLength>
.
Por exemplo, se o elemento <ObjectEntryNameLength>
for especificado como 5 na política, mas o payload da mensagem de entrada tiver uma propriedade JSON cujo nome exceda 5 carateres, este erro é gerado.
Diagnóstico
Examine a mensagem de erro para identificar o nome da política JSONThreatProtection e o número da linha onde ocorre o nome da entrada longo. Por exemplo, na seguinte mensagem de erro, o nome da política JSONThreatProtection é
JSON-Threat-Protection-1
e o número da linha na carga útil é 2.JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry name length at line 2
Examine a política que identificou no passo 1 e tome nota do valor especificado no elemento
<ObjectEntryNameLength>
.Por exemplo, na seguinte política JSONThreatProtection,
<ObjectEntryNameLength>
está definido como5
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>12</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>5</ObjectEntryNameLength> <Source>request</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
Examine o número da linha específico (identificado no passo 1) da carga útil de entrada e verifique se o comprimento do nome do objeto é superior ao valor especificado no elemento
<ObjectEntryNameLength>
(identificado no passo 2). Se o comprimento do nome do objeto exceder esse número, essa é a causa do erro.Segue-se um exemplo de um payload de entrada:
{ "number" : 500, "string" : "text" }
A carga útil JSON apresentada acima tem uma propriedade denominada
number
na linha 2 com 6 carateres (o comprimento do nome é 6). Uma vez que o comprimento do nome do objeto é superior a 5 (o valor especificado para o elemento<ObjectEntryNameLength>
), recebe o seguinte erro:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry name length at line 2
Resolução
Se a política JSONThreatProtection se destinar a proteger contra payloads com nomes de entradas de objetos que excedam o valor definido, a mensagem de erro é esperada. Neste caso, não é necessária nenhuma ação adicional.
No entanto, se determinar que é possível especificar nomes de entradas de objetos mais longos no payload sem qualquer consequência, modifique o <ObjectEntryNameLength>
para um valor adequado com base nos seus requisitos.
Por exemplo, se considerar que pode permitir nomes de objetos com um comprimento máximo de 10 carateres, modifique a política JSONThreatProtection da seguinte forma:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
<DisplayName>JSON Threat Protection-1</DisplayName>
<Properties/>
<ArrayElementCount>3</ArrayElementCount>
<ContainerDepth>12</ContainerDepth>
<ObjectEntryCount>5</ObjectEntryCount>
<ObjectEntryNameLength>10</ObjectEntryNameLength>
<Source>request</Source>
<StringValueLength>50</StringValueLength>
</JSONThreatProtection>
O número de entradas de objetos foi excedido
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded object entry count at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded object entry count at line 7",
"detail": {
"errorcode": "steps.jsonthreatprotection.ExecutionFailed"
}
}
}
Causa
Este erro ocorre se o payload da mensagem de entrada especificado pelo elemento <Source>
contiver um objeto JSON com mais entradas (propriedades) do que o valor especificado no elemento <ObjectEntryCount>
da política.
Por exemplo, se o elemento <ObjectEntryCount>
for 5, mas o payload JSON de entrada tiver mais de 5 entradas, é apresentado este erro.
Diagnóstico
Examine a mensagem de erro para identificar o nome da política JSONThreatProtection e o número da linha em que a contagem de entradas é excedida. Por exemplo, na seguinte mensagem de erro, o nome da política é
JSON-Threat-Protection-1
e o número da linha no payload é7
:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry count at line 7
Tome nota do valor especificado no elemento
<ObjectEntryCount>
da política (identificado no passo 1).No exemplo de política seguinte,
<ObjectEntryCount>
está definido como5
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>12</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>6</ObjectEntryNameLength> <Source>request</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
Examine o número de linha específico (identificado no passo 1) da carga útil de entrada e verifique se o número de entidades na carga útil é superior ao valor especificado para o elemento
<ObjectEntryCount>
(identificado no passo 2). Se o número de objetos exceder a contagem de entradas de objetos, essa é a causa do erro.Segue-se um exemplo de um payload de entrada:
{ "name" : "John", "id" : 234687, "age" : 31, "city" : "New York", "country" : "USA", "company" : "Google" }
No payload de JSON apresentado acima, a 6.ª entrada ocorre na linha n.º 7 (company). Uma vez que a contagem das entradas de objetos no payload JSON de entrada é superior a 5 (o valor especificado para o elemento
<ObjectEntryCount>
), recebe o seguinte erro:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry count at line 7
Resolução
Se a política JSONThreatProtection se destinar a proteger contra payloads com um número de entradas de objetos que excede um limite específico, a mensagem de erro é esperada. Neste caso, não tem de fazer mais nada.
No entanto, se determinar que é possível incluir mais entradas de objetos no payload sem qualquer consequência, modifique o <ObjectEntryCount>
para um valor adequado com base nos seus requisitos.
Por exemplo, se considerar que pode permitir até 10 entradas de objetos, modifique a política JSONThreatProtection da seguinte forma:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
<DisplayName>JSON Threat Protection-1</DisplayName>
<Properties/>
<ArrayElementCount>3</ArrayElementCount>
<ContainerDepth>12</ContainerDepth>
<ObjectEntryCount>10</ObjectEntryCount>
<ObjectEntryNameLength>6</ObjectEntryNameLength>
<Source>request</Source>
<StringValueLength>50</StringValueLength>
</JSONThreatProtection>
Excedeu a contagem de elementos da matriz
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded array element count at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded array element count at line 3",
"detail": {
"errorcode": "steps.jsonthreatprotection.ExecutionFailed"
}
}
}
Causa
Este erro ocorre se a carga útil da mensagem de entrada especificada pelo elemento <Source>
contiver uma matriz JSON com um número de elementos superior ao número especificado no elemento <ArrayElementCount>
da política.
Por exemplo, se o elemento <ArrayElementCount>
for especificado como 3
, mas o payload de entrada tiver uma matriz JSON com mais de 3 elementos, este erro é lançado.
Diagnóstico
Examine a mensagem de erro para identificar o nome da política e o número da linha onde o comprimento da matriz é excedido. Por exemplo, na seguinte mensagem de erro, o nome da política é
JSON-Threat-Protection-1
e o número da linha no payload é3
:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded array element count at line 3
Tome nota do valor especificado para o elemento
<ArrayElementCount>
da política (identificado no passo 1).No exemplo de política JSONThreatProtection seguinte,
<ArrayElementCount>
está definido como3
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>12</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>6</ObjectEntryNameLength> <Source>request</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
Examine o número da linha específico (identificado no passo 1) da carga útil de entrada e verifique se a matriz especificada aí tem uma contagem superior ao número especificado no elemento
<ArrayElementCount>
(identificado no passo 2). Se o número de elementos da matriz exceder a contagem, essa é a causa do erro.Segue-se um exemplo de um payload de entrada:
{ "name":"Ford", "models":[ "Mustang", "Endeavour", "Fiesta", "EcoSport", "Focus" ] }
O payload JSON apresentado acima tem 5 elementos na matriz denominada
models
na linha 3. Uma vez que o número de elementos da matriz é superior a 3 (o valor especificado para o elemento<ArrayElementCount>
), recebe o seguinte erro:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded array element count at line 3
Resolução
Se a política JSONThreatProtection se destinar a proteger contra payloads com um limite específico de contagem de matrizes, a mensagem de erro é esperada. Neste caso, não é necessária nenhuma ação adicional.
No entanto, se determinar que pode permitir um número superior de elementos numa matriz, modifique <ArrayElementCount>
para um valor adequado com base nos seus requisitos.
Por exemplo, se considerar que pode permitir até 5 elementos de matriz, modifique a política da seguinte forma:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
<DisplayName>JSON Threat Protection-1</DisplayName>
<Properties/>
<ArrayElementCount>5</ArrayElementCount>
<ContainerDepth>12</ContainerDepth>
<ObjectEntryCount>5</ObjectEntryCount>
<ObjectEntryNameLength>6</ObjectEntryNameLength>
<Source>request</Source>
<StringValueLength>50</StringValueLength>
</JSONThreatProtection>
Profundidade do contentor excedida
Corpo da resposta de erro
O tráfego de tempo de execução devolve um código de resposta 500 com o seguinte erro:
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded container depth at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded container depth at line 5",
"detail": {
"errorcode": "steps.jsonthreatprotection.ExecutionFailed"
}
}
}
Causa
Este erro ocorre se o payload da mensagem de entrada especificado pelo elemento <Source>
contiver um objeto JSON que contenha elementos JSON com uma profundidade do contentor que exceda a profundidade máxima do contentor especificada no elemento <ContainerDepth>
da política. A profundidade do contentor é a profundidade aninhada máxima permitida para elementos JSON. Por exemplo, uma matriz que contenha um objeto que contenha um objeto resultaria numa profundidade de contenção de 3.
Por exemplo, se o elemento <ContainerDepth>
for 3
, mas o payload de entrada tiver uma profundidade do contentor que excede este limite, é gerado este erro.
Diagnóstico
Examine a mensagem de erro para identificar o nome da política JSONThreatProtection e o número da linha onde a profundidade do contentor é excedida. Por exemplo, na seguinte mensagem de erro, o nome da política é
JSON-Threat-Protection-1
e o número da linha no payload é5
.JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded container depth at line 5
Tome nota do valor especificado para o elemento
<ContainerDepth>
(identificado no passo 1).No exemplo de política JSONThreatProtection seguinte,
<ContainerDepth>
está definido como5
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>5</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>20</ObjectEntryNameLength> <Source>request</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
Examine o número de linha específico (identificado no passo 1) da carga útil de entrada e verifique se a profundidade do contentor na carga útil é superior ao valor especificado no elemento
<ContainerDepth>
(identificado no passo 2). Se a profundidade do contentor exceder a contagem, essa é a causa do erro.Segue-se um exemplo de um payload de entrada:
{ "ContainerDepth2":[ { "ContainerDepth4":[ { "ContainerDepth6":[ "1", "2" ] } ] } ] }
O payload de JSON apresentado acima tem uma profundidade do contentor de 6 na linha 5. Uma vez que a profundidade é superior a 5, o valor especificado para o elemento
<ContainerDepth>
da política JSONThreatProtection gera o seguinte erro:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded container depth at line 5
Resolução
Se a política JSONThreatProtection se destinar a proteger contra payloads com profundidades de contentores que excedam o valor especificado, a mensagem de erro é esperada. Neste caso, não é necessária nenhuma ação adicional.
No entanto, se determinar que profundidades do contentor mais elevadas são aceitáveis, modifique o <ContainerDepth>
para um valor adequado com base nos seus requisitos.
Por exemplo, se considerar que pode permitir profundidades de contentores até 10, modifique a política da seguinte forma:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
<DisplayName>JSON Threat Protection-1</DisplayName>
<Properties/>
<ArrayElementCount>3</ArrayElementCount>
<ContainerDepth>10</ContainerDepth>
<ObjectEntryCount>5</ObjectEntryCount>
<ObjectEntryNameLength>20</ObjectEntryNameLength>
<Source>request</Source>
<StringValueLength>50</StringValueLength>
</JSONThreatProtection>
Comprimento do valor da string excedido
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded string value length at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded string value length at line 3",
"detail": {
"errorcode": "steps.jsonthreatprotection.ExecutionFailed"
}
}
}
Causa
Este erro ocorre se o payload da mensagem de entrada especificado pelo elemento <Source>
contiver elementos JSON com valores que têm mais carateres do que o permitido pelo elemento <StringValueLength>
.
Por exemplo, se o elemento <StringValueLength>
estiver definido como 50
na política, mas a carga útil de entrada tiver um ou mais elementos cujos valores contenham mais de 50 carateres, é gerado este erro.
Diagnóstico
Examine a mensagem de erro para identificar o nome da política e o número da linha onde o comprimento da string é excedido. No exemplo seguinte, o nome da política é
JSON-Threat-Protection-1 and
line no payload3
.JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded string value length at line 3
Tome nota do valor especificado para o elemento
<StringValueLength>
no (identificado no passo 1).No exemplo de política JSONThreatProtection seguinte,
<StringValueLength>
está definido como50
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>5</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>20</ObjectEntryNameLength> <Source>request</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
Examine o número de linha específico (identificado no passo 1) da carga útil de entrada e verifique se o comprimento do valor é superior ao número de carateres especificado para o elemento
<StringValueLength>
(identificado no passo 2). Se o comprimento do valor exceder o limite, essa é a causa do erro.Segue-se um exemplo de um payload de entrada:
{ "Country": "New Zealand", "Place Name": "Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu" }
O payload JSON apresentado acima tem um objeto denominado
Place Name
cujo valorTaumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu
tem 85 carateres na linha 3. Uma vez que o comprimento do valor é superior a 50, o valor especificado no elemento<StringValueLength>
, recebe o seguinte erro:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded string value length at line 3
Resolução
Se a política JSONThreatProtection se destinar a proteger contra payloads com valores que excedam um comprimento de string específico, a mensagem de erro é esperada. Neste caso, não é necessária nenhuma ação adicional.
No entanto, se determinar que é possível especificar um comprimento do valor mais longo no payload, modifique o <StringValueLength>
para um valor adequado com base nos seus requisitos.
Por exemplo, se considerar que pode permitir um valor com um comprimento máximo de 90, modifique a política da seguinte forma:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
<DisplayName>JSON Threat Protection-1</DisplayName>
<Properties/>
<ArrayElementCount>3</ArrayElementCount>
<ContainerDepth>5</ContainerDepth>
<ObjectEntryCount>5</ObjectEntryCount>
<ObjectEntryNameLength>20</ObjectEntryNameLength>
<Source>request</Source>
<StringValueLength>90</StringValueLength>
</JSONThreatProtection>
Não é um objeto JSON válido
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: string: at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: Expecting : at line 3",
"detail": {
"errorcode": "steps.jsonthreatprotection.ExecutionFailed"
}
}
}
Causa
Este erro ocorre se a carga útil da mensagem de entrada especificada pelo elemento <Source>
na política JSONThreatProtection não for um objeto JSON válido.
Diagnóstico
Examine a mensagem de erro para identificar o nome da política e o número da linha onde o erro ocorreu. No exemplo seguinte, o nome da política é
JSON-Threat-Protection-1 and
line no payload2
.JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: Expecting : at line 3
Examine o número da linha específico (identificado no passo 1) do payload de entrada e verifique se o objeto JSON transmitido no payload é, de facto, um objeto JSON válido.
Segue-se um exemplo de um payload de entrada:
{ "Longitude": 6.11499, "Latitude" 50.76891 }
No payload JSON apresentado acima, a linha 3 não tem
":"
(dois pontos). Uma vez que não é um objeto JSON válido, recebe o seguinte erro:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: Expecting : at line 3
Resolução
Certifique-se de que um payload JSON de entrada válido é transmitido a qualquer proxy de API que inclua a política JSONThreatProtection.
Para o exemplo descrito acima, modifique o payload JSON da seguinte forma:
{
"Longitude": 6.11499,
"Latitude" : 50.76891
}
SourceUnavailable
Código de erro
steps.jsonthreatprotection.SourceUnavailable
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]:: Source[var_name] is not available" "detail": { "errorcode": "steps.jsonthreatprotection.SourceUnavailable" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]::
Source requests is not available",
"detail": {
"errorcode": "steps.jsonthreatprotection.SourceUnavailable"
}
}
}
Causa
Este erro ocorre se a variável message especificada no elemento <Source>
da política JSONThreatProtection for:
- Fora do âmbito (não disponível no fluxo específico onde a política está a ser executada)
- Não é um dos valores válidos
request
,response
oumessage
Por exemplo, este erro ocorre se o elemento <Source>
na política estiver definido como uma variável que não existe no fluxo onde a política é executada.
Diagnóstico
Identifique o nome da política e o nome da variável de origem na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política é
JSON-Threat-Protection-1
e a variável Source érequests
:JSONThreatProtection[JSON-Threat-Protection-1]:: Source requests is not available
Examine o valor especificado para o elemento
<Source>
identificado no passo 1.No exemplo de política JSONThreatProtection seguinte, o elemento
<Source>
está definido comorequests
.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>5</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>20</ObjectEntryNameLength> <Source>requests</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
Os valores válidos para o elemento
<Source>
sãorequest
,response
oumessage
. Uma vez que requests não é um valor válido e não existe no fluxo em que a política está a ser executada, recebe o seguinte erro:JSONThreatProtection[JSON-Threat-Protection-1]:: Source requests is not available
Resolução
Certifique-se de que a variável definida no elemento <Source>
da política JSONThreatProtection com falha está definida como request
, response
ou message
e existe no fluxo onde a política é executada.
Para corrigir a política JSONThreatProtection de exemplo apresentada acima, pode modificar o elemento <Source>
para usar a variável request
, porque existe no fluxo de pedidos:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
<DisplayName>JSON Threat Protection-1</DisplayName>
<Properties/>
<ArrayElementCount>3</ArrayElementCount>
<ContainerDepth>5</ContainerDepth>
<ObjectEntryCount>5</ObjectEntryCount>
<ObjectEntryNameLength>20</ObjectEntryNameLength>
<Source>request</Source>
<StringValueLength>50</StringValueLength>
</JSONThreatProtection>
NonMessageVariable
Código de erro
steps.jsonthreatprotection.NonMessageVariable
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Variable var_name does not resolve to a Message" "detail": { "errorcode": "steps.jsonthreatprotection.NonMessageVariable" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Variable message.content does not resolve to a Message",
"detail": {
"errorcode": "steps.jsonthreatprotection.NonMessageVariable"
}
}
}
Causa
Este erro ocorre se o elemento <Source>
na política JSONThreatProtection estiver definido como uma variável que não seja do tipo message.
As variáveis de tipo de mensagem representam pedidos e respostas HTTP completos. As variáveis de fluxo do Apigee incorporadas request, response e message são do tipo message. Para saber mais sobre as variáveis de mensagens, consulte a referência de variáveis.
Diagnóstico
Identifique o nome da política JSONThreatProtection e o nome da variável de origem na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política é
JSON-Threat-Protection-1
e a variável Source émessage.content
:JSONThreatProtection[JSON-Threat-Protection-1]: Variable message.content does not resolve to a Message
Examine o elemento
<Source>
da política JSONThreatProtection (identificado no passo 1).No exemplo de política JSONThreatProtection seguinte,
<Source>
está definido comomessage.content
em vez demessage
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSON Threat Protection-1</DisplayName> <Properties/> <ArrayElementCount>3</ArrayElementCount> <ContainerDepth>5</ContainerDepth> <ObjectEntryCount>5</ObjectEntryCount> <ObjectEntryNameLength>20</ObjectEntryNameLength> <Source>message.content</Source> <StringValueLength>50</StringValueLength> </JSONThreatProtection>
Uma vez que
message.content
não é do tipo mensagem, recebe o erro:JSONThreatProtection[JSON-Threat-Protection-1]: Variable message.content does not resolve to a Message
Resolução
Certifique-se de que o elemento <Source>
na política JSONThreatProtection com falha está definido como uma variável de fluxo do tipo message que existe no fluxo onde a política é executada.
Para corrigir a política, pode modificar o elemento <Source>
para especificar uma variável do tipo mensagem. Por exemplo, no JSONThreatProtection com falha, pode especificar o elemento <Source>
como message
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1">
<DisplayName>JSON Threat Protection-1</DisplayName>
<Properties/>
<ArrayElementCount>3</ArrayElementCount>
<ContainerDepth>5</ContainerDepth>
<ObjectEntryCount>5</ObjectEntryCount>
<ObjectEntryNameLength>20</ObjectEntryNameLength>
<Source>message</Source>
<StringValueLength>50</StringValueLength>
</JSONThreatProtection>