

# InvokeWithResponseStream
<a name="API_InvokeWithResponseStream"></a>

Configure suas funções do Lambda para fazer o streaming de cargas úteis de resposta de volta aos clientes. Para obter mais informações, consulte [Configuração de uma função do Lambda para o streaming de respostas](https://docs.aws.amazon.com/lambda/latest/dg/configuration-response-streaming.html).

Essa operação exige permissão para a ação [lambda:InvokeFunction](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awslambda.html). Para obter detalhes sobre como configurar permissões para invocações entre contas, consulte [Conceder acesso de função a outras contas](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-xaccountinvoke).

## Sintaxe da Solicitação
<a name="API_InvokeWithResponseStream_RequestSyntax"></a>

```
POST /2021-11-15/functions/FunctionName/response-streaming-invocations?Qualifier=Qualifier HTTP/1.1
X-Amz-Invocation-Type: InvocationType
X-Amz-Log-Type: LogType
X-Amz-Client-Context: ClientContext

Payload
```

## Parâmetros da Solicitação de URI
<a name="API_InvokeWithResponseStream_RequestParameters"></a>

A solicitação usa os seguintes parâmetros de URI:

 ** [ClientContext](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-ClientContext"></a>
Até 3.583 bytes de dados codificados em base64 sobre o cliente que faz a invocação para transferir para a função no objeto de contexto.

 ** [FunctionName](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-FunctionName"></a>
O nome da função do Lambda.  

**Formatos de nome**
+  **Nome da função**: `my-function`.
+  **ARN da função**: `arn:aws:lambda:us-west-2:123456789012:function:my-function`.
+  **ARN parcial**: `123456789012:function:my-function`.
A restrição de comprimento se aplica apenas ao ARN completo. Se você especificar apenas o nome da função, ele será limitado a 64 caracteres.  
Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 170.  
Padrão: `(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_\.]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?`   
Exigido: Sim

 ** [InvocationType](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-InvocationType"></a>
Use uma das seguintes opções:  
+  `RequestResponse` (padrão): invoca a função de forma síncrona. Mantenha a conexão aberta até que a função retorne uma resposta ou o tempo limite expire. A resposta da operação da API inclui a resposta da função e dados adicionais.
+  `DryRun`: valida os valores de parâmetros e verifica se o perfil ou usuário do IAM tem permissão para invocar a função.
Valores Válidos: `RequestResponse | DryRun` 

 ** [LogType](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-LogType"></a>
Definir como `Tail` para incluir o log de execução na resposta. Aplica-se apenas a funções invocadas de forma síncrona.  
Valores Válidos: `None | Tail` 

 ** [Qualifier](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-Qualifier"></a>
O nome do alias.  
Restrições de Tamanho: Tamanho mínimo 1. Comprimento máximo de 128.  
Padrão: `(|[a-zA-Z0-9$_-]+)` 

## Corpo da Solicitação
<a name="API_InvokeWithResponseStream_RequestBody"></a>

A solicitação aceita os dados binários a seguir.

 ** [Payload](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-Payload"></a>
O JSON que você quer fornecer para sua função do Lambda como entrada.  
Você pode inserir o JSON diretamente. Por exemplo, `--payload '{ "key": "value" }'`. Também é possível especificar um caminho de arquivo. Por exemplo, `--payload file://payload.json`.

## Sintaxe da Resposta
<a name="API_InvokeWithResponseStream_ResponseSyntax"></a>

```
HTTP/1.1 StatusCode
X-Amz-Executed-Version: ExecutedVersion
Content-Type: ResponseStreamContentType
Content-type: application/json

{
   "InvokeComplete": { 
      "ErrorCode": "string",
      "ErrorDetails": "string",
      "LogResult": "string"
   },
   "PayloadChunk": { 
      "Payload": blob
   }
}
```

## Elementos de Resposta
<a name="API_InvokeWithResponseStream_ResponseElements"></a>

Se a ação for bem-sucedida, o serviço retornará a resposta HTTP a seguir.

 ** [StatusCode](#API_InvokeWithResponseStream_ResponseSyntax) **   <a name="lambda-InvokeWithResponseStream-response-StatusCode"></a>
Para uma solicitação bem-sucedida, o código de status HTTP está no intervalo 200. Para o tipo de invocação `RequestResponse`, esse código de status é 200. Para o tipo de invocação `DryRun`, esse código de status é 204.

A resposta retorna os cabeçalhos HTTP a seguir.

 ** [ExecutedVersion](#API_InvokeWithResponseStream_ResponseSyntax) **   <a name="lambda-InvokeWithResponseStream-response-ExecutedVersion"></a>
A versão da função que foi executada. Quando você invoca uma função com um alias, isso indica para qual versão o alias foi resolvido.  
Restrições de tamanho: tamanho mínimo 1. Comprimento máximo de 1024.  
Padrão: `(\$LATEST|[0-9]+)` 

 ** [ResponseStreamContentType](#API_InvokeWithResponseStream_ResponseSyntax) **   <a name="lambda-InvokeWithResponseStream-response-ResponseStreamContentType"></a>
O tipo de dados que o stream está retornando.

Os dados a seguir são retornados no formato JSON pelo serviço.

 ** [InvokeComplete](#API_InvokeWithResponseStream_ResponseSyntax) **   <a name="lambda-InvokeWithResponseStream-response-InvokeComplete"></a>
Um objeto que é retornado quando o stream termina e todos os trechos da carga são retornados.  
Tipo: objeto [InvokeWithResponseStreamCompleteEvent](API_InvokeWithResponseStreamCompleteEvent.md)

 ** [PayloadChunk](#API_InvokeWithResponseStream_ResponseSyntax) **   <a name="lambda-InvokeWithResponseStream-response-PayloadChunk"></a>
Uma parte da carga de resposta enviada por streaming.  
Tipo: objeto [InvokeResponseStreamUpdate](API_InvokeResponseStreamUpdate.md)

## Erros
<a name="API_InvokeWithResponseStream_Errors"></a>

Para obter informações sobre os erros que todas as ações retornam, consulte [Erros comuns](CommonErrors.md).

 ** EC2AccessDeniedException **   
São necessárias permissões adicionais para definir as configurações da VPC.  
Código de status HTTP: 502

 ** EC2ThrottledException **   
O Amazon EC2 realizou controle de utilização do AWS Lambda durante a inicialização da função do Lambda usando o perfil de execução fornecido para a função.  
Código de status HTTP: 502

 ** EC2UnexpectedException **   
 O AWS Lambda recebeu uma exceção inesperada do cliente do Amazon EC2 durante a configuração da função do Lambda.  
Código de status HTTP: 502

 ** EFSIOException **   
Ocorreu um erro ao ler ou gravar em um sistema de arquivos conectado.  
Código de status HTTP: 410

 ** EFSMountConnectivityException **   
A função do Lambda não pôde estabelecer uma conexão de rede com o sistema de arquivos configurado.  
Código de status HTTP: 408

 ** EFSMountFailureException **   
A função do Lambda não pôde montar o sistema de arquivos configurado devido a um problema de permissão ou de configuração.  
Código de Status HTTP: 403

 ** EFSMountTimeoutException **   
A função do Lambda estabeleceu uma conexão de rede com o sistema de arquivos configurado, mas a operação de montagem atingiu o tempo limite.  
Código de status HTTP: 408

 ** ENILimitReachedException **   
 O AWS Lambda não pôde criar uma interface de rede elástica na VPC, especificada como parte da configuração da função do Lambda porque o limite de interfaces de rede foi atingido. Para obter mais informações, consulte [Cotas do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).  
Código de status HTTP: 502

 ** InvalidParameterValueException **   
Um dos parâmetros da solicitação não é válido.  
Código de Status HTTP: 400

 ** InvalidRequestContentException **   
O corpo da solicitação não pôde ser analisado como JSON.  
Código de Status HTTP: 400

 ** InvalidRuntimeException **   
O runtime ou a versão do runtime especificada não tem suporte.  
Código de status HTTP: 502

 ** InvalidSecurityGroupIDException **   
O ID do grupo de segurança fornecido na configuração de VPC da função do Lambda não é válido.  
Código de status HTTP: 502

 ** InvalidSubnetIDException **   
O ID de sub-rede fornecido na configuração de VPC da função do Lambda não é válido.  
Código de status HTTP: 502

 ** InvalidZipFileException **   
 AWS Lambda não pôde descompactar o pacote de implantação.  
Código de status HTTP: 502

 ** KMSAccessDeniedException **   
O Lambda não conseguiu descriptografar as variáveis ​​de ambiente porque o acesso ao AWS KMS foi negado. Verifique as permissões do KMS da função do Lambda.  
Código de status HTTP: 502

 ** KMSDisabledException **   
O Lambda não conseguiu descriptografar as variáveis ​​de ambiente porque a chave do AWS KMS key usada está desabilitada. Verifique as configurações da chave do KMS da função do Lambda.  
Código de status HTTP: 502

 ** KMSInvalidStateException **   
O Lambda não conseguiu descriptografar as variáveis ​​de ambiente porque o estado da chave do AWS KMS key usada não é válido para descriptografar. Verifique as configurações da chave do KMS da função.  
Código de status HTTP: 502

 ** KMSNotFoundException **   
O Lambda não conseguiu descriptografar as variáveis ​​de ambiente porque a chave do AWS KMS key não foi encontrada. Verifique as configurações da chave do KMS da função.  
Código de status HTTP: 502

 ** RecursiveInvocationException **   
O Lambda detectou que a função está sendo invocada em um loop recursivo com outros recursos da AWS e interrompeu a invocação da função.  
Código de Status HTTP: 400

 ** RequestTooLargeException **   
A carga útil da solicitação excedeu a cota de entrada JSON do corpo da solicitação `Invoke`. Para obter mais informações, consulte [Cotas do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).  
Código de status HTTP: 413

 ** ResourceConflictException **   
O recurso já existe ou outra operação está em andamento.  
Código de status HTTP: 409

 ** ResourceNotFoundException **   
O recurso especificado na solicitação não existe.  
Código de Status HTTP: 404

 ** ResourceNotReadyException **   
A função está inativa e sua conexão da VPC não está mais disponível. Aguarde até que a conexão da VPC seja restabelecida e tente novamente.  
Código de status HTTP: 502

 ** ServiceException **   
O serviço AWS Lambda encontrou um erro interno.  
Código de Status HTTP: 500

 ** SnapStartException **   
O [hook de runtime](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-runtime-hooks.html) `afterRestore()` encontrou um erro. Para obter mais informações, verifique os logs do Amazon CloudWatch.  
Código de Status HTTP: 400

 ** SnapStartNotReadyException **   
O Lambda está inicializando a função. É possível invocar a função quando o [estado da função](https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html) se tornar `Active`.  
Código de Status HTTP: 409

 ** SnapStartTimeoutException **   
O Lambda não conseguiu restaurar o snapshot dentro do limite de tempo limite.  
Código de status HTTP: 408

 ** SubnetIPAddressLimitReachedException **   
 O AWS Lambda não pôde configurar o acesso à VPC para a função do Lambda porque uma ou mais sub-redes configuradas não têm endereços IP disponíveis.  
Código de status HTTP: 502

 ** TooManyRequestsException **   
O limite de throughput da solicitação foi excedido. Para obter mais informações, consulte [Cotas do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).  
Código de Status HTTP: 429

 ** UnsupportedMediaTypeException **   
O tipo de conteúdo do corpo da solicitação `Invoke` não é JSON.  
Código de status HTTP: 415

## Ver também
<a name="API_InvokeWithResponseStream_SeeAlso"></a>

Para mais informações sobre como usar essa API em um dos AWS SDKs de idiomas específicos, consulte o seguinte:
+  [AWS Interface de linha de comando](https://docs.aws.amazon.com/goto/aws-cli/lambda-2015-03-31/InvokeWithResponseStream) 
+  [AWS SDK para .NET](https://docs.aws.amazon.com/goto/DotNetSDKV3/lambda-2015-03-31/InvokeWithResponseStream) 
+  [AWS SDK para C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/lambda-2015-03-31/InvokeWithResponseStream) 
+  [AWS SDK for Go](https://docs.aws.amazon.com/goto/SdkForGoV1/lambda-2015-03-31/InvokeWithResponseStream) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/lambda-2015-03-31/InvokeWithResponseStream) 
+  [AWS SDK para JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/lambda-2015-03-31/InvokeWithResponseStream) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/lambda-2015-03-31/InvokeWithResponseStream) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/lambda-2015-03-31/InvokeWithResponseStream) 
+  [AWS SDK para Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/lambda-2015-03-31/InvokeWithResponseStream) 