AWS SAM テンプレートのグローバルセクション - AWS Serverless Application Model

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS SAM テンプレートのグローバルセクション

AWS SAM テンプレートで宣言するリソースには、共通の設定がある場合があります。たとえば、複数のAWS::Serverless::Function同一のRuntimeMemoryVPCConfigEnvironment, およびCors設定. この情報をすべてのリソースに複製する代わりに、Globalsセクションを作成し、リソースに継承させます。

-Globalsセクションは、AWS::Serverless::FunctionAWS::Serverless::ApiAWS::Serverless::HttpApi, およびAWS::Serverless::SimpleTableリソースの使用料金を見積もることができます。

例:

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

この例では、HelloWorldFunctionおよびThumbnailFunction「nodejs12.x" を使用しますRuntime、「180" 秒Timeout、および「index.handler」HandlerHelloWorldFunctionは、継承された TABLE_NAME に加えて、MESSAGE 環境変数を追加します。ThumbnailFunctionは、すべてのGlobalsプロパティを作成し、API イベントソースを追加します。

サポートされているリソースとプロパティ

AWS SAM では、次のリソースとプロパティがサポートされています。

Globals: Function: Handler: Runtime: CodeUri: DeadLetterQueue: Description: MemorySize: Timeout: VpcConfig: Environment: Tags: Tracing: KmsKeyArn: Layers: AutoPublishAlias: DeploymentPreference: PermissionsBoundary: ReservedConcurrentExecutions: ProvisionedConcurrencyConfig: AssumeRolePolicyDocument: EventInvokeConfig: Api: Auth: Name: DefinitionUri: CacheClusterEnabled: CacheClusterSize: Variables: EndpointConfiguration: MethodSettings: BinaryMediaTypes: MinimumCompressionSize: Cors: GatewayResponses: AccessLogSetting: CanarySetting: TracingEnabled: OpenApiVersion: Domain: HttpApi: Auth: AccessLogSettings: StageVariables: Tags: SimpleTable: SSESpecification:
注記

前のリストに含まれていないリソースとプロパティはサポートされていません。それらをサポートしない理由には、次のようなものがあります。1)潜在的なセキュリティ上の問題を開いたり、2)テンプレートを理解しにくくしたりします。

暗黙的な API

AWS SAM は、暗黙的な APIでAPIを宣言すると、Eventsセクションに追加します。次を使用できます。Globals暗黙的な API のすべてのプロパティを上書きします。

上書き可能なプロパティ

リソースは、Globalsセクションに追加します。たとえば、環境変数マップに新しい変数を追加したり、グローバルに宣言された変数を上書きしたりできます。ただし、リソースは、で指定されているプロパティを削除することはできません、Globalsセクションに追加します。

より一般に、Globalsセクションは、すべてのリソースが共有するプロパティを宣言します。リソースによっては、グローバルに宣言されたプロパティに新しい値を提供できますが、削除することはできません。プロパティを使用するリソースと、使用しないリソースがある場合、Globalsセクションに追加します。

次のセクションでは、さまざまなデータ型で上書きがどのように機能するかについて説明します。

プリミティブデータ型が置き換えられます

プリミティブデータ型には、文字列、数値、ブール値などがあります。

指定された値、Resourcesセクションの値がGlobalsセクションに追加します。

例:

Globals: Function: Runtime: nodejs12.x Resources: MyFunction: Type: AWS::Serverless::Function Properties: Runtime: python3.6

-RuntimeforMyFunctionは、 に設定されます。python3.6

マップはマージされます。

マップは、ディクショナリまたはキーと値のペアのコレクションとも呼ばれます。

でエントリをマップするResourcesセクションは、グローバルマップエントリとマージされます。重複がある場合、Resourceセクションエントリは、Globalsセクションエントリに追加します。

例:

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

MyFunction の環境変数は、次のように設定されます。

{ "STAGE": "Production", "TABLE_NAME": "resource-table", "NEW_VAR": "hello" }

リストは付加的です。

リストは配列とも呼ばれます。

エントリを一覧表示するGlobalsセクションは、Resourcesセクションに追加します。

例:

Globals: Function: VpcConfig: SecurityGroupIds: - sg-123 - sg-456 Resources: MyFunction: Type: AWS::Serverless::Function Properties: VpcConfig: SecurityGroupIds: - sg-first

-SecurityGroupIdsforMyFunctionVpcConfigは、次のように設定されます。

[ "sg-123", "sg-456", "sg-first" ]