Ini adalah Panduan Referensi CloudFormation Template baru. Harap perbarui bookmark dan tautan Anda. Untuk bantuan memulai CloudFormation, lihat Panduan AWS CloudFormation Pengguna.
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. Untuk informasi selengkapnya, lihat Panduan: Mengacu ke output sumber daya di CloudFormation tumpukan lain di Panduan Pengguna.AWS CloudFormation
Tip
Untuk mereferensikan output tumpukan di seluruh AWS akun atau Wilayah tanpa memerlukan ekspor eksplisit, gunakan. Fn::GetStackOutput Fn::GetStackOutputmembuat referensi lemah yang diselesaikan pada waktu pembuatan atau pembaruan tumpukan dan tidak memerlukan tumpukan yang direferensikan untuk mendeklarasikan file. Export
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,
Exportnama harus unik dalam suatu Wilayah. -
Saat menggunakan
ExportdanFn::ImportValue, referensi cross-stack terbatas pada akun dan Wilayah yang sama. Untuk mereferensikan output tumpukan di seluruh akun atau Wilayah, gunakanFn::GetStackOutput. -
Untuk output, nilai
Nameproperti tidakExportdapat digunakanRefatauGetAttfungsi yang bergantung pada sumber daya.Demikian pula,
ImportValuefungsi tidak dapat menyertakanRefatauGetAttfungsi yang bergantung pada sumber daya. -
Setelah tumpukan lain mengimpor nilai output, Anda tidak dapat menghapus tumpukan yang mengekspor nilai output atau memodifikasi nilai output yang diekspor. Semua impor harus dihapus sebelum Anda dapat menghapus tumpukan ekspor atau mengubah nilai output.
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:
!ImportValuesharedValueToImport
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
- dibagikan ValueToImport
-
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