Fn::ImportValue - AWS CloudFormation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Fn::ImportValue

Fungsi intrinsik Fn::ImportValue mengembalikan nilai output yang diekspor oleh tumpukan lain. Anda biasanya menggunakan fungsi ini untuk membuat referensi lintas-tumpukan. Dalam contoh cuplikan templat berikut, Tumpukan A mengekspor nilai-nilai grup keamanan VPC dan Tumpukan B mengimpornya.

catatan

Pembatasan berikut berlaku untuk referensi cross-stack:

  • Untuk masing-masing Akun AWS, Export nama harus unik dalam suatu Wilayah.

  • Anda tidak dapat membuat referensi cross-stack di seluruh Wilayah. Anda dapat menggunakan fungsi intrinsik Fn::ImportValue untuk mengimpor hanya nilai yang telah diekspor dalam Wilayah yang sama.

  • Untuk output, nilai Name properti tidak Export dapat digunakan Ref atau GetAtt fungsi yang bergantung pada sumber daya.

    Demikian pula, ImportValue fungsi tidak dapat menyertakan Ref atau GetAtt fungsi yang bergantung pada sumber daya.

  • Anda tidak dapat menghapus tumpukan jika tumpukan lain mereferensikan salah satu outputnya.

  • Anda tidak dapat memodifikasi atau menghapus nilai output yang direferensikan oleh tumpukan lain.

JSON

Ekspor Tumpukan A

"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

Ekspor Tumpukan A

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

Impor Tumpukan B

"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

Impor Tumpukan B

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'

Pernyataan

JSON

{ "Fn::ImportValue" : sharedValueToImport }

YAML

Anda dapat menggunakan nama fungsi penuh:

Fn::ImportValue: sharedValueToImport

Sebagai alternatif, Anda dapat menggunakan bentuk pendek:

!ImportValue sharedValueToImport
penting

Anda tidak dapat menggunakan bentuk pendek !ImportValue ketika berisi bentuk pendek!Sub.

# do not use !ImportValue !Sub '${NetworkStack}-SubnetID'

Sebaliknya, Anda harus menggunakan nama fungsi lengkap, misalnya:

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

Parameter

sharedValueToImpor

Nilai output stack yang ingin Anda impor.

Nilai yang dikembalikan

Nilai output stack.

Contoh

JSON

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

YAML

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

Fungsi yang didukung

Anda dapat menggunakan fungsi berikut di fungsi Fn::ImportValue. Nilai dari fungsi-fungsi ini tidak dapat bergantung pada sumber daya.

  • Fn::Base64

  • Fn::FindInMap

  • Fn::If

  • Fn::Join

  • Fn::Select

  • Fn::Sub

  • Ref