

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 函数
<a name="ebextensions-functions"></a>

您可以在配置文件中使用函数，通过来自其他资源或来自 Elastic Beanstalk 配置选项设置的信息填充资源属性的值。Elastic B CloudFormation eanstalk 支持`Ref`函数 `Fn::GetAtt` (`Fn::Join`、、) 和一个特定于 Elastic BeanStalk 的函数。`Fn::GetOptionSetting`

**Topics**
+ [

## Ref
](#ebextensions-functions-ref)
+ [

## Fn:: GetAtt
](#ebextensions-functions-getatt)
+ [

## Fn::Join
](#ebextensions-functions-join)
+ [

## Fn:: GetOptionSetting
](#ebextensions-functions-getoptionsetting)

## Ref
<a name="ebextensions-functions-ref"></a>

`Ref`用于检索 AWS 资源的默认字符串表示形式。`Ref` 返回的值取决于资源类型，有时也取决于其他因素。例如，安全组 ([AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html)) 返回安全组的名称或 ID，具体取决于该安全组是在默认的[亚马逊虚拟私有云 (Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/) VPC)、 EC2经典还是自定义 VPC 中。

```
{ "Ref" : "resource name" }
```

**注意**  
有关每个资源类型的详细信息（包括 `Ref` 的返回值），请参阅 *CloudFormation 用户指南*中的 [AWS 资源类型参考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)。

在 [Auto Scaling 生命周期挂钩](environment-resources.md)示例中：

```
Resources:
  lifecyclehook:
    Type: AWS::AutoScaling::LifecycleHook
    Properties:
      AutoScalingGroupName: { "Ref" : "AWSEBAutoScalingGroup" }
```

您还可以使用`Ref`检索在同一文件或其他配置文件中其他位置定义的 CloudFormation 参数的值。

## Fn:: GetAtt
<a name="ebextensions-functions-getatt"></a>

`Fn::GetAtt`用于检索 AWS 资源上属性的值。

```
{ "Fn::GetAtt" : [ "resource name", "attribute name"] }
```

在 [Auto Scaling 生命周期挂钩](environment-resources.md)示例中：

```
Resources:
  lifecyclehook:
    Type: AWS::AutoScaling::LifecycleHook
    Properties:
      RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }
```

有关更多信息，请参阅 [Fn:: GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html)。

## Fn::Join
<a name="ebextensions-functions-join"></a>

使用 `Fn::Join` 可组合带有一个分隔符的字符串。这些字符串可以进行硬编码，也可以使用来自 `Fn::GetAtt` 或 `Ref` 的输出。

```
{ "Fn::Join" : [ "delimiter", [ "string1", "string2" ] ] }
```

有关更多信息，请参阅 [Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html)。

## Fn:: GetOptionSetting
<a name="ebextensions-functions-getoptionsetting"></a>

使用 `Fn::GetOptionSetting` 可检索应用于环境的[配置选项](command-options.md)设置的值。

```
"Fn::GetOptionSetting":
  Namespace: "namespace"
  OptionName: "option name"
  DefaultValue: "default value"
```

在[存储私有密钥](https-storingprivatekeys.md)示例中：

```
Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["elasticbeanstalk-us-west-2-123456789012"]
          roleName: 
            "Fn::GetOptionSetting": 
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
```