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.coms3:GetObjectass3:GetObjectVersionpermissões e. Recomendamos que você defina o escopo da política com umaArnLikecondiçãoaws:SourceArnque 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.coma 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:StringAutoDeploymentMode:StringCodeUri:String | CodeUriEgressNetworkConnectorArn:StringEndpointDescription:StringEndpointName:StringEndpointType:StringEntryPoint:StringEnvironmentVariables:MapExecutionRoleArn:StringFunctionName:StringInlineCode:StringKmsKeyArn:StringLoggingConfig:MapMaxConcurrencyPerEnvironment:IntegerReplicaRegions:List | ReplicaRegionsRevisionDescription:StringRevisionWeights:RevisionWeightsRuntime:StringScalingConfig:MapTags:MapThrottleConfig:MapTimeout: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 dalambda:InvokeWebFunctionEndpointpermissã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,ApplicationManagedTipo: string
Obrigatório: Sim
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
AuthTypepropriedade de umAWS::Lambda::WebFunctionEndpointrecurso. -
-
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
RevisionWeightssã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
Refpara um parâmetro de A a. Outras funções intrínsecas não são suportadas.Valores válidos:
LatestRevision,DisabledTipo: string
Obrigatório: não
Padrão:
LatestRevisionCloudFormation 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://URI ou um objeto combucket/keyBucketKey, eVersionchaves 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.S3Objectpropriedade de umAWS::Lambda::WebFunctionRevisionrecurso. AWS SAM converte ums3://URI emBucketKey, 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:1Para usar a versão mais recente de um conector no mesmo modelo, especifique!GetAtt. O conector ComputeTypesdeve serMyConnector.LatestVersionArnWebFunction.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.EgressNetworkConnectorArnpropriedade de umAWS::Lambda::WebFunctionRevisionrecurso. -
EndpointDescription -
Uma descrição do endpoint.
Tipo: string
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
Descriptionpropriedade de umAWS::Lambda::WebFunctionEndpointrecurso. -
EndpointName -
O nome do endpoint. A alteração do nome substitui o endpoint. A alteração
EndpointTypetambém substitui o endpoint, portanto, mudeEndpointNameao 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:
prodCloudFormation compatibilidade: essa propriedade é passada diretamente para a
EndpointNamepropriedade de umAWS::Lambda::WebFunctionEndpointrecurso. -
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.
MultiRegionePerRegionexigirAutoDeploymentMode: Disabled.Valores válidos:
HomeRegion,MultiRegion,PerRegionTipo: string
Obrigatório: não
Padrão:
HomeRegionCloudFormation compatibilidade: essa propriedade é passada diretamente para a
EndpointTypepropriedade de umAWS::Lambda::WebFunctionEndpointrecurso. -
-
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_ENTRYPOINTambiente reservada.Você não pode usar essa propriedade quando
EnvironmentVariablesé uma função intrínseca.Tipo: string
Obrigatório: não
Padrão:
index.jsCloudFormation 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.EnvironmentVariablespropriedade de umAWS::Lambda::WebFunctionRevisionrecurso. -
-
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
AWSLambdaBasicExecutionRolegerenciada e uma ID lógica de.<resource-logical-id>RoleTipo: string
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
ServiceConfig.ExecutionRoleArnpropriedade de umAWS::Lambda::WebFunctionRevisionrecurso. -
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
FunctionNamepropriedade dosAWS::Lambda::WebFunctionEndpointrecursosAWS::Lambda::WebFunctionAWS::Lambda::WebFunctionRevision, e. -
InlineCode -
Não suportado para
AWS::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
KmsKeyArnpropriedade de umAWS::Lambda::WebFunctionRevisionrecurso. -
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.LoggingConfigpropriedade de umAWS::Lambda::WebFunctionRevisionrecurso. -
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.MaxConcurrencyPerEnvironmentpropriedade de umAWS::Lambda::WebFunctionRevisionrecurso. -
ReplicaRegions -
As regiões para as quais replicar a função. Use essa propriedade com
MultiRegionPerRegionendpoints. Especifique uma lista de códigos de região e grupos de regiões, ou um objeto comIncludeRegionsum opcionalExcludeRegions.Tipo: Lista | ReplicaRegions
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é semelhante à
Regionspropriedade de umAWS::Lambda::WebFunctionEndpointrecurso. AWS SAM expande grupos de regiões e se aplicaExcludeRegionspara 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
Descriptionpropriedade de umAWS::Lambda::WebFunctionRevisionrecurso. -
RevisionWeights -
Um mapa de IDs de revisão para pesos de tráfego. Use essa propriedade quando
AutoDeploymentModeestiverDisabled. 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éDisabledeEndpointTypeéHomeRegion.CloudFormation compatibilidade: essa propriedade é semelhante à
RevisionWeightspropriedade de umAWS::Lambda::WebFunctionEndpointrecurso. AWS SAM converte o mapa em uma listaRevisionIddeWeightobjetos. -
Runtime -
O tempo de execução da função, por exemplo
nodejs24.x.Tipo: string
Obrigatório: Sim
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
BuildConfig.RuntimeConfig.Runtimepropriedade de umAWS::Lambda::WebFunctionRevisionrecurso. -
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
ScalingConfigpropriedade de umAWS::Lambda::WebFunctionEndpointrecurso. -
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 à
Tagspropriedade de umAWS::Lambda::WebFunctionrecurso. ATagspropriedade in AWS SAM consiste em pares de valores-chave (enquanto CloudFormation nessa propriedade consiste em uma lista deTagobjetos). Além disso, adiciona AWS SAM automaticamente umalambda:createdBy:SAMtag à 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
ThrottleConfigpropriedade de umAWS::Lambda::WebFunctionEndpointrecurso. -
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:
30CloudFormation compatibilidade: essa propriedade é passada diretamente para a
ServiceConfig.TimeoutSecondspropriedade de umAWS::Lambda::WebFunctionRevisionrecurso.
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 e. <resource-logical-id>Revision Por exemplo, <resource-logical-id>Endpoint!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-idTimeout: 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-idEndpointName: 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-idEgressNetworkConnectorArn: !GetAtt MyConnector.LatestVersionArn