AWS::Greengrass::FunctionDefinition - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::Greengrass::FunctionDefinition

AWS::Greengrass::FunctionDefinition 资源表示 AWS IoT Greengrass 的函数定义。函数定义用于组织函数定义版本。

函数定义可引用多个函数定义版本。所有函数定义版本都必须与函数定义关联。每个函数定义版本均可包含一个或多个函数。

注意

在创建函数定义时,您可以选择包含初始函数定义版本。要稍后关联函数定义版本,请创建 AWS::Greengrass::FunctionDefinitionVersion 资源并指定该函数定义的 ID。

在创建包含要部署的函数的函数定义版本后,您必须将其添加到组版本。有关更多信息,请参阅 AWS::Greengrass::Group

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::Greengrass::FunctionDefinition", "Properties" : { "InitialVersion" : FunctionDefinitionVersion, "Name" : String, "Tags" : Json } }

YAML

Type: AWS::Greengrass::FunctionDefinition Properties: InitialVersion: FunctionDefinitionVersion Name: String Tags: Json

属性

InitialVersion

在创建函数定义时要包含的函数定义版本。函数定义版本包含 function 属性类型的列表。

注意

要在创建函数定义后关联函数定义版本,请创建 AWS::Greengrass::FunctionDefinitionVersion 资源并指定此函数定义的 ID。

必需:否

类型FunctionDefinitionVersion

Update requires: Replacement

Name

函数定义的名称。

必需:是

类型:字符串

Update requires: No interruption

Tags

要附加到函数定义的特定于应用程序的元数据。您可以在 IAM 策略中使用标签来控制对 AWS IoT Greengrass 资源的访问。您还可以使用标签对资源进行分类。有关更多信息,请参阅AWS IoT Greengrass 开发人员指南中的标记您的 AWS IoT Greengrass 资源

Json 属性类型作为键值对的映射处理。它使用以下格式,这不同于 AWS CloudFormation 模板中的大部分 Tags 实施。

"Tags": { "KeyName0": "value", "KeyName1": "value", "KeyName2": "value" }

必需:否

类型:Json

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回函数定义的 ID,例如 1234a5b6-78cd-901e-2fgh-3i45j6k178l9

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt 内部函数返回此类型的一个指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 内部函数的更多信息,请参阅 Fn::GetAtt

Arn

FunctionDefinition 的 Amazon 资源名称 (ARN),例如 arn:aws:greengrass:us-east-1:123456789012:/greengrass/definition/functions/1234a5b6-78cd-901e-2fgh-3i45j6k178l9

Id

FunctionDefinition 的 ID,例如 1234a5b6-78cd-901e-2fgh-3i45j6k178l9

LatestVersionArn

已添加到 FunctionDefinition 的最新 FunctionDefinitionVersion 的 ARN,例如 arn:aws:greengrass:us-east-1:123456789012:/greengrass/definition/functions/1234a5b6-78cd-901e-2fgh-3i45j6k178l9/versions/9876ac30-4bdb-4f9d-95af-b5fdb66be1a2

Name

FunctionDefinition 的名称,例如 MyFunctionDefinition

示例

函数定义代码段

以下代码段使用包含函数的初始版本定义函数定义资源。在此示例中,在另一个堆栈中创建 Lambda 函数,并通过 ImportValue 函数引用它。

有关完整模板的示例,请参阅 AWS::Greengrass::Group 资源。

JSON

"TestFunctionDefinition": { "Type": "AWS::Greengrass::FunctionDefinition", "Properties": { "Name": "DemoTestFunctionDefinition", "InitialVersion": { "DefaultConfig": { "Execution": { "IsolationMode": "GreengrassContainer" } }, "Functions": [ { "Id": "TestLambda1", "FunctionArn": { "Fn::ImportValue": "TestCanaryLambdaVersionArn" }, "FunctionConfiguration": { "Pinned": "false", "Executable": "run.exe", "ExecArgs": "argument1", "MemorySize": "256", "Timeout": "3000", "EncodingType": "binary", "Environment": { "Variables": { "variable1": "value1" }, "ResourceAccessPolicies": [ { "ResourceId": "ResourceId1", "Permission": "ro" }, { "ResourceId": "ResourceId2", "Permission": "rw" } ], "AccessSysfs": "true", "Execution": { "RunAs": { "Uid": "1", "Gid": "10" } } } } } ] } } }

YAML

TestFunctionDefinition: Type: 'AWS::Greengrass::FunctionDefinition' Properties: Name: DemoTestFunctionDefinition InitialVersion: DefaultConfig: Execution: IsolationMode: GreengrassContainer Functions: - Id: TestLambda1 FunctionArn: !ImportValue TestCanaryLambdaVersionArn FunctionConfiguration: Pinned: 'false' Executable: run.exe ExecArgs: argument1 MemorySize: '256' Timeout: '3000' EncodingType: binary Environment: Variables: variable1: value1 ResourceAccessPolicies: - ResourceId: ResourceId1 Permission: ro - ResourceId: ResourceId2 Permission: rw AccessSysfs: 'true' Execution: RunAs: Uid: '1' Gid: '10'

另请参阅