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 tidakExport
dapat digunakanRef
atauGetAtt
fungsi yang bergantung pada sumber daya.Demikian pula,
ImportValue
fungsi tidak dapat menyertakanRef
atauGetAtt
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