

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

# Menggunakan Pabrik Cetak Biru Perusahaan
<a name="using-factory"></a>

Bagian ini membantu Anda membuat, memperbarui, atau menghapus cetak biru di lingkungan Anda. [Ini memberikan instruksi terperinci untuk mengelola cetak biru sepanjang siklus hidupnya.](architecture-blueprint-lifecycle.md)

[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) Panduan ini tidak menyertakan informasi atau instruksi tentang cara menentukan cetak biru yang Anda rilis melalui Pabrik Cetak Biru Perusahaan.

## Prasyarat
<a name="using-factory-prereqs"></a>

Berikut ini adalah prasyarat untuk menggunakan Pabrik Cetak Biru Perusahaan di lingkungan Anda: AWS 
+ AWS Command Line Interface (AWS CLI), [diinstal](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [dikonfigurasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Izin untuk mengambil peran `ServiceCatalogEndUserRole` AWS Identity and Access Management (IAM)
+  CloudFormation Template atau AWS CDK konstruksi

## Membuat cetak biru
<a name="using-factory-create"></a>

Pipeline Enterprise Blueprint Factory menyebarkan cetak biru yang Anda tentukan dalam file konfigurasi. Pengembang memulai pipeline konfigurasi dengan menggabungkan file konfigurasi ke dalam repositori konfigurasi. Kemudian, Enterprise Blueprint Factory menggunakan `ServiceCatalogLaunchConstraintRole` untuk menyebarkan cetak biru sebagai produk di Service Catalog. Untuk informasi selengkapnya tentang tindakan yang dilakukan pipeline konfigurasi dan pipeline rilis saat Anda membuat cetak biru, lihat Pembuatan [cetak biru](architecture-blueprint-lifecycle.md#architecture-blueprint-lifecycle-create) dalam panduan ini.

**Untuk menambahkan cetak biru ke repositori produk**

1. Pastikan Anda telah menyiapkan Pabrik Cetak Biru Perusahaan Anda sesuai dengan petunjuk dalam [Menyiapkan Pabrik Cetak Biru Perusahaan dalam panduan ini](setup.md).

1. Konfirmasikan bahwa kebijakan untuk `ServiceCataloglogLaunchConstraintRole` peran tersebut memungkinkan Anda menyediakan sumber daya yang ditentukan dalam cetak biru.

1. Di repositori produk (`ServiceCatalog-BlueprintProductRepo`), buat folder untuk cetak biru baru.

1. Tempelkan template IAC (CloudFormation template atau AWS CDK konstruksi) ke dalam folder yang Anda buat.

1. Buat file bernama **product\_config.json** di folder yang Anda buat.

1. Buka file **product\_config.json**, dan rekatkan yang berikut ini ke dalam file:

   ```
   {
       "SchemaVersion": "1.0",
       "ProductVersionName": "1.0.1",
       "Deprecated_Versions" : [],
       "ProductVersionDescription": "<description>",
       "ProductType": "CLOUD_FORMATION_TEMPLATE",
       "Properties": {
           "TemplateFilePath": "./<folder name>/<file name>"
       }
   }
   ```

   Di mana:
   + `<description>`adalah deskripsi singkat dari versi cetak biru
   + `<folder name>`adalah nama folder yang Anda buat di repositori produk
   + `<file name>`adalah nama template IAc
**catatan**  
Anda dapat memperbarui versi skema atau nama versi produk agar sesuai dengan kebijakan organisasi Anda.

1. Simpan dan tutup file **product\_config.json**.

1. Masukkan perintah berikut untuk menggabungkan perubahan ke dalam repositori produk:

   ```
   cd ServiceCatalog-BlueprintProductRepo
   git add <folder name>/<file name> <folder name>\product_config.json
   git commit -m "The first version of <file name> blueprint"
   git push origin main
   ```

**Untuk memperbarui file konfigurasi**

1. Di repositori konfigurasi (`ServiceCatalog-ConfigRepo`), buka file **config.yml.**

1. Edit `portfolios` bagian dan `products` bagian sesuai kebutuhan untuk cetak biru baru. Untuk informasi selengkapnya, lihat [File konfigurasi](architecture-components.md#architecture-config-file) dalam panduan ini.

1. Simpan dan tutup file **config.yml.**

1. Masukkan perintah berikut untuk menggabungkan perubahan ke dalam repositori konfigurasi:

   ```
   cd ServiceCatalog-ConfigRepo
   git add config.yml
   git commit -m "<description of change>"
   git push origin main
   ```

   Persetujuan permintaan tarik ini memulai pipeline konfigurasi. Pipa konfigurasi membuat pipa rilis untuk produk.

**Untuk meninjau log penerapan**

1. Masuk ke akun administratif Enterprise Blueprint Factory.

1. Buka [konsol AWS CodePipeline](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Di **Name**, pilih pipeline rilis untuk produk. Secara default, nama pipeline adalah`BluePrint_<Product-Name>-<CloudFormation-Stack-Name>`.

1. Pilih **Lihat riwayat**.

1. Lihat status pipa dan eksekusi panggung. Untuk informasi selengkapnya tentang status, [lihat Melihat status eksekusi](https://docs.aws.amazon.com/codepipeline/latest/userguide/executions-view.html#pipelines-executions-status-console) di CodePipeline dokumentasi.

1. Jika pipa gagal, tinjau penyebab kegagalan. Untuk petunjuk tentang cara mengonfigurasi pemantauan untuk saluran pipa Anda, lihat [Memantau saluran pipa](https://docs.aws.amazon.com/codepipeline/latest/userguide/monitoring.html) dalam dokumentasi. CodePipeline Jika pipeline rilis gagal karena pemeriksaan cfn-lint atau cfn\_nag, perbaiki kesalahan dalam templat. Kirim permintaan tarik lain ke repo produk. Ini memulai ulang pipa rilis. Untuk informasi selengkapnya tentang memperbaiki kesalahan templat, lihat bagian [Pemecahan Masalah](#using-factory-troubleshooting) dalam panduan ini.

1. Tunggu hingga status pipeline rilis`Succeeded`.

**Untuk memvalidasi penerapan**

1. Masuk ke akun konsumen di organisasi.

1. Asumsikan peran `ServiceCatalogEndUserRole` IAM.

1. Buka [konsol Service Catalog](https://console.aws.amazon.com/servicecatalog/).

1. Di panel navigasi, pilih **Produk**.

1. Konfirmasikan bahwa produk baru tersedia dalam daftar produk.

## Memperbarui cetak biru
<a name="using-factory-update"></a>

Untuk informasi selengkapnya tentang tindakan yang dilakukan pipeline konfigurasi dan pipeline rilis saat Anda membuat cetak biru, lihat Pembaruan [cetak biru](architecture-blueprint-lifecycle.md#architecture-blueprint-lifecycle-update) dalam panduan ini.

**Untuk memperbarui cetak biru**

1. Di repositori produk, navigasikan ke folder untuk produk.

1. Tempel template IAc yang diperbarui. Pastikan nama file sama dengan versi sebelumnya.

1. Buka file **product\_config.json**.

1. Untuk`ProductVersionName`, perbarui nomor versi.

1. Jika Anda ingin mencegah versi produk sebelumnya diterapkan di masa mendatang, untuk`Deprecated_Versions`, masukkan nomor versi sebelumnya dalam daftar yang dipisahkan koma.

1. Masukkan perintah berikut untuk menggabungkan perubahan ke dalam repositori produk:

   ```
   cd ServiceCatalog-BlueprintProductRepo
   git add <folder name>/<file name> <folder name>\product_config.json
   git commit -m "Version <number> of <file name> blueprint"
   git push origin main
   ```

   Persetujuan permintaan tarik ini memulai jalur rilis untuk produk.

**Untuk meninjau log penerapan**

1. Masuk ke akun administratif Enterprise Blueprint Factory.

1. Buka [konsol AWS CodePipeline](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Di **Nama**, pilih pipeline rilis. Secara default, nama pipeline adalah`BluePrint_<Product-Name>-<CloudFormation-Stack-Name>`.

1. Pilih **Lihat riwayat**.

1. Lihat status pipa dan eksekusi panggung. Untuk informasi selengkapnya tentang status, [lihat Melihat status eksekusi](https://docs.aws.amazon.com/codepipeline/latest/userguide/executions-view.html#pipelines-executions-status-console) di CodePipeline dokumentasi.

1. Jika pipa gagal, tinjau penyebab kegagalan. Untuk petunjuk tentang cara mengonfigurasi pemantauan untuk saluran pipa Anda, lihat [Memantau saluran pipa](https://docs.aws.amazon.com/codepipeline/latest/userguide/monitoring.html) dalam dokumentasi. CodePipeline Jika pipeline rilis gagal karena pemeriksaan cfn-lint atau cfn\_nag, perbaiki kesalahan dalam templat. Kirim permintaan tarik lain ke repo produk. Ini memulai ulang pipa rilis. Untuk informasi selengkapnya tentang memperbaiki kesalahan templat, lihat bagian [Pemecahan Masalah](#using-factory-troubleshooting) dalam panduan ini.

1. Tunggu hingga status pipeline rilis`Succeeded`.

**Untuk memvalidasi pembaruan**

1. Masuk ke akun konsumen di organisasi.

1. Asumsikan peran `ServiceCatalogEndUserRole` IAM.

1. Buka [konsol Service Catalog](https://console.aws.amazon.com/servicecatalog/).

1. Di panel navigasi, pilih **Produk**.

1. Konfirmasikan bahwa versi produk baru tersedia dalam daftar produk.

## Menghapus cetak biru
<a name="using-factory-delete"></a>

Saat Anda menghapus produk, Service Catalog menghapus semua versi produk dari setiap portofolio yang berisi produk. Untuk informasi selengkapnya, lihat [Menghapus produk](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/productmgmt-delete.html) dalam dokumentasi Service Catalog. Untuk informasi selengkapnya tentang tindakan yang dilakukan pipeline konfigurasi dan pipeline rilis saat Anda membuat cetak biru, lihat Penghapusan [cetak biru](architecture-blueprint-lifecycle.md#architecture-blueprint-lifecycle-delete) dalam panduan ini.

**Untuk menghapus cetak biru**

1. Di repositori konfigurasi, buka file **config.yml.**

1. Edit bagian produk, hapus atau komentari produk yang ingin Anda hapus.

1. Simpan dan tutup file **config.yml.**

1. Masukkan perintah berikut untuk menggabungkan perubahan ke dalam repositori konfigurasi:

   ```
   cd ServiceCatalog-ConfigRepo
   git add config.yml
   git commit -m "<description of change>"
   git push origin main
   ```

   Persetujuan permintaan tarik ini memulai pipeline konfigurasi. Pipa konfigurasi menghapus produk dan pipa pelepasannya.

1. Di repositori produk, hapus folder untuk produk, termasuk isinya.

1. Masukkan perintah berikut untuk menggabungkan perubahan ke dalam repositori produk:

   ```
   cd ServiceCatalog-BlueprintProductRepo
   git add .
   git commit -m "Delete <file name> blueprint"
   git push origin main
   ```

**Untuk memvalidasi penghapusan**

1. Masuk ke akun konsumen di organisasi.

1. Asumsikan peran `ServiceCatalogEndUserRole` IAM.

1. Buka [konsol Service Catalog](https://console.aws.amazon.com/servicecatalog/).

1. Di panel navigasi, pilih **Produk**.

1. Konfirmasikan bahwa produk yang dihapus tidak lagi tersedia.

## Pemecahan Masalah
<a name="using-factory-troubleshooting"></a>

Saat Anda membuat atau memperbarui cetak biru, alat cfn-lint dan cfn-nag memvalidasi cetak biru. Untuk informasi selengkapnya tentang validasi di pipeline rilis, lihat [Rilis pipeline](architecture-components.md#architecture-release-pipeline) dalam panduan ini. Sintaks atau kesalahan keamanan yang dilaporkan menyebabkan pipeline gagal. Agar berhasil menyebarkan cetak biru melalui pipeline rilis, Anda harus memperbaiki kesalahan dalam cetak biru.

Berikut ini adalah contoh output yang menunjukkan dua kesalahan terkait keamanan, kegagalan dan peringatan.

```
BP-SNS.yml
---------------------------------------------------
BP-SNS.yml
---------------------------------------------------
| WARN W47
|
| Resource: ["ExampleTopic"]
| Line numbers: [5]
|
| SNS Topic should specify KmsMasterKeyId property
---------------------------------------------------
| FAIL F18
|
| Resource: ["ExampleTopicPolicy"]
| Line numbers: [10]
|
| SNS topic policy should not allow * principal

Failures count: 1
Warnings count: 1
```

Untuk memperbaiki kesalahan ini, dalam file cetak biru, Anda akan mengganti `*` prinsipal dalam kebijakan topik Amazon Simple Notification Service (Amazon SNS) dan mengaitkan kunci () AWS Key Management Service dengan AWS KMS topik. Contoh kode berikut menunjukkan pembaruan ini.

```
ExampleTopic:
    Type: AWS::SNS::Topic  
    Properties:
      TopicName: ExampleTopic
  ExampleTopicPolicy:
    Type: AWS::SNS::TopicPolicy
    Properties: 
      KmsMasterKeyId: alias/aws/sns  # Added KMS key
      PolicyDocument:
        Id: Id1
        Version: '2012-10-17'
        Statement:
        - Sid: Sid2
          Effect: Allow
          Principal:            
            "Service" : "s3.amazonaws.com"  # Replaced "AWS": '*'
          Action: 'sns:Publish'
          Resource: !Ref ExampleTopic
      Topics: 
        - !Ref ExampleTopic
```