InvokeWithResponseStream
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.
Essa operação exige permissão para a ação lambda:InvokeFunction. Para obter detalhes sobre como configurar permissões para invocações entre contas, consulte Conceder acesso de função a outras contas.
Sintaxe da Solicitação
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 solicitação usa os seguintes parâmetros de URI:
- ClientContext
-
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
-
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
-
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
-
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
-
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 solicitação aceita os dados binários a seguir.
- Payload
-
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
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
Se a ação for bem-sucedida, o serviço retornará a resposta HTTP a seguir.
- StatusCode
-
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çãoDryRun
, esse código de status é 204.
A resposta retorna os cabeçalhos HTTP a seguir.
- ExecutedVersion
-
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
-
O tipo de dados que o stream está retornando.
Os dados a seguir são retornados no formato JSON pelo serviço.
- InvokeComplete
-
Um objeto que é retornado quando o stream termina e todos os trechos da carga são retornados.
Tipo: objeto InvokeWithResponseStreamCompleteEvent
- PayloadChunk
-
Uma parte da carga de resposta enviada por streaming.
Tipo: objeto InvokeResponseStreamUpdate
Erros
Para obter informações sobre os erros que todas as ações retornam, consulte Erros comuns.
- 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.
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.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
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 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.
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
Para mais informações sobre como usar essa API em um dos AWS SDKs de idiomas específicos, consulte o seguinte: