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
Die intrinsische 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. In den folgenden Beispielvorlagen exportiert Stack A VPC Sicherheitsgruppenwerte und Stack B importiert sie.
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 einesExport
keineRef
- oderGetAtt
-Funktionen verwenden, die von einer Ressource abhängen.Ebenso darf die
ImportValue
-Funktion keineRef
- oderGetAtt
-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
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
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
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
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
JSON
{ "Fn::ImportValue" :
sharedValueToImport
}
YAML
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"
Parameter
- sharedValueToImportieren
-
Der Stack-Ausgabewert, den Sie importieren möchten.
Rückgabewert
Der Stack-Ausgabewert.
Beispiel
JSON
{ "Fn::ImportValue" : {"Fn::Sub": "${NetworkStackNameParameter}-SubnetID" } }
YAML
Fn::ImportValue: !Sub "${NetworkStackName}-SecurityGroupID"
Unterstützte Funktionen
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