View a markdown version of this page

Fn:: ImportValue - AWS CloudFormation

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, Export nama harus unik dalam suatu Wilayah.

  • Saat menggunakan Export danFn::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 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.

  • 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:

!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

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