

AWS App Runner tidak akan lagi terbuka untuk pelanggan baru mulai 30 April 2026. Jika Anda ingin menggunakan App Runner, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS App Runner ketersediaan](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html).

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

# Merujuk variabel lingkungan
<a name="env-variable"></a>

Dengan App Runner, Anda dapat mereferensikan rahasia dan konfigurasi sebagai variabel lingkungan dalam layanan Anda saat [membuat layanan](manage-create.md) atau [memperbarui](manage-configure.md) layanan. 

Anda dapat mereferensikan data konfigurasi yang tidak sensitif seperti batas waktu dan hitungan coba lagi dalam **Teks Biasa** sebagai pasangan nilai kunci. Data konfigurasi yang Anda referensikan dalam **Teks Biasa** tidak dienkripsi dan dapat dilihat oleh orang lain dalam konfigurasi layanan App Runner dan log aplikasi.

**catatan**  
Untuk alasan keamanan, jangan mereferensikan data sensitif apa pun dalam **Teks Biasa** di layanan App Runner Anda.

## Mereferensikan data sensitif sebagai variabel lingkungan
<a name="env-variable.sensitivedata"></a>

App Runner mendukung referensi data sensitif secara aman sebagai variabel lingkungan di layanan Anda. Pertimbangkan untuk menyimpan data sensitif yang ingin Anda referensikan di *AWS Secrets Manager*atau *AWS Systems Manager Parameter Store*. Kemudian, Anda dapat mereferensikannya dengan aman di layanan Anda sebagai variabel lingkungan dari konsol App Runner atau dengan memanggil API. Ini secara efektif memisahkan manajemen rahasia dan parameter dari kode aplikasi dan konfigurasi layanan Anda, meningkatkan keamanan keseluruhan aplikasi Anda yang berjalan di App Runner. 

**catatan**  
App Runner tidak mengenakan biaya untuk mereferensikan Secrets Manager dan SSM Parameter Store sebagai variabel lingkungan. Namun, Anda membayar harga standar untuk menggunakan Secrets Manager dan SSM Parameter Store.  
Untuk informasi selengkapnya tentang harga, lihat berikut ini:   
 [AWS Harga Secrets Manager](https://aws.amazon.com/secrets-manager/pricing)
 [AWS Harga Toko Parameter SSM](https://aws.amazon.com/systems-manager/pricing) 

 Berikut ini adalah proses untuk mereferensikan data sensitif sebagai variabel lingkungan: 

1. Menyimpan data sensitif, seperti kunci API, kredensyal database, parameter koneksi database, atau versi aplikasi sebagai rahasia atau parameter di salah satu AWS Secrets Manager atau AWS Systems Manager Parameter Store. 

1. Perbarui kebijakan IAM peran instans Anda agar App Runner dapat mengakses rahasia dan parameter yang disimpan di Secrets Manager dan SSM Parameter Store. Untuk informasi selengkapnya, lihat [Izin](#env-variable.sensitivedata.permissions). 

1. Referensikan rahasia dan parameter secara aman sebagai variabel lingkungan dengan menetapkan nama dan memberikan Nama Sumber Daya Amazon (ARN) mereka. Anda dapat menambahkan variabel lingkungan saat [membuat layanan](manage-create.md) atau [memperbarui konfigurasi layanan](manage-configure.md). Anda dapat menggunakan salah satu opsi berikut untuk menambahkan variabel lingkungan:
   +  Konsol Pelari Aplikasi 
   +  API Pelari Aplikasi 
   +  `apprunner.yaml`berkas konfigurasi 
**catatan**  
Anda tidak dapat menetapkan `PORT` sebagai nama untuk variabel lingkungan saat membuat atau memperbarui layanan App Runner Anda. Ini adalah variabel lingkungan yang dicadangkan untuk layanan App Runner. 

   Untuk informasi selengkapnya tentang cara mereferensikan rahasia dan parameter, lihat [Mengelola variabel lingkungan](env-variable-manage.md). 

**catatan**  
 Karena App Runner hanya menyimpan referensi ke rahasia dan parameter ARNs, data sensitif tidak terlihat oleh orang lain dalam konfigurasi layanan App Runner dan log aplikasi. 

## Pertimbangan-pertimbangan
<a name="env-variable.sensitivedata.considerations"></a>
+ Pastikan Anda memperbarui peran instans dengan izin yang sesuai untuk mengakses rahasia dan parameter di AWS Secrets Manager atau di AWS Systems Manager Parameter Store. Untuk informasi selengkapnya, lihat [Izin](#env-variable.sensitivedata.permissions). 
+ Pastikan AWS Systems Manager Parameter Store Akun AWS sama dengan layanan yang ingin Anda luncurkan atau perbarui. Saat ini, Anda tidak dapat mereferensikan parameter Penyimpanan Parameter SSM di seluruh akun. 
+ Ketika rahasia dan nilai parameter diputar atau diubah, nilai tersebut tidak diperbarui secara otomatis di layanan App Runner Anda. Menerapkan ulang layanan App Runner Anda karena App Runner hanya menarik rahasia dan parameter selama penerapan. 
+ Anda juga memiliki opsi untuk langsung memanggil AWS Secrets Manager dan AWS Systems Manager Parameter Store melalui SDK di layanan App Runner Anda. 
+ Untuk menghindari kesalahan, pastikan hal berikut saat mereferensikannya sebagai variabel lingkungan: 
  + Anda menentukan ARN rahasia yang tepat.
  + Anda menentukan nama yang tepat atau ARN dari parameter.

## Izin
<a name="env-variable.sensitivedata.permissions"></a>

Untuk mengaktifkan referensi rahasia dan parameter yang disimpan di Penyimpanan Parameter SSM AWS Secrets Manager atau SSM, tambahkan izin yang sesuai ke kebijakan IAM *peran instans* Anda untuk mengakses Secrets Manager dan SSM Parameter Store. 

**catatan**  
 App Runner tidak dapat mengakses sumber daya di akun Anda tanpa izin Anda. Anda memberikan izin melalui memperbarui kebijakan IAM Anda. 

Anda dapat menggunakan templat kebijakan berikut untuk memperbarui peran instans di konsol IAM. Anda dapat memodifikasi templat kebijakan ini untuk memenuhi kebutuhan spesifik Anda. Untuk informasi selengkapnya tentang memperbarui peran instance, lihat [Memodifikasi peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html) dalam *Panduan Pengguna IAM*.

**catatan**  
Anda juga dapat menyalin template berikut dari konsol App Runner saat [membuat variabel lingkungan](env-variable-manage.md#env-variable-manage.console). 

Salin, templat berikut ke peran instans Anda untuk menambahkan izin ke *rahasia* referensi dari *AWS Secrets Manager*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "secretsmanager:GetSecretValue",
            "kms:Decrypt*"
        ],
        "Resource": [
            "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret",
            "arn:aws:kms:us-east-1:111122223333:key/my-key"
         ]
     }
   ]
}
```

------

Salin template berikut ke peran instans Anda untuk menambahkan izin ke *parameter* referensi dari *AWS Systems Manager*Parameter Store.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameters"
            ],
            "Resource": [
            "arn:aws:ssm:us-east-1:111122223333:parameter/my-parameter"
            ]
        }
    ]
}
```

------

# Mengelola variabel lingkungan Anda
<a name="env-variable-manage"></a>

Mengelola variabel lingkungan untuk layanan App Runner Anda dengan menggunakan salah satu metode berikut:
+ [Konsol Pelari Aplikasi](#env-variable-manage.console)
+ [API Pelari Aplikasi atau AWS CLI](#env-variable-manage.api)

## Konsol Pelari Aplikasi
<a name="env-variable-manage.console"></a>

Saat [membuat layanan atau [memperbarui layanan](manage-configure.md)](manage-create.md) di konsol App Runner, Anda dapat menambahkan variabel lingkungan. 

### Menambahkan variabel lingkungan
<a name="env-variable-manage.console.add"></a>

**Untuk menambahkan variabel lingkungan**

1. Buka [konsol App Runner](https://console.aws.amazon.com/apprunner), dan di daftar **Wilayah**, pilih konsol Anda Wilayah AWS.

1. Berdasarkan apakah Anda membuat atau memperbarui layanan, lakukan salah satu langkah berikut:
   + Jika Anda membuat layanan baru, pilih **Buat layanan Pelari Aplikasi** dan buka **Konfigurasi Layanan**.
   +  Jika Anda memperbarui layanan yang ada, pilih layanan yang ingin Anda perbarui dan buka tab **Konfigurasi** layanan. 

1.  Pergi ke **variabel Lingkungan - opsional** di bawah **Pengaturan layanan**. 

1.  Pilih salah satu opsi berikut berdasarkan kebutuhan Anda: 
   + Pilih **Teks Biasa** dari **sumber variabel Lingkungan** dan masukkan pasangan nilai kunci-nya di bawah **nama variabel Lingkungan** dan **nilai variabel Lingkungan, masing-masing**. 
**catatan**  
Pilih **Teks Biasa** jika Anda ingin mereferensikan data yang tidak sensitif. Data ini tidak dienkripsi dan dapat dilihat oleh orang lain dalam konfigurasi layanan App Runner dan log aplikasi. 
   + Pilih **Secrets Manager** dari **sumber variabel Lingkungan** untuk mereferensikan rahasia yang disimpan AWS Secrets Manager sebagai variabel lingkungan dalam layanan Anda. Berikan nama variabel lingkungan dan Amazon Resource Name (ARN) dari rahasia yang Anda referensikan di bawah **Environment variable name dan Environment variable** value **masing-masing**. 
   + Pilih **Penyimpanan Parameter SSM** dari **sumber variabel Lingkungan** untuk mereferensikan parameter yang disimpan di Penyimpanan Parameter SSM sebagai variabel lingkungan dalam layanan Anda. Berikan nama variabel lingkungan dan ARN dari parameter yang Anda referensikan di bawah **nama variabel Lingkungan dan nilai variabel** **Lingkungan masing-masing**. 
**catatan**  
Anda tidak dapat menetapkan `PORT` sebagai nama untuk variabel lingkungan saat membuat atau memperbarui layanan App Runner Anda. Ini adalah variabel lingkungan yang dicadangkan untuk layanan App Runner. 
 Jika parameter Penyimpanan Parameter SSM Wilayah AWS sama dengan layanan yang ingin Anda luncurkan, Anda dapat menentukan Nama Sumber Daya Amazon (ARN) lengkap atau nama parameter. Jika parameter berada di wilayah yang berbeda, Anda perlu menentukan ARN lengkap. 
Pastikan parameter yang Anda referensikan berada di akun yang sama dengan layanan yang Anda luncurkan atau perbarui. Saat ini, Anda tidak dapat mereferensikan parameter Penyimpanan Parameter SSM di seluruh akun. 

1. Pilih **Tambahkan variabel lingkungan** untuk referensi ke variabel lingkungan lain. 

1. Perluas **templat kebijakan IAM** untuk melihat dan menyalin templat kebijakan IAM yang disediakan untuk AWS Secrets Manager dan Penyimpanan Parameter SSM. Anda hanya perlu melakukan ini jika Anda belum memperbarui kebijakan IAM dari peran instans Anda dengan izin yang diperlukan. Untuk informasi selengkapnya, lihat [Izin](env-variable.md#env-variable.sensitivedata.permissions).

### Menghapus variabel lingkungan
<a name="env-variable-manage.console.remove"></a>

Sebelum Anda menghapus variabel lingkungan, pastikan kode aplikasi Anda diperbarui untuk mencerminkan hal yang sama. Jika kode aplikasi tidak diperbarui, layanan App Runner Anda mungkin gagal.

**Untuk menghapus variabel lingkungan**

1. Buka [konsol App Runner](https://console.aws.amazon.com/apprunner), dan di daftar **Wilayah**, pilih konsol Anda Wilayah AWS.

1.  Buka tab **Konfigurasi** layanan yang ingin Anda perbarui. 

1.  Pergi ke **variabel Lingkungan - opsional** di bawah **Pengaturan layanan**. 

1.  Pilih **Hapus** di samping variabel lingkungan yang ingin Anda hapus. Anda menerima pesan untuk mengonfirmasi penghapusan. 

1.  Pilih **Hapus**. 

## API Pelari Aplikasi atau AWS CLI
<a name="env-variable-manage.api"></a>

Anda dapat mereferensikan data sensitif yang disimpan di Secrets Manager dan SSM Parameter Store dengan menambahkannya sebagai variabel lingkungan dalam layanan Anda. 

**catatan**  
Perbarui kebijakan IAM peran instans Anda agar App Runner dapat mengakses rahasia dan parameter yang disimpan di Secrets Manager dan SSM Parameter Store. Untuk informasi selengkapnya, lihat [Izin](env-variable.md#env-variable.sensitivedata.permissions).

**Untuk mereferensikan rahasia dan konfigurasi sebagai variabel lingkungan**

1. Buat rahasia atau konfigurasi di Secrets Manager atau SSM Parameter Store. 

   Contoh berikut menunjukkan cara membuat rahasia dan parameter menggunakan SSM Parameter Store.   
**Example Membuat rahasia - Permintaan**  

   Contoh berikut menunjukkan cara membuat rahasia yang mewakili kredensi database.

   ```
   aws secretsmanager create-secret \
   —name DevRdsCredentials \
   —description "Rds credentials for development account." \
   —secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"
   ```  
**Example Membuat rahasia - Respon**  

   ```
   arn:aws:secretsmanager:<region>:<aws_account_id>:secret:DevRdsCredentials
   ```  
**Example Membuat konfigurasi - Permintaan**  

   Contoh berikut menunjukkan cara membuat parameter yang mewakili string koneksi RDS.

   ```
   aws systemsmanager put-parameter \
   —name DevRdsConnectionString \
   —value "mysql2://dev-mysqlcluster-rds.com:3306/diegor" \
   —type "String" \
   —description "Rds connection string for development account."
   ```  
**Example Membuat konfigurasi - Respon**  

   ```
   arn:aws:ssm:<region>:<aws_account_id>:parameter/DevRdsConnectionString
   ```

1. Referensikan rahasia dan konfigurasi yang disimpan di Secrets Manager dan SSM Parameter Store dengan menambahkannya sebagai variabel lingkungan. Anda dapat menambahkan variabel lingkungan saat membuat atau memperbarui layanan App Runner. 

   Contoh berikut menunjukkan cara mereferensikan rahasia dan konfigurasi sebagai variabel lingkungan pada layanan App Runner berbasis kode dan berbasis gambar.  
**Example Masukan file.json untuk layanan App Runner berbasis gambar**  

   ```
   {
     "ServiceName": "example-secrets",
     "SourceConfiguration": {
       "ImageRepository": {
         "ImageIdentifier": "<image-identifier>",
         "ImageConfiguration": {
           "Port": "<port>",
           "RuntimeEnvironmentSecrets": {
             "Credential1":"arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX",
             "Credential2":"arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
           }
         },
         "ImageRepositoryType": "ECR_PUBLIC"
       }
     },
     "InstanceConfiguration": {
       "Cpu": "1 vCPU",
       "Memory": "3 GB",
       "InstanceRoleArn": "<instance-role-arn>"
     }
   }
   ```  
**Example Layanan App Runner berbasis gambar - Permintaan**  

   ```
   aws apprunner create-service \
   --cli-input-json file://input.json
   ```  
**Example Layanan App Runner berbasis gambar - Respons**  

   ```
   {
   ...
         "ImageRepository": {
            "ImageIdentifier":"<image-identifier>",
            "ImageConfiguration":{
               "Port": "<port>",
               "RuntimeEnvironmentSecrets":{
                  "Credential1": "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX",
                  "Credential2": "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
               },                
               "ImageRepositoryType":"ECR"
         }      
      },
      "InstanceConfiguration": {
           "CPU": "1 vCPU",
           "Memory": "3 GB",
           "InstanceRoleArn: "<instance-role-arn>"
      }
   ...
   }
   ```  
**Example Masukan file.json untuk layanan App Runner berbasis kode**  

   ```
   {
     "ServiceName": "example-secrets",
     "SourceConfiguration": {
       "AuthenticationConfiguration": {
         "ConnectionArn": "arn:aws:apprunner:us-east-1:123456789012:connection/my-github-connection/XXXXXXXXXX"
       },
       "AutoDeploymentsEnabled": false,
       "CodeRepository": {
         "RepositoryUrl": "<repository-url>",
         "SourceCodeVersion": {
           "Type": "BRANCH",
           "Value": "main"
         },
         "CodeConfiguration": {
           "ConfigurationSource": "API",
           "CodeConfigurationValues": {
             "Runtime": "<runtime>",
             "BuildCommand": "<build-command>",
             "StartCommand": "<start-command>",
             "Port": "<port>",
             "RuntimeEnvironmentSecrets": {
               "Credential1":"arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX",
               "Credential2":"arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
             }
           }
         }
       }
     },
     "InstanceConfiguration": {
       "Cpu": "1 vCPU",
       "Memory": "3 GB",
       "InstanceRoleArn": "<instance-role-arn>"
     }
   }
   ```  
**Example Layanan Pelari Aplikasi berbasis kode - Permintaan**  

   ```
   aws apprunner create-service \
   --cli-input-json file://input.json
   ```  
**Example Layanan Pelari Aplikasi berbasis kode - Respons**  

   ```
   {
   ...
      "SourceConfiguration":{
         "CodeRepository":{
            "RepositoryUrl":"<repository-url>",
            "SourceCodeVersion":{
               "Type":"Branch",
               "Value":"main"
            },
            "CodeConfiguration":{
               "ConfigurationSource":"API",
               "CodeConfigurationValues":{
                  "Runtime":"<runtime>",
                  "BuildCommand":"<build-command>",
                  "StartCommand":"<start-command>",
                  "Port":"<port>",               
                  "RuntimeEnvironmentSecrets":{
                     "Credential1" : "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXX",
                     "Credential2" : "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
                  } 
               }
            }
         },
         "InstanceConfiguration": {
           "CPU": "1 vCPU",
           "Memory": "3 GB",
           "InstanceRoleArn: "<instance-role-arn>"
      }
   ...
   }
   ```

1. `apprunner.yaml`Model diperbarui untuk mencerminkan rahasia yang ditambahkan. 

   Berikut ini adalah contoh `apprunner.yaml` model yang diperbarui.  
**Example `apprunner.yaml`**  

   ```
   version: 1.0
   runtime: python3
   build:
     commands:
       build:
         - python -m pip install flask
   run:
     command: python app.py
     network:
       port: 8080
     env:
       - name: MY_VAR_EXAMPLE
         value: "example"
     secrets:
       - name: my-secret
         value-from: "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX"
       - name: my-parameter
         value-from: "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
       - name: my-parameter-only-name
         value-from: "parameter-name"
   ```