

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

# Just-in-time penyediaan
<a name="jit-provisioning"></a>

Anda dapat menggunakan just-in-time provisioning (JITP) untuk menyediakan perangkat Anda ketika mereka pertama kali mencoba untuk terhubung. AWS IoT Untuk menyediakan perangkat, Anda harus mengaktifkan pendaftaran otomatis dan mengaitkan templat penyediaan dengan sertifikat CA yang digunakan untuk menandatangani sertifikat perangkat. Keberhasilan dan kesalahan penyediaan dicatat seperti di [Metrik penyediaan perangkat](metrics_dimensions.md#provisioning-metrics) Amazon. CloudWatch

**Topics**
+ [

## Ikhtisar JITP
](#jit-provisioning-overview)
+ [

## Daftarkan CA menggunakan templat penyediaan
](#jit-provisioning-registerCA-template)
+ [

## Daftarkan CA menggunakan nama templat penyediaan
](#jit-provisioning-registerCA-templateName)

## Ikhtisar JITP
<a name="jit-provisioning-overview"></a>

Ketika perangkat mencoba untuk terhubung AWS IoT dengan menggunakan sertifikat yang ditandatangani oleh sertifikat CA terdaftar, AWS IoT memuat template dari sertifikat CA dan menggunakannya untuk memanggil [RegisterThing](fleet-provision-api.md#register-thing). Alur kerja JITP pertama-tama mendaftarkan sertifikat dengan nilai status. `PENDING_ACTIVATION` Ketika alur penyediaan perangkat selesai, status sertifikat diubah menjadi. `ACTIVE`

AWS IoT mendefinisikan parameter berikut yang dapat Anda deklarasikan dan referensi dalam templat penyediaan:
+ `AWS::IoT::Certificate::Country`
+ `AWS::IoT::Certificate::Organization`
+ `AWS::IoT::Certificate::OrganizationalUnit`
+ `AWS::IoT::Certificate::DistinguishedNameQualifier`
+ `AWS::IoT::Certificate::StateName`
+ `AWS::IoT::Certificate::CommonName`
+ `AWS::IoT::Certificate::SerialNumber`
+ `AWS::IoT::Certificate::Id`

Nilai untuk parameter template penyediaan ini terbatas pada apa yang dapat diekstrak JITP dari bidang subjek sertifikat perangkat yang sedang disediakan. Sertifikat harus berisi nilai untuk semua parameter dalam badan template. `AWS::IoT::Certificate::Id`Parameter mengacu pada ID yang dihasilkan secara internal, bukan ID yang terkandung dalam sertifikat. Anda bisa mendapatkan nilai ID ini menggunakan `principal()` fungsi di dalam AWS IoT aturan. 

**catatan**  
Anda dapat menyediakan perangkat menggunakan fitur AWS IoT Core just-in-time provisioning (JITP) tanpa harus mengirim seluruh rantai kepercayaan pada koneksi pertama perangkat ke. AWS IoT Core Menyajikan sertifikat CA adalah opsional, tetapi perangkat diperlukan untuk mengirim ekstensi [Server Name Indication (SNI)](https://datatracker.ietf.org/doc/html/rfc3546#section-3.1) ketika terhubung ke. AWS IoT Core

### Contoh badan template
<a name="jit-provisioning-example-templatebody"></a>

File JSON berikut adalah contoh badan template dari template JITP lengkap. 

```
{
   "Parameters":{
      "AWS::IoT::Certificate::CommonName":{
         "Type":"String"
      },
      "AWS::IoT::Certificate::SerialNumber":{
         "Type":"String"
      },
      "AWS::IoT::Certificate::Country":{
         "Type":"String"
      },
      "AWS::IoT::Certificate::Id":{
         "Type":"String"
      }
   },
   "Resources":{
      "thing":{
         "Type":"AWS::IoT::Thing",
         "Properties":{
            "ThingName":{
               "Ref":"AWS::IoT::Certificate::CommonName"
            },
            "AttributePayload":{
               "version":"v1",
               "serialNumber":{
                  "Ref":"AWS::IoT::Certificate::SerialNumber"
               }
            },
            "ThingTypeName":"lightBulb-versionA",
            "ThingGroups":[
               "v1-lightbulbs",
               {
                  "Ref":"AWS::IoT::Certificate::Country"
               }
            ]
         },
         "OverrideSettings":{
            "AttributePayload":"MERGE",
            "ThingTypeName":"REPLACE",
            "ThingGroups":"DO_NOTHING"
         }
      },
      "certificate":{
         "Type":"AWS::IoT::Certificate",
         "Properties":{
            "CertificateId":{
               "Ref":"AWS::IoT::Certificate::Id"
            },
            "Status":"ACTIVE"
         }
      },
      "policy":{
         "Type":"AWS::IoT::Policy",
         "Properties":{
            "PolicyDocument":"{ \"Version\": \"2012-10-17\",		 	 	  \"Statement\": [{ \"Effect\": \"Allow\", \"Action\":[\"iot:Publish\"], \"Resource\": [\"arn:aws:iot:us-east-1:123456789012:topic/foo/bar\"] }] }"
         }
      }
   }
}
```

Templat sampel ini mendeklarasikan nilai untuk parameter `AWS::IoT::Certificate::CommonName``AWS::IoT::Certificate::SerialNumber`,`AWS::IoT::Certificate::Country`,, dan `AWS::IoT::Certificate::Id` penyediaan yang diekstraksi dari sertifikat dan digunakan di bagian tersebut. `Resources` Alur kerja JITP kemudian menggunakan template ini untuk melakukan tindakan berikut:
+ Daftarkan sertifikat dan atur statusnya ke PENDING\$1ACTIVE.
+ Buat sumber daya satu hal.
+ Buat satu sumber kebijakan.
+ Lampirkan kebijakan ke sertifikat.
+ Lampirkan sertifikat pada objek .
+ Perbarui status sertifikat ke AKTIF.

Penyediaan perangkat gagal jika sertifikat tidak memiliki semua properti yang disebutkan di `Parameters` bagian. `templateBody` Misalnya, jika `AWS::IoT::Certificate::Country` disertakan dalam templat, tetapi sertifikat tidak memiliki `Country` properti, penyediaan perangkat akan gagal.

Anda juga dapat menggunakan CloudTrail untuk memecahkan masalah dengan template JITP Anda. Untuk informasi tentang metrik yang dicatat di Amazon CloudWatch, lihat[Metrik penyediaan perangkat](metrics_dimensions.md#provisioning-metrics). Untuk informasi selengkapnya tentang penyediaan templat, lihat Templat [penyediaan](provision-template.md).

**catatan**  
Selama proses penyediaan, just-in-time provisioning (JITP) memanggil operasi API bidang kontrol lainnya. AWS IoT Panggilan ini mungkin melebihi [Kuota AWS IoT Pelambatan](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#throttling-limits) yang ditetapkan untuk akun Anda dan mengakibatkan panggilan terhambat. Hubungi [AWS Customer Support](https://console.aws.amazon.com/support/home) untuk menaikkan kuota throttling Anda jika perlu.

## Daftarkan CA menggunakan templat penyediaan
<a name="jit-provisioning-registerCA-template"></a>

Untuk mendaftarkan CA dengan menggunakan templat penyediaan lengkap, ikuti langkah-langkah berikut: 

1. Simpan template penyediaan Anda dan informasi ARN peran seperti contoh berikut sebagai file JSON:

   ```
   { 
        "templateBody" : "{\r\n    \"Parameters\" : {\r\n        \"AWS::IoT::Certificate::CommonName\": {\r\n            \"Type\": \"String\"\r\n        },\r\n        \"AWS::IoT::Certificate::SerialNumber\": {\r\n            \"Type\": \"String\"\r\n        },\r\n        \"AWS::IoT::Certificate::Country\": {\r\n            \"Type\": \"String\"\r\n        },\r\n        \"AWS::IoT::Certificate::Id\": {\r\n            \"Type\": \"String\"\r\n        }\r\n    },\r\n    \"Resources\": {\r\n        \"thing\": {\r\n            \"Type\": \"AWS::IoT::Thing\",\r\n            \"Properties\": {\r\n                \"ThingName\": {\r\n                    \"Ref\": \"AWS::IoT::Certificate::CommonName\"\r\n                },\r\n                \"AttributePayload\": {\r\n                    \"version\": \"v1\",\r\n                    \"serialNumber\": {\r\n                        \"Ref\": \"AWS::IoT::Certificate::SerialNumber\"\r\n                    }\r\n                },\r\n                \"ThingTypeName\": \"lightBulb-versionA\",\r\n                \"ThingGroups\": [\r\n                    \"v1-lightbulbs\",\r\n                    {\r\n                        \"Ref\": \"AWS::IoT::Certificate::Country\"\r\n                    }\r\n                ]\r\n            },\r\n            \"OverrideSettings\": {\r\n                \"AttributePayload\": \"MERGE\",\r\n                \"ThingTypeName\": \"REPLACE\",\r\n                \"ThingGroups\": \"DO_NOTHING\"\r\n            }\r\n        },\r\n        \"certificate\": {\r\n            \"Type\": \"AWS::IoT::Certificate\",\r\n            \"Properties\": {\r\n                \"CertificateId\": {\r\n                    \"Ref\": \"AWS::IoT::Certificate::Id\"\r\n                },\r\n                \"Status\": \"ACTIVE\"\r\n            },\r\n            \"OverrideSettings\": {\r\n                \"Status\": \"DO_NOTHING\"\r\n            }\r\n        },\r\n        \"policy\": {\r\n            \"Type\": \"AWS::IoT::Policy\",\r\n            \"Properties\": {\r\n                \"PolicyDocument\": \"{ \\\"Version\\\": \\\"2012-10-17		 	 	 \\\", \\\"Statement\\\": [{ \\\"Effect\\\": \\\"Allow\\\", \\\"Action\\\":[\\\"iot:Publish\\\"], \\\"Resource\\\": [\\\"arn:aws:iot:us-east-1:123456789012:topic\/foo\/bar\\\"] }] }\"\r\n            }\r\n        }\r\n    }\r\n}",
        "roleArn" : "arn:aws:iam::123456789012:role/JITPRole"
   }
   ```

   Dalam contoh ini, nilai `templateBody` bidang harus berupa objek JSON yang ditentukan sebagai string yang lolos dan hanya dapat menggunakan nilai-nilai dalam daftar [sebelumnya](#jit-provisioning-overview). Anda dapat menggunakan berbagai alat untuk membuat output JSON yang diperlukan, seperti `json.dumps` (Python) `JSON.stringify` atau (Node). Nilai `roleARN` bidang harus ARN dari peran yang `AWSIoTThingsRegistration` melekat padanya. Selain itu, template Anda dapat menggunakan yang sudah ada `PolicyName` alih-alih inline `PolicyDocument` dalam contoh. 

1. Daftarkan sertifikat CA dengan operasi [Register CACertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCACertificate.html) API atau perintah [https://docs.aws.amazon.com//cli/latest/reference/iot/register-ca-certificate.html](https://docs.aws.amazon.com//cli/latest/reference/iot/register-ca-certificate.html)CLI. Anda akan menentukan direktori template penyediaan dan peran informasi ARN yang Anda simpan di langkah sebelumnya:

   Berikut ini menunjukkan contoh cara mendaftarkan sertifikat CA dalam `DEFAULT` mode menggunakan AWS CLI:

   ```
   aws iot register-ca-certificate --ca-certificate file://your-ca-cert --verification-cert file://your-verification-cert 
                   --set-as-active --allow-auto-registration --registration-config file://your-template
   ```

   Berikut ini menunjukkan contoh cara mendaftarkan sertifikat CA dalam `SNI_ONLY` mode menggunakan AWS CLI:

   ```
   aws iot register-ca-certificate --ca-certificate file://your-ca-cert --certificate-mode SNI_ONLY
                    --set-as-active --allow-auto-registration --registration-config file://your-template
   ```

   Untuk informasi selengkapnya, lihat [Mendaftarkan Sertifikat CA Anda](https://docs.aws.amazon.com//iot/latest/developerguide/register-CA-cert.html).

1.  (Opsional) Perbarui pengaturan untuk sertifikat CA dengan menggunakan operasi [Update CACertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateCACertificate.html) API atau perintah [https://docs.aws.amazon.com//cli/latest/reference/iot/update-ca-certificate.html](https://docs.aws.amazon.com//cli/latest/reference/iot/update-ca-certificate.html)CLI. 

   Berikut ini menunjukkan contoh cara memperbarui sertifikat CA menggunakan AWS CLI:

   ```
   aws iot update-ca-certificate --certificate-id caCertificateId
                   --new-auto-registration-status ENABLE --registration-config file://your-template
   ```

## Daftarkan CA menggunakan nama templat penyediaan
<a name="jit-provisioning-registerCA-templateName"></a>

Untuk mendaftarkan CA menggunakan nama templat penyediaan, ikuti langkah-langkah berikut:

1. Simpan badan template penyediaan Anda sebagai file JSON. Anda dapat menemukan contoh badan template dalam [contoh badan template](#jit-provisioning-example-templatebody).

1. Untuk membuat template penyediaan, gunakan [CreateProvisioningTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningTemplate.html)API atau perintah CLI [https://docs.aws.amazon.com//cli/latest/reference/iot/create-provisioning-template.html](https://docs.aws.amazon.com//cli/latest/reference/iot/create-provisioning-template.html):

   ```
   aws iot create-provisioning-template --template-name your-template-name \
           --template-body file://your-template-body.json --type JITP \
           --provisioning-role-arn arn:aws:iam::123456789012:role/test
   ```
**catatan**  
Untuk just-in-time penyediaan (JITP), Anda harus menentukan jenis templat `JITP` saat membuat templat penyediaan. Untuk informasi selengkapnya tentang jenis templat, lihat [CreateProvisioningTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningTemplate.html)di *Referensi AWS API*.

1. Untuk mendaftarkan CA dengan nama template, gunakan [Register CACertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCACertificate.html) API atau perintah [https://docs.aws.amazon.com//cli/latest/reference/iot/register-ca-certificate.html](https://docs.aws.amazon.com//cli/latest/reference/iot/register-ca-certificate.html)CLI:

   ```
   aws iot register-ca-certificate --ca-certificate file://your-ca-cert --verification-cert file://your-verification-cert \
           --set-as-active --allow-auto-registration --registration-config templateName=your-template-name
   ```