

Dies ist das neue *CloudFormation Template Reference Guide*. Bitte aktualisieren Sie Ihre Lesezeichen und Links. Hilfe zu den ersten CloudFormation Schritten finden Sie im [AWS CloudFormation Benutzerhandbuch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# `Fn::ImportValue`
<a name="intrinsic-function-reference-importvalue"></a>

Die systeminterne Funktion `Fn::ImportValue` gibt den Wert einer Ausgabe zurück, die von einem anderen Stack exportiert wurde. Normalerweise verwenden Sie diese Funktion zum Erstellen von Cross-Stack-Referenzen. *Weitere Informationen finden Sie unter [Exemplarische Vorgehensweise: Weitere Informationen finden Sie unter Ressourcenausgaben in einem anderen CloudFormation Stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-crossstackref.html) im AWS CloudFormation Benutzerhandbuch.*

Im folgenden Beispiel eines Vorlagenausschnitts exportiert Stack A die VPC-Sicherheitsgruppenwerte, die von Stack B importiert werden.

**Anmerkung**  
Die folgenden Einschränkungen gelten für Cross-Stack-Referenzen:  
Jeder AWS-Konto`Export` Name muss innerhalb einer Region eindeutig sein.
Cross-Stack-Referenzen können nicht regionsübergreifend erstellt werden. Sie können die intrinsische Funktion `Fn::ImportValue` verwenden, um nur Werte zu importieren, die innerhalb derselben Region exportiert wurden.
Für Ausgaben kann der Wert der `Name`-Eigenschaft eines `Export` keine `Ref`- oder `GetAtt`-Funktionen verwenden, die von einer Ressource abhängen.  
Ebenso darf die `ImportValue`-Funktion keine `Ref`- oder `GetAtt`-Funktionen enthalten, die von einer Ressource abhängen.
Nachdem ein anderer Stack einen Ausgabewert importiert hat, können Sie den Stack, der den Ausgabewert exportiert, nicht löschen oder den exportierten Ausgabewert ändern. Alle Importe müssen entfernt werden, bevor Sie den exportierenden Stack löschen oder den Ausgabewert ändern können.

## JSON
<a name="intrinsic-function-reference-importvalue-export.json"></a>

Stack A – Export

```
"Outputs" : {
  "PublicSubnet" : {
    "Description" : "The subnet ID to use for public web servers",
    "Value" :  { "Ref" : "PublicSubnet" },
    "Export" : { "Name" : {"Fn::Sub": "${AWS::StackName}-SubnetID" }}
  },
  "WebServerSecurityGroup" : {
    "Description" : "The security group ID to use for public web servers",
    "Value" :  { "Fn::GetAtt" : ["WebServerSecurityGroup", "GroupId"] },
    "Export" : { "Name" : {"Fn::Sub": "${AWS::StackName}-SecurityGroupID" }}
  }
}
```

## YAML
<a name="intrinsic-function-reference-importvalue-export.yaml"></a>

Stack A – Export

```
Outputs:
  PublicSubnet:
    Description: The subnet ID to use for public web servers
    Value:
      Ref: PublicSubnet
    Export:
      Name:
        'Fn::Sub': '${AWS::StackName}-SubnetID'
  WebServerSecurityGroup:
    Description: The security group ID to use for public web servers
    Value:
      'Fn::GetAtt':
        - WebServerSecurityGroup
        - GroupId
    Export:
      Name:
        'Fn::Sub': '${AWS::StackName}-SecurityGroupID'
```

## JSON
<a name="intrinsic-function-reference-importvalue-import.json"></a>

Stack B – Import

```
"Resources" : {
  "WebServerInstance" : {
    "Type" : "AWS::EC2::Instance",
    "Properties" : {
      "InstanceType" : "t2.micro",
      "ImageId" : "ami-a1b23456",
      "NetworkInterfaces" : [{
        "GroupSet" : [{"Fn::ImportValue" : {"Fn::Sub" : "${NetworkStackNameParameter}-SecurityGroupID"}}],
        "AssociatePublicIpAddress" : "true",
        "DeviceIndex" : "0",
        "DeleteOnTermination" : "true",
        "SubnetId" : {"Fn::ImportValue" : {"Fn::Sub" : "${NetworkStackNameParameter}-SubnetID"}}
      }]
    }
  }
}
```

## YAML
<a name="intrinsic-function-reference-importvalue-import.yaml"></a>

Stack B – Import

```
Resources:
  WebServerInstance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: t2.micro
      ImageId: ami-a1b23456
      NetworkInterfaces:
        - GroupSet:
            - Fn::ImportValue: 
              'Fn::Sub': '${NetworkStackNameParameter}-SecurityGroupID'
          AssociatePublicIpAddress: 'true'
          DeviceIndex: '0'
          DeleteOnTermination: 'true'
          SubnetId: Fn::ImportValue: 
            'Fn::Sub': '${NetworkStackNameParameter}-SubnetID'
```

## Deklaration
<a name="w2aac24c43c11"></a>

### JSON
<a name="intrinsic-function-reference-importvalue-syntax.json"></a>

```
{ "Fn::ImportValue" : sharedValueToImport }
```

### YAML
<a name="intrinsic-function-reference-importvalue-syntax.yaml"></a>

Sie können den vollständigen Funktionsnamen verwenden:

```
Fn::ImportValue: sharedValueToImport
```

Alternativ können Sie auch die Kurzform verwenden:

```
!ImportValue sharedValueToImport
```

**Wichtig**  
Sie können die Kurzform von `!ImportValue` nicht verwenden, wenn es die Kurzform von `!Sub` enthält.   

```
# do not use
!ImportValue
  !Sub '${NetworkStack}-SubnetID'
```
Stattdessen müssen Sie den vollständigen Funktionsnamen verwenden, zum Beispiel:  

```
Fn::ImportValue:
  !Sub "${NetworkStack}-SubnetID"
```

## Parameters
<a name="w2aac24c43c13"></a>

sharedValueToImportieren  
Der Stack-Ausgabewert, den Sie importieren möchten.

## Rückgabewert
<a name="w2aac24c43c15"></a>

Der Stack-Ausgabewert.

## Beispiel
<a name="w2aac24c43c17"></a>

### JSON
<a name="intrinsic-function-reference-importvalue-example.json"></a>

```
{ "Fn::ImportValue" : {"Fn::Sub": "${NetworkStackNameParameter}-SubnetID" } }
```

### YAML
<a name="intrinsic-function-reference-importvalue-example.yaml"></a>

```
Fn::ImportValue:
  !Sub "${NetworkStackName}-SecurityGroupID"
```

## Unterstützte Funktionen
<a name="w2aac24c43c19"></a>

Sie können die folgenden Funktionen in der `Fn::ImportValue`-Funktion verwenden. Der Wert dieser Funktionen darf nicht von einer Ressource abhängen.
+ `Fn::Base64`
+ `Fn::FindInMap`
+ `Fn::If`
+ `Fn::Join`
+ `Fn::Select`
+ `Fn::Sub`
+ `Ref`