

Ini adalah *Panduan Referensi CloudFormation Template* baru. Harap perbarui bookmark dan tautan Anda. Untuk bantuan memulai CloudFormation, lihat [Panduan AWS CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

# `Fn::ImportValue`
<a name="intrinsic-function-reference-importvalue"></a>

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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-crossstackref.html) Panduan Pengguna.AWS CloudFormation *

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.
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
<a name="intrinsic-function-reference-importvalue-export.json"></a>

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
<a name="intrinsic-function-reference-importvalue-export.yaml"></a>

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
<a name="intrinsic-function-reference-importvalue-import.json"></a>

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
<a name="intrinsic-function-reference-importvalue-import.yaml"></a>

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
<a name="w2aac24c43c11"></a>

### JSON
<a name="intrinsic-function-reference-importvalue-syntax.json"></a>

```
{ "Fn::ImportValue" : sharedValueToImport }
```

### YAML
<a name="intrinsic-function-reference-importvalue-syntax.yaml"></a>

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
<a name="w2aac24c43c13"></a>

sharedValueToImpor  
Nilai output stack yang ingin Anda impor.

## Nilai yang dikembalikan
<a name="w2aac24c43c15"></a>

Nilai output stack.

## Contoh
<a name="w2aac24c43c17"></a>

### JSON
<a name="intrinsic-function-reference-importvalue-example.json"></a>

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

### YAML
<a name="intrinsic-function-reference-importvalue-example.yaml"></a>

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

## Fungsi yang didukung
<a name="w2aac24c43c19"></a>

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`