InvokeWithResponseStream - AWS Lambda

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ção DryRun, 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: