View a markdown version of this page

AWS::Serverless::WebFunction - AWS Serverless Application Model

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS::Serverless::WebFunction

Cria uma função AWS Lambda Web, que atende solicitações HTTP por meio de um endpoint gerenciado. Ao contrário de uma função de evento Lambda, que é executada em resposta a invocações e eventos, uma função Web executa seu servidor web e recebe solicitações HTTP diretamente. A partir de uma únicaAWS::Serverless::WebFunction, AWS SAM gera a Função Web, uma revisão imutável que contém seu código e configuração, e um endpoint que direciona o tráfego para uma ou mais revisões.

nota

Quando você implanta AWS CloudFormation, AWS SAM transforma seus AWS SAM recursos em CloudFormation recursos. Para obter mais informações, consulte Gerado CloudFormation recursos para AWS SAM.

Importante

Seu código de função deve executar um servidor HTTP que escuta o host e a porta na variável de AWS_LAMBDA_HTTP_ENDPOINT ambiente. O tempo de execução não está definidoPORT. Por padrão, o tempo de execução é executado index.js na raiz do pacote de implantação. Use EntryPointpara executar um arquivo diferente.

Importante

O bucket do Amazon S3 que contém seu pacote de implantação deve atender aos seguintes requisitos:

  • O controle de versão está ativado.

  • Uma política de bucket concede lambda.amazonaws.com s3:GetObject as s3:GetObjectVersion permissões e. Recomendamos que você defina o escopo da política com uma ArnLike condição aws:SourceArn que corresponda às revisões da função, por exemploarn:aws:lambda:us-east-1:111122223333:web-function/my-function/revision/*.

  • Se o objeto for criptografado com SSE-KMS, ele usará uma chave gerenciada pelo cliente cuja política de chaves permite lambda.amazonaws.com a chamadakms:Decrypt. A chave AWS gerenciada do Amazon S3 (aws/s3) não é suportada, porque você não pode alterar sua política de chaves.

Para ver um exemplo de política de bucket, consulte Política de bucket para Lambda no Guia do AWS Lambda desenvolvedor.

CodeUrideve referenciar um objeto no Amazon S3. Os sam package comandos sam build and não oferecem suporte a caminhos locais para esse recurso.

Sintaxe

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

YAML

Type: AWS::Serverless::WebFunction Properties: AuthType: String AutoDeploymentMode: String CodeUri: String | CodeUri EgressNetworkConnectorArn: String EndpointDescription: String EndpointName: String EndpointType: String EntryPoint: String EnvironmentVariables: Map ExecutionRoleArn: String FunctionName: String InlineCode: String KmsKeyArn: String LoggingConfig: Map MaxConcurrencyPerEnvironment: Integer ReplicaRegions: List | ReplicaRegions RevisionDescription: String RevisionWeights: RevisionWeights Runtime: String ScalingConfig: Map Tags: Map ThrottleConfig: Map Timeout: Integer

Propriedades

AuthType

Como o endpoint autoriza solicitações.

  • IamAuth: O Lambda autoriza solicitações com Signature versão 4 e IAM. Os chamadores precisam da lambda:InvokeWebFunctionEndpoint permissão, concedida por meio de uma política baseada em recursos sobre a função.

  • ApplicationManaged: o endpoint é público. Sua função deve autorizar cada solicitação sozinha.

Valores válidos: IamAuth, ApplicationManaged

Tipo: string

Obrigatório: Sim

CloudFormation compatibilidade: essa propriedade é passada diretamente para a AuthType propriedade de um AWS::Lambda::WebFunctionEndpoint recurso.

AutoDeploymentMode

Como o endpoint direciona o tráfego entre as revisões.

  • LatestRevision: envia 100% do tráfego para a revisão que essa implantação cria.

  • Disabled: roteia o tráfego de acordo com RevisionWeights.

Os valores que você pode usar e se RevisionWeights são obrigatórios dependem de EndpointType:

  • HomeRegion: use qualquer um dos valores. ComDisabled, RevisionWeights é obrigatório.

  • MultiRegionouPerRegion: usarDisabled. Se você omitirRevisionWeights, o endpoint roteará 100% do tráfego para a revisão criada na mesma pilha, para que você possa criar o endpoint em uma única implantação. O tráfego não passa para as revisões criadas por implantações posteriores.

O valor deve ser resolvido ao AWS SAM transformar o modelo. Há suporte Ref para um parâmetro de A a. Outras funções intrínsecas não são suportadas.

Valores válidos: LatestRevision, Disabled

Tipo: string

Obrigatório: não

Padrão: LatestRevision

CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

CodeUri

A localização do pacote de implantação no Amazon S3. Especifique um s3://bucket/key URI ou um objeto com BucketKey, e Version chaves opcionais. Para saber os requisitos do bucket, consulte a nota na parte superior desta página.

Tipo: String | CodeUri

Obrigatório: sim

CloudFormation compatibilidade: essa propriedade é semelhante à BuildConfig.CodeConfig.S3Object propriedade de um AWS::Lambda::WebFunctionRevision recurso. AWS SAM converte um s3:// URI em BucketKey, e. VersionId

EgressNetworkConnectorArn

O ARN qualificado para versão de um conector de rede que roteia o tráfego de saída da função por meio de sua VPC. O ARN deve terminar em um número de versão, por exemplo. arn:aws:lambda:us-east-1:123456789012:network-connector:my-connector:1 Para usar a versão mais recente de um conector no mesmo modelo, especifique!GetAtt MyConnector.LatestVersionArn. O conector ComputeTypesdeve serWebFunction.

Se você especificar uma string literal, AWS SAM verifique se é um ARN do conector de rede qualificado para a versão. As funções intrínsecas são transmitidas e validadas pelo serviço. A alteração desse valor cria uma nova revisão.

Tipo: string

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a ServiceConfig.EgressNetworkConnectorArn propriedade de um AWS::Lambda::WebFunctionRevision recurso.

EndpointDescription

Uma descrição do endpoint.

Tipo: string

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a Description propriedade de um AWS::Lambda::WebFunctionEndpoint recurso.

EndpointName

O nome do endpoint. A alteração do nome substitui o endpoint. A alteração EndpointType também substitui o endpoint, portanto, mude EndpointName ao mesmo tempo. CloudFormation não é possível substituir um recurso com nome personalizado sem um novo nome.

Tipo: string

Obrigatório: não

Padrão: prod

CloudFormation compatibilidade: essa propriedade é passada diretamente para a EndpointName propriedade de um AWS::Lambda::WebFunctionEndpoint recurso.

EndpointType

Onde o endpoint atende ao tráfego.

  • HomeRegion: serve da região da pilha.

  • MultiRegion: replica a função para as regiões ReplicaRegionse encaminha cada solicitação para a região mais próxima.

  • PerRegion: expõe um endpoint separado em cada região de réplica.

MultiRegione PerRegion exigirAutoDeploymentMode: Disabled.

Valores válidos: HomeRegion, MultiRegion, PerRegion

Tipo: string

Obrigatório: não

Padrão: HomeRegion

CloudFormation compatibilidade: essa propriedade é passada diretamente para a EndpointType propriedade de um AWS::Lambda::WebFunctionEndpoint recurso.

EntryPoint

O arquivo que o tempo de execução executa, em relação à raiz do pacote de implantação. AWS SAM passa para o tempo de execução na variável de AWS_LAMBDA_NODEJS_ENTRYPOINT ambiente reservada.

Você não pode usar essa propriedade quando EnvironmentVariables é uma função intrínseca.

Tipo: string

Obrigatório: não

Padrão: index.js

CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

EnvironmentVariables

Key-value pares a serem definidos como variáveis de ambiente para a revisão.

  • As teclas devem começar com uma letra e conter somente letras, números e sublinhados.

  • Os valores não devem estar vazios e ter no máximo 4.096 caracteres.

  • AWS SAM converte valores numéricos e booleanos em cadeias de caracteres.

Tipo: mapa

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a ServiceConfig.EnvironmentVariables propriedade de um AWS::Lambda::WebFunctionRevision recurso.

ExecutionRoleArn

O ARN da função do IAM que a função assume quando é executada. Se você não especificar uma função, AWS SAM crie uma com a política AWSLambdaBasicExecutionRole gerenciada e uma ID lógica de<resource-logical-id>Role.

Tipo: string

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a ServiceConfig.ExecutionRoleArn propriedade de um AWS::Lambda::WebFunctionRevision recurso.

FunctionName

Nome da função. Os nomes das funções devem ser exclusivos em uma conta em todas as regiões. Se você não especificar um nome, AWS SAM gera um a partir do ID lógico e do ID da pilha, com no máximo 64 caracteres. A alteração do nome substitui a função, sua revisão e seu endpoint.

Tipo: string

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a FunctionName propriedade dos AWS::Lambda::WebFunctionEndpoint recursos AWS::Lambda::WebFunctionAWS::Lambda::WebFunctionRevision, e.

InlineCode

Não suportado paraAWS::Serverless::WebFunction. Use CodeUri.

Tipo: string

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

KmsKeyArn

O ARN da AWS KMS chave usada para criptografar as variáveis de ambiente da revisão.

Tipo: string

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a KmsKeyArn propriedade de um AWS::Lambda::WebFunctionRevision recurso.

LoggingConfig

A configuração de registro para a revisão, como o grupo de registros e os níveis de registro.

Tipo: mapa

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a ServiceConfig.TelemetryConfig.LoggingConfig propriedade de um AWS::Lambda::WebFunctionRevision recurso.

MaxConcurrencyPerEnvironment

O número máximo de solicitações simultâneas que cada ambiente de execução processa.

Tipo: inteiro

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a ServiceConfig.MaxConcurrencyPerEnvironment propriedade de um AWS::Lambda::WebFunctionRevision recurso.

ReplicaRegions

As regiões para as quais replicar a função. Use essa propriedade com MultiRegion PerRegion endpoints. Especifique uma lista de códigos de região e grupos de regiões, ou um objeto com IncludeRegions um opcionalExcludeRegions.

Tipo: Lista | ReplicaRegions

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é semelhante à Regions propriedade de um AWS::Lambda::WebFunctionEndpoint recurso. AWS SAM expande grupos de regiões e se aplica ExcludeRegions para produzir a lista de regiões.

RevisionDescription

Uma descrição da revisão que essa implantação cria.

Tipo: string

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a Description propriedade de um AWS::Lambda::WebFunctionRevision recurso.

RevisionWeights

Um mapa de IDs de revisão para pesos de tráfego. Use essa propriedade quando AutoDeploymentMode estiverDisabled. Especifique até duas revisões. Cada peso é um número inteiro de 1 a 100, e os pesos devem somar 100.

Digite: RevisionWeights

Obrigatório: condicional. Exigido quando AutoDeploymentMode é Disabled e EndpointType éHomeRegion.

CloudFormation compatibilidade: essa propriedade é semelhante à RevisionWeights propriedade de um AWS::Lambda::WebFunctionEndpoint recurso. AWS SAM converte o mapa em uma lista RevisionId de Weight objetos.

Runtime

O tempo de execução da função, por exemplonodejs24.x.

Tipo: string

Obrigatório: Sim

CloudFormation compatibilidade: essa propriedade é passada diretamente para a BuildConfig.RuntimeConfig.Runtime propriedade de um AWS::Lambda::WebFunctionRevision recurso.

ScalingConfig

A configuração de escalabilidade para o endpoint, como o número máximo de ambientes de execução.

Tipo: mapa

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a ScalingConfig propriedade de um AWS::Lambda::WebFunctionEndpoint recurso.

Tags

Um mapa de pares de valores-chave que especifica as tags adicionadas à função e à função de execução gerada. AWS SAM

Tipo: mapa

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é semelhante à Tags propriedade de um AWS::Lambda::WebFunction recurso. A Tags propriedade in AWS SAM consiste em pares de valores-chave (enquanto CloudFormation nessa propriedade consiste em uma lista de Tag objetos). Além disso, adiciona AWS SAM automaticamente uma lambda:createdBy:SAM tag à função e à função padrão que é gerada para ela.

ThrottleConfig

A configuração de limitação do endpoint, como a taxa máxima de solicitação.

Tipo: mapa

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a ThrottleConfig propriedade de um AWS::Lambda::WebFunctionEndpoint recurso.

Timeout

O tempo máximo, em segundos, que a função pode ser executada por solicitação. Os valores válidos são de 3 a 900.

Tipo: inteiro

Obrigatório: não

Padrão: 30

CloudFormation compatibilidade: essa propriedade é passada diretamente para a ServiceConfig.TimeoutSeconds propriedade de um AWS::Lambda::WebFunctionRevision recurso.

Valores de retorno

Ref.

Quando a ID lógica desse recurso é fornecida à função Ref intrínseca, ela retorna o ARN da função Web. Onde você precisar do nome da função, use o valor de FunctionName em vez disso.

Para obter mais informações sobre como usar a função Ref, consulte Ref no Guia do usuário do AWS CloudFormation .

Fã:: GetAtt

Fn::GetAtt retorna um valor para um atributo especificado deste tipo. Estes são os atributos disponíveis e os valores de retorno de amostra.

Para obter mais informações sobre o uso do Fn::GetAtt, consulte Fn::GetAtt o AWS CloudFormation Guia do usuário.

FunctionArn

O nome de recurso da Amazon (ARN) da função Web.

State

O estado atual da função Web.

StateReason

O motivo do estado atual da função Web.

CreatedAt

A hora em que a função Web foi criada.

UpdatedAt

A hora em que a função Web foi atualizada pela última vez.

Para referenciar a revisão ou o endpoint que AWS SAM gera, use suas IDs lógicas <resource-logical-id>Revision e. <resource-logical-id>Endpoint Por exemplo, !GetAtt MyWebFunctionEndpoint.DomainName retorna o nome de domínio do endpoint para uma função Web com o ID MyWebFunction lógico. Para obter mais informações, consulte CloudFormation recursos gerados quando AWS::Serverless::WebFunction é especificado.

Exemplos

Função básica da Web

O exemplo a seguir cria uma função Web com um IAM-authorized endpoint na região da pilha. AWS SAM gera a função de execução e o endpoint encaminha todo o tráfego para a revisão que essa implantação cria.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version: object-version-id Timeout: 30 Outputs: EndpointUrl: Value: !Sub https://${MyWebFunctionEndpoint.DomainName}

Divida o tráfego entre duas revisões

O exemplo a seguir desativa a implantação automática e envia 90% do tráfego para uma revisão existente e 10% para outra. Ambas as revisões já devem existir.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: s3://amzn-s3-demo-bucket/webfn-v2.zip AutoDeploymentMode: Disabled RevisionWeights: rev-abc123: 90 rev-def456: 10

Multi-Region Função Web

O exemplo a seguir replica a função para as regiões dos EUA, exceto us-west-1 e encaminha cada solicitação para a região mais próxima. Como RevisionWeights é omitido, o endpoint roteia todo o tráfego para a revisão criada nessa pilha.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version: object-version-id EndpointName: prodmr EndpointType: MultiRegion AutoDeploymentMode: Disabled ReplicaRegions: IncludeRegions: - US ExcludeRegions: - us-west-1

Função Web com saída de VPC

O exemplo a seguir cria um conector de rede para Web Functions e roteia o tráfego de saída da função pelas sub-redes e grupos de segurança do conector.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyConnector: Type: AWS::Serverless::NetworkConnector Properties: ComputeTypes: - WebFunction VpcConfig: SubnetIds: - subnet-0abc123def4567890 - subnet-0def456abc7890123 SecurityGroupIds: - sg-0abc1234abcde0001 NetworkProtocol: IPv4 MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version: object-version-id EgressNetworkConnectorArn: !GetAtt MyConnector.LatestVersionArn