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á.
Seção Global do modelo AWS SAM
Às vezes, os recursos que você declara em um AWS SAM modelo têm configurações comuns. Por exemplo, você pode ter um aplicativo com vários recursos AWS::Serverless::Function
que têm configurações Runtime
, Memory
, VPCConfig
, Environment
e Cors
idênticas. Em vez de duplicar essas informações em todos os recursos, você pode declará-las uma vez na seção Globals
e permitir que seus recursos as herdem.
A Globals
seção oferece suporte aos seguintes tipos de AWS SAM recursos:
-
AWS::Serverless::Api
-
AWS::Serverless::Function
-
AWS::Serverless::HttpApi
-
AWS::Serverless::SimpleTable
-
AWS::Serverless::StateMachine
Exemplo:
Globals: Function: Runtime: nodejs12.x Timeout: 180 Handler: index.handler Environment: Variables: TABLE_NAME: data-table Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: Environment: Variables: MESSAGE: "Hello From SAM" ThumbnailFunction: Type: AWS::Serverless::Function Properties: Events: Thumbnail: Type: Api Properties: Path: /thumbnail Method: POST
Neste exemplo, ThumbnailFunction
use “nodejs12.x” paraRuntime
, “180" segundos para HelloWorldFunction
e “index.handler” paraTimeout
. Handler
HelloWorldFunction
adiciona a variável de MESSAGE ambiente, além do TABLE _ NAME herdado. ThumbnailFunction
herda todas as Globals
propriedades e adiciona uma fonte de API eventos.
Recursos e propriedades compatíveis
AWS SAM suporta os seguintes recursos e propriedades.
Globals: Api: AccessLogSetting: Auth: BinaryMediaTypes: CacheClusterEnabled: CacheClusterSize: CanarySetting: Cors: DefinitionUri: Domain: EndpointConfiguration: GatewayResponses: MethodSettings: MinimumCompressionSize: Name: OpenApiVersion: PropagateTags: TracingEnabled: Variables: Function: Architectures: AssumeRolePolicyDocument: AutoPublishAlias: CodeSigningConfigArn: CodeUri: DeadLetterQueue: DeploymentPreference: Description: Environment: EphemeralStorage: EventInvokeConfig: FileSystemConfigs: FunctionUrlConfig: Handler: KmsKeyArn: Layers: LoggingConfig: MemorySize: PermissionsBoundary: PropagateTags: ProvisionedConcurrencyConfig: RecursiveLoop: ReservedConcurrentExecutions: RolePath: Runtime: RuntimeManagementConfig: SnapStart: SourceKMSKeyArn: Tags: Timeout: Tracing: VpcConfig: HttpApi: AccessLogSettings: Auth: PropagateTags: StageVariables: Tags: SimpleTable: SSESpecification: StateMachine: PropagateTags:
nota
Os recursos e propriedades que não fazem parte da lista anterior não são aceitas. Alguns motivos para não apoiá-los incluem: 1) Eles abrem possíveis problemas de segurança ou 2) Eles tornam o modelo difícil de entender.
Implícito APIs
AWS SAM cria implícito APIs quando você declara um API na Events
seção. Você pode usar Globals
para substituir todas as propriedades de implícitoAPIs.
Propriedades substituíveis
Os recursos podem substituir as propriedades que você declara na seção Globals
. Por exemplo, você pode adicionar novas variáveis a um mapa de variáveis de ambiente ou substituir variáveis declaradas globalmente. Mas o recurso não pode remover uma propriedade especificada na seção Globals
.
De forma mais geral, a seção Globals
declara propriedades que todos os seus recursos compartilham. Alguns recursos podem fornecer novos valores para propriedades declaradas globalmente, mas não podem removê-las. Se alguns recursos usam uma propriedade, mas outros não, você não deve declará-los na seção Globals
.
As seções a seguir descrevem como a substituição funciona para diferentes tipos de dados.
Os tipos de dados primitivos são substituídos
Os tipos de dados primitivos incluem cadeias de caracteres, números, booleanos, e assim por diante.
O valor especificado na seção Resources
substitui o valor na seção Globals
.
Exemplo:
Globals: Function: Runtime: nodejs12.x Resources: MyFunction: Type: AWS::Serverless::Function Properties: Runtime: python3.9
O Runtime
para MyFunction
foi definido como python3.9
.
Os mapas são mesclados
Os mapas também são conhecidos como dicionários ou coleções de pares de chave-valor.
As entradas do mapa na seção Resources
são mescladas com as entradas do mapa global. Se houver duplicatas, a entrada da seção Resource
substituirá a entrada da seção Globals
.
Exemplo:
Globals: Function: Environment: Variables: STAGE: Production TABLE_NAME: global-table Resources: MyFunction: Type: AWS::Serverless::Function Properties: Environment: Variables: TABLE_NAME: resource-table NEW_VAR: hello
As variáveis de ambiente de MyFunction
são definidas da seguinte forma:
{ "STAGE": "Production", "TABLE_NAME": "resource-table", "NEW_VAR": "hello" }
As listas são aditivas
As listas também são conhecidas como matrizes.
As entradas da lista na seção Globals
são anexadas à lista na seção Resources
.
Exemplo:
Globals: Function: VpcConfig: SecurityGroupIds: - sg-123 - sg-456 Resources: MyFunction: Type: AWS::Serverless::Function Properties: VpcConfig: SecurityGroupIds: - sg-first
Os SecurityGroupIds
para MyFunction
VpcConfig
estão definidos da seguinte forma:
[ "sg-123", "sg-456", "sg-first" ]