Edge Microgateway için Docker'ı Kullanma

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Bu konuda, Docker container'ında Edge Microgateway'in nasıl çalıştırılacağı açıklanmaktadır. Bu konuda ele alınan adımlar; Docker, Docker komutları ve Edge Microgateway kurulumu ve yapılandırması hakkında temel bilgilere sahip olduğunuzu varsayar. Daha fazla bilgi için Docker ve Edge Microgateway belgelerine bakın.

Ön koşullar

Edge Microgateway'i bir Docker container'ında çalıştırmadan önce aşağıdaki görevleri yapmanız gerekir:

  • Apigee kuruluşunuz/ortamınız için Edge Mikro Ağ Geçidi'ni yapılandırın:

    edgemicro configure -o your_org -e your_env -u your_username

    Yapılandırma hakkında daha fazla bilgi için 1. Bölüm: Edge Mikro Ağ Geçidini Yapılandırma bölümüne bakın.

  • Yapılandırma adımlarını uyguladıktan sonra yapılandırma dosyasını bulun. Varsayılan konum şudur:

    $HOME/.edgemicro/your_org-your_env-config.yaml

    your_org ve your_env, edgemicro config komutunu çalıştırdığınızda kullandığınız kuruluş ve ortamdır. Bir Docker container'ında Edge Microgateway'i başlattığınızda bu dosyaya ihtiyacınız olacaktır.

  • edgemicro config komutunu çalıştırdığınızda döndürülen anahtara ve gizli bilgi bilgilerine sahip olduğunuzdan emin olun. Örneğin:

    The following credentials are required to start edge micro
      key: d9c34e1aff68ed969273c016699eabf48780e4f652242e72fc88a43e21252cb0
      secret: 3bc95a71c86a3c8ce04537fbcb788158731t51dfc6cdec13b7c05aa0bd969430
    
  • Bir Docker container'ında Edge Microgateway başlatmadan önce, kimliği doğrulanmış API proxy çağrıları yapmak için gereken Apigee Edge varlıklarını oluşturmanız (veya oluşturmanız) gerekir. Bu varlıklar arasında Edge Microgateway-aware proxy, bir API Ürünü, Geliştirici ve Geliştirici Uygulaması bulunur. Talimatların tamamı için Apigee Edge'de varlık oluşturma bölümüne bakın.

Edge Micro'yu Docker container'ı olarak çalıştırma

  1. Edge Microgateway için Docker görüntüsünü indirin:

    docker pull gcr.io/apigee-microgateway/edgemicro:latest
  2. Sonraki adımlara geçmeden önce, Önkoşullar bölümündeki tüm adımları uyguladığınızdan emin olun.

  3. $HOME/.edgemicro bölgesinde bulunan Edge Microgateway yapılandırma dosyasını base64 ile kodlamak için aşağıdaki komutu çalıştırın:

    export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`

    Bu örnekte your_org ve your_env, edgemicro config komutunu çalıştırdığınızda kullandığınız kuruluş ve ortamdır.

    Komutun etrafına vurgu işaretleri (`) yerleştirmeyi unutmayın. Örneğin:

    export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`
  4. Edge Microgateway'i kapsayıcı olarak çalıştırın. Bu komut, Edge Microgateway'i başlatmak için container çalışma zamanı tarafından kullanılan çeşitli ortam değişkenlerini ayarlar:

    chown -R 100:101 ~/.edgemicro/ \
    docker run -P -p 8000:8000 -d --name edgemicro \
    -v /var/tmp:/opt/apigee/logs \
    -e EDGEMICRO_PROCESSES=1 \
    -e EDGEMICRO_ORG=your_org \
    -e EDGEMICRO_ENV=your_env \
    -e EDGEMICRO_KEY=your_key \
    -e EDGEMICRO_SECRET=your_secret \
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
    -e "LOG_CONSOLE_OUTPUT_TO_FILE=false" \
    -e SERVICE_NAME=edgemicro \
    --security-opt=no-new-privileges \
    --cap-drop=ALL \
    gcr.io/apigee-microgateway/edgemicro:latest

    Parametreler

      <tr>
        <td><code>SERVICE_NAME</code></td>
        <td>If you are on Kubernetes, this parameter is auto-populated. Otherwise,
          you can set it to anything you wish. If you specify nothing, the service
          name is set to <code>default</code>.</td>
      </tr>
      <tr>
        <tr>
        <td><code>DEBUG</code></td>
        <td>Set to <code>*</code> to enable debugging. </td>
      </tr>
      <tr>
        <td><code>HTTP_PROXY</code>
            <code>HTTPS_PROXY</code></td>
        <td>Use when Edge Microgateway is
          running behind a firewall and the gateway cannot communicate with Apigee
          Edge. For more
          information, see <a href="operation-and-configuration-reference-edge-microgateway#settingupedgemicrogatewaybehindacompanyfirewall">Setting up Edge Microgateway behind a company firewall</a>. 
          <p>For example: <code>HTTP_PROXY=http://10.203.0.1:5187/</code></p></td>
      </tr>
      <tr>
        <td><code>NO_PROXY</code></td>
        <td>A comma delimited list of domains that Edge Microgateway should not proxy to. 
          For more information, see <a href="operation-and-configuration-reference-edge-microgateway#settingupedgemicrogatewaybehindacompanyfirewall">Setting up Edge Microgateway behind a company firewall</a>.
          <p>For example: <code>localhost,127.0.0.1,localaddress,.localdomain.com</code></p></td>
      </tr>
      <tr>
      <tr>
        <tr>
        <td><code>NODE_EXTRA_CA_CERTS</code></td>
        <td>(Optional) Use this parameter if you are using a CA that's not trusted
          by default by Node.js. Set the value of this parameter to the path to a
          file containing one or more trusted certificates in PEM format. For
          details, see <a href="#tls_certificates">TLS certificates</a>.</td>
      </tr>
      <tr>
        <td><code>--security-opt</code></td>
        <td>(Optional) Sets desired Docker security options. See <a href="https://docs.docker.com/engine/reference/run/#security-configuration">Security configuration</a> in the Docker documentation.</td>
      </tr>
      <tr>
        <td><code>--cap-drop</code></td>
        <td>(Optional) Sets limits on Linux capabilities permitted in the container. See <a href="https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities">Runtime privilege and Linux capabilities</a> in the Docker documentation.</td>
      </tr>
    </tbody>
    

    Parametre Açıklama
    -P Açığa çıkan tüm bağlantı noktalarını ana makineye yayınlayın. Ayrıca bkz. Docker çalıştırma referansı.
    -p Tek bir bağlantı noktasını veya bağlantı noktasını açık bir şekilde eşleyin. Ayrıca bkz. Docker çalıştırma referansı.
    -d Ayrı modda çalıştır. Ayrıca bkz. Docker çalıştırma referansı.
    -v, -- volume Birim eklemeyi belirtir. Edge Microgateway'i Docker container'ında TLS kullanacak şekilde yapılandırırsanız günlük dosyası dizinini eklerseniz 8443 numaralı bağlantı noktasını ortaya çıkarmanız gerektiğini unutmayın. Ayrıca bkz. VOLUME [paylaşılan dosya sistemleri]. Ayrıca bkz. Docker Container'ında TLS'yi kullanma.
    -w, -- workdir (İsteğe bağlı) edgemicro.sock ve edgemicro.pid dosyalarının oluşturulması gereken dizinin yolunu belirtir. Kök edgemicro dosya adını değiştiremezsiniz. Varsayılan olarak geçerli çalışma dizini yolunu belirtir.

    Örnek:

    docker run -P -p 8000:8000 -d -w /tmp --name edgemicro 
    ...
    EDGEMICRO_ORG Edge Mikro Ağ Geçidi'ni yapılandırmak için kullandığınız Apigee kuruluşunun adı.
    EDGEMICRO_ENV Edge Mikro Ağ Geçidi'ni yapılandırmak için kullandığınız Apigee ortamının adı.
    EDGEMICRO_PROCESSES Başlatılacak işlem sayısı.
    EDGEMICRO_KEY Edge Mikro Ağ Geçidi'ni yapılandırdığınızda döndürülen anahtar.
    EDGEMICRO_SECRET Edge Mikro Ağ Geçidi'ni yapılandırdığınızda döndürülen gizli anahtar.
    EDGEMICRO_CONFIG Base64 olarak kodlanmış Edge Microgateway yapılandırma dosyasını içeren bir değişken.
    LOG_CONSOLE_OUTPUT_TO_FILE (Boole) Günlük çıktısının nereye gönderileceğini belirtmenize olanak tanır. Günlük dosyası seçeneklerini belirtme bölümüne bakın.

    Örneğin:

    chown -R 100:101 ~/.edgemicro/ 
    docker run -P -p 8000:8000 -d --name edgemicro
    -v /var/tmp:/opt/apigee/logs
    -e EDGEMICRO_PROCESS=1
    -e EDGEMICRO_ORG=docs
    -e EDGEMICRO_ENV=test
    -e EDGEMICRO_KEY=d9c34e1aff68ed969273b016699eabf48780e4f652242e72fc88a23e21252cb0
    -e EDGEMICRO_SECRET=3bc95a71c86a3c8ce04137fbcb788158731t51dfc6cdec13b7c05aa0bd969430
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG"
    -e SERVICE_NAME=edgemicro
    --security-opt=no-new-privileges
    --cap-drop=ALL
    gcr.io/apigee-microgateway/edgemicro

    1. Kapsayıcının çalışıp çalışmadığını kontrol etmek için:

      docker ps

      Şuna benzer bir çıkış alırsınız:

      CONTAINER ID    IMAGE         COMMAND                CREATED          STATUS          PORTS                                             NAMES
      8b92e082ea9c    edgemicro    "/tmp/entrypoint.sh"   12 minutes ago   Up 12 minutes    0.0.0.0:8000->8000/tcp, 0.0.0.0:32775->8443/tcp    edgemicro
      

    Günlük dosyası çıkış seçeneklerini belirtme

    Edge Microgateway yapılandırma parametresi to_console, günlük bilgilerini bir günlük dosyası yerine standart çıkışa göndermenizi sağlar. Edge Microgateway'i bir Docker kapsayıcısında çalıştırma adımlarını uygularsanız container varsayılan olarak stdout'u ve hata çıkışını şu konumda bulunan kapsayıcıda bulunan bir dosyaya yönlendirir: ${APIGEE_ROOT}/logs/edgemicro.log.

    Günlük bilgilerinin edgemicro.log öğesine gönderilmesini önlemek için kapsayıcıyı çalıştırırken LOG_CONSOLE_OUTPUT_TO_FILE değişkenini kullanın.

    Aşağıdaki tabloda, to_console ile LOG_CONSOLE_OUTPUT_TO_FILE kullandığınızda kaydedilen günlük çıkışı davranışı açıklanmaktadır:

    to_console: true

    LOG_CONSOLE_OUTPUT_TO_FILE=false

    • Günlük dosyalarını yönetme bölümünde açıklandığı gibi Edge Microgateway günlük dosyasına hiçbir günlük gönderilmez.
    • Günlükler edgemicro.log dosyasına gönderilmeyecek.
    to_console: true

    LOG_CONSOLE_OUTPUT_TO_FILE=true

    • Günlük dosyalarını yönetme bölümünde açıklandığı gibi Edge Microgateway günlük dosyasına hiçbir günlük gönderilmez.
    • Günlükler edgemicro.log dosyasına gönderilecek.
    to_console: false

    LOG_CONSOLE_OUTPUT_TO_FILE=true

    • Günlükler, Günlük dosyalarını yönetme bölümünde açıklandığı gibi Edge Microgateway günlük dosyasına gönderilir.
    • Günlükler edgemicro.log dosyasına gönderilecek.

    API çağrısını test etme

    Edge Mikro Ağ Geçidi'ni kapsayıcıda başlattıktan sonra kapsayıcıya API çağrıları yapabilirsiniz. Örneğin API'nizin temel yolu /hello ise:

    http://localhost:8000/hello

    Örnek çıktı:

    {"error":"missing_authorization","error_description":"Missing Authorization header"}
    

    Bu yanıtı görmeniz, Edge Microgateway'in API çağrısını başarıyla işlediği anlamına gelir. Ancak Edge Microgateway, kimlik doğrulama için varsayılan olarak API anahtarı gerektirir. Sonraki bölümde API'yi geçerli bir API anahtarıyla test edeceksiniz.

    Bir API'yi geçerli bir API anahtarıyla test etme

    Edge kullanıcı arayüzünde, daha önce oluşturduğunuz Geliştirici Uygulaması'na gidin. Geliştirici Uygulaması sayfasında Tüketici Anahtarı'nı gösterin ve kopyalayın. Bu değer API anahtarıdır. Kimliği doğrulanmış API çağrıları yapmak için bu anahtarı kullanacaksınız.

    x-api-key başlığıyla API'yi aşağıdaki gibi çağırın. Geliştirici Uygulaması'ndan kopyaladığınız Tüketici Anahtarı değeri API anahtarıdır. Varsayılan olarak Edge Microgateway, anahtarı aşağıdaki gibi x-api-key adlı bir üstbilgide iletmenizi bekler:

    curl -i http://localhost:8000/hello -H "x-api-key:apikey"

    Örneğin:

    curl -i http://localhost:8000/hello -H "x-api-key:PydUKRDGIXRqF2xh4usn1FLHbhGKVIz"

    API anahtarları ve OAuth jetonları ile Edge Mikro Ağ Geçidi üzerinden kimliği doğrulanmış API çağrıları yapma hakkında daha fazla bilgi edinmek için 4. Bölüm: Güvenli Edge Mikro Ağ Geçidi bölümüne bakın.

    Uç Mikro Ağ Geçidini Durdurma

    Edge Mikro Ağ Geçidi'ni durdurmak için aşağıdaki Docker komutunu kullanın:

    docker stop edgemicro
    

    Edge Mikro Ağ Geçidini Yeniden Başlatma

    Edge Mikro Ağ Geçidi'ni durdurduktan sonra şu Docker komutuyla yeniden başlatabilirsiniz:

    docker start edgemicro
    

    Docker container'ında TLS'yi kullanma

    Bu bölümde, Docker container'ında çalışan Edge Microgateway için TLS'nin nasıl yapılandırılacağı açıklanmaktadır. Edge Mikro Ağ Geçidi sunucusunu gelen istekler (kuzey yönü) için TLS kullanacak şekilde ve Edge Microgateway'i, hedef uç noktalara giden istekler (güneye giden yön) için bir TLS istemcisi olacak şekilde yapılandırabilirsiniz.

    Sertifika dosyalarının yerleştirileceği yer

    Edge Microgateway çalıştıran Docker kapsayıcısının /opt/apigee/.edgemicro üzerinde bir ekleme noktası var. Edge Mikro Ağ Geçidi'ni TLS sertifikalarını kullanacak şekilde yapılandırdığınızda sertifika dosyalarını bu ekleme noktasında kullanıma sunabilir ve Edge Microgateway yapılandırma dosyasında bunlara başvurabilirsiniz. Bu yapılandırma dosyası genellikle $HOME/.edgemicro dizininde bulunur ve your_org-your_env-config.yaml olarak adlandırılır. Örneğin:

    ...
    edgemicro:
      ssl:
       key: /opt/apigee/.edgemicro/southbound/tls.key
       cert: /opt/apigee/.edgemicro/southbound/tls.crt
    ...
    

    Node.js tarafından güvenilmeyen bir CA kullanma

    Node.js tarafından varsayılan olarak güvenilmeyen (kendinden imzalı sertifika gibi) bir Sertifika Yetkilisi (CA) kullanıyorsanız kapsayıcıyı çalıştırırken NODE_EXTRA_CA_CERTS parametresini kullanmayı düşünün.

    Bu parametreyi, PEM biçiminde bir veya daha fazla güvenilir sertifika içeren bir dosyanın yoluna ayarlayın. Bu parametrenin nasıl kullanıldığını görmek için Kuzeye giden TLS'yi yapılandırma ve Güneye giden TLS'yi yapılandırma örneklerine bakın.

    Örneğin:

    chown -R 100:101 ~/.edgemicro/ \
    docker run -P -p 8443:8443 -d --name edgemicro \
    -v $HOME/.edgemicro:/opt/apigee/.edgemicro \
    -v $HOME/.edgemicro:/opt/apigee/logs \
    -e NODE_EXTRA_CA_CERTS=/opt/apigee/.edgemicro/rootca.pem \
    -e EDGEMICRO_PORT=8443 \
    -e EDGEMICRO_ORG=docs \
    -e EDGEMICRO_ENV=test \
    -e EDGEMICRO_KEY=ac36574905fb54fdae65fc5433e831bec2680efb98220a355f2e917e52973c \
    -e EDGEMICRO_SECRET=aac81dff6c326eaa222d53c15c8841fa78ea863bf4472568c9ce2d80a3bc56 \
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
    --link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro
    

    Ayrıca bkz. Edge Micro'yu Docker container'ı olarak çalıştırma.

    TLS doğrulamasını devre dışı bırakma

    Önerilmese de, bazı durumlarda bir container'da çalışan Edge Microgateway için TLS doğrulamasını devre dışı bırakmak isteyebilirsiniz. TLS'yi devre dışı bırakma özelliği varsayılan olarak Edge Microgateway Docker kapsayıcısında yerleşik değildir. Bu görevi tamamlamak üzere Edge Microgateway için özelleştirilmiş bir Docker görüntüsü oluşturmanız gerekir. Aşağıda, özel görüntü oluşturma ve TLS doğrulamasını devre dışı bırakmayla ilgili genel talimatlar bulunmaktadır.

    1. https://github.com/apigee-internal/microgateway adresinden Edge Microgateway kaynak deposunu klonlayın veya indirin.

    2. cd işlemini, kaynak kodu dizinindeki microgateway/kubernetes/docker/edgemicro dizinine yapıştırın.

      Örneğin:

      cd $HOME/git/microgateway/kubernetes/docker/edgemicro
      
    3. entrypoint.sh dosyasını açın ve NODE_TLS_REJECT_UNAUTHORIZED ortam değişkenini kabul etmek için kodu değiştirin. Daha sonra, kapsayıcıyı çalıştırdığınızda bu değişken için bir değer belirtirsiniz.

    4. Docker container'ını oluşturun:

      docker build -t edgemicro .
      
    5. Kapsayıcıyı çalıştırdığınızda, -e NODE_TLS_REJECT_UNAUTHORIZED = 1 seçeneğini belirtin. Örneğin:

    chown -R 100:101 ~/.edgemicro/ \
    docker run -P -p 8443:8443 -d --name edgemicro \
    -v $HOME/.edgemicro:/opt/apigee/.edgemicro \
    -v $HOME/.edgemicro:/opt/apigee/logs \
    -e NODE_TLS_REJECT_UNAUTHORIZED = 1 \
    -e EDGEMICRO_PORT=8443 \
    -e EDGEMICRO_ORG=docs \
    -e EDGEMICRO_ENV=test \
    -e EDGEMICRO_KEY=ac36574905fb54fdae65fc5433e831bec2680efb98220a355f2e917e52973c \
    -e EDGEMICRO_SECRET=aac81dff6c326eaa222d53c15c8841fa78ea863bf4472568c9ce2d80a3bc56 \
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
    --link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro
    

    Örnek: Kuzeye giden TLS'yi yapılandırma

    Bu bölümde, Edge Microgateway sunucusunda kuzeye giden (gelen) bir TLS bağlantısının nasıl oluşturulacağı açıklanmaktadır. Kuzeye giden TLS, istemcilerin Edge Microgateway'e API çağrıları yaparken HTTPS kullanmasına olanak tanır. Aşağıdaki örnekte kendinden imzalı sertifikalar kullanılmaktadır.

    1. Intital kurulum adımları

    1. Sisteminizde openssl.cnf dosyasını bulun. Örneğin, /etc/ssl/openssl.cnf.
    2. opensssl.cnf dosyasını düzenlemek için açın.
    3. Yapılandırma dosyanızda req_extensions bulunduğundan emin olun. Örneğin, dosyanızda aşağıdakine benzer bilgiler bulunur:

      [ req ]
      ...
      req_extensions          = v3_req
      ...
      
      [ v3_req ]
      extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
      basicConstraints = CA:FALSE
      keyUsage = nonRepudiation, digitalSignature, keyEncipherment
      
    4. Doğru SNI özelliklerini oluşturmak için openssl.cnf öğesine aşağıdaki dizeyi ekleyin:

      [ alt_names ]
      DNS.1 = www.example.com
      DNS.2 = example.com
      DNS.3 = localhost
      DNS.4 = localhost.localdomain
      DNS.5 = 127.0.0.1
      DNS.6 = ::1
      DNS.7 = fe80::1
      

      Örnek opensssl.cnf dosyası:

      [ req ]
      distinguished_name      = req_distinguished_name
      attributes              = req_attributes
      req_extensions          = v3_req
      
      [ v3_req ]
      extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
      basicConstraints = CA:FALSE
      keyUsage = nonRepudiation, digitalSignature, keyEncipherment
      
      [ req_distinguished_name ]
      countryName                     = Country Name (2 letter code)
      countryName_min                 = 2
      countryName_max                 = 2
      stateOrProvinceName             = State or Province Name (full name)
      localityName                    = Locality Name (eg, city)
      0.organizationName              = Organization Name (eg, company)
      organizationalUnitName          = Organizational Unit Name (eg, section)
      commonName                      = Common Name (eg, fully qualified host name)
      commonName_max                  = 64
      emailAddress                    = Email Address
      emailAddress_max                = 64
      
      [ req_attributes ]
      challengePassword               = A challenge password
      challengePassword_min           = 4
      challengePassword_max           = 20
      
      [ alt_names ]
      DNS.1 = www.example.com
      DNS.2 = example.com
      DNS.3 = localhost
      DNS.4 = localhost.localdomain
      DNS.5 = 127.0.0.1
      DNS.6 = ::1
      DNS.7 = fe80::1
      
    5. Henüz yapmadıysanız Edge Mikro Ağ Geçidi'ni başlatmak ve yapılandırmak için Önkoşullar bölümünde verilen adımları uygulayın. Bu işlemi tamamladığınızda Edge Microgateway'e Duyarlı Proxy, API Ürünü, Geliştirici ve Geliştirici Uygulaması oluşturmuş olmanız gerekir. Ayrıca edgemicro configure komutunu çalıştırmış ve bir anahtar ve gizli anahtar almış olmanız gerekir.

    2. Kendinden imzalı sertifikalar oluşturma

    Ardından, TLS'yi kurmak için ihtiyaç duyacağınız sertifikaları ve anahtarları oluşturun:

    1. cd ile $HOME/.edgemicro dizinine.
    2. Aşağıdaki bash komut dosyasını oluşturun. İstediğiniz adı verebilirsiniz. Örneğin: keygen.sh.

      #!/bin/bash
      # generate ca
      openssl genrsa -out rootca.key 2048
      openssl req -x509 -new -nodes -key rootca.key -sha256 -days 1024 -out rootca.pem
      # generate key
      openssl genrsa -out tls.key 2048
      openssl req -new -key tls.key -out tls.csr
      # sign cert
      openssl x509 -req -in tls.csr -CA rootca.pem -CAkey rootca.key -CAcreateserial -out tls.crt -days 1024 -sha256 -extensions 'v3_req' -extfile path/openssl.cnf
      
    3. Bash dosyasında, openssl.cnf dosyası yolunun doğru olduğundan emin olun.

    4. Bash dosyasını çalıştırın. Sertifika bilgilerini girmeniz istenecektir. Ortak Ad için localhost kullandığınızdan emin olun.

    5. Aşağıdaki dosyaların oluşturulduğundan emin olun:

      • rootca.key
      • rootca.pem
      • tls.key
      • tls.csr
      • rootca.srl
      • tls.crt

    3. Edge Microgateway yapılandırma dosyasını düzenleyin

    1. Edge Micro yapılandırma dosyasını bir düzenleyicide açın. Örneğin:

      vi $HOME/.edgemicro/myorg-test-config.yaml
      
    2. edgemicro kıtasını aşağıdaki gibi düzenleyin. port ve ssl özelliklerinde değişiklik yaptığınıza dikkat edin:

      edge_config:
      ...
      edgemicro:
        port: 8443
        max_connections: 1000
        config_change_poll_interval: 600
        ssl:
          key: /opt/apigee/.edgemicro/tls.key
          cert: /opt/apigee/.edgemicro/tls.crt
          passphrase: admin123
          rejectUnauthorized: true
          requestCert: false
        logging:
      ...
      
    3. $HOME/.edgemicro konumunda bulunan Edge Microgateway yapılandırma dosyasını base64 olarak kodlamak için aşağıdaki komutu yürütün:

      export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`

      Bu örnekte your_org ve your_env, edgemicro config komutunu çalıştırdığınızda kullandığınız kuruluş ve ortamdır.

      Komutun etrafına vurgu işaretleri (`) yerleştirmeyi unutmayın. Örneğin:

      export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`

    Ayrıca bkz. Edge Micro'yu Docker container'ı olarak çalıştırma.

    4. Kapsayıcıyı çalıştırın

    1. Docker container'ını Edge Microgateway ile çalıştırmak için aşağıdaki komutu yürütün:

      chown -R 100:101 ~/.edgemicro/ \
      docker run -P -p 8443:8443 -d --name edgemicro \
      -v path_to_your_edgemicro_dir:/opt/apigee/.edgemicro \
      -v path_to_your_logs_dir:/opt/apigee/logs \
      -e NODE_EXTRA_CA_CERTS=/opt/apigee/.edgemicro/rootca.pem \
      -e EDGEMICRO_PORT=8443 \
      -e EDGEMICRO_ORG=$EDGEMICRO_ORG \
      -e EDGEMICRO_ENV=$EDGEMICRO_ENV \
      -e EDGEMICRO_KEY=$EDGEMICRO_KEY \
      -e EDGEMICRO_SECRET=$EDGEMICRO_SECRET \
      -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
      gcr.io/apigee-microgateway/edgemicro:latest
      
    2. Komutta kullanılan aşağıdaki parametrelere dikkat edin. Bunlar, Edge Micro'yu Docker container'ı olarak çalıştırma bölümünde açıklanan temel komuttan farklıdır.

      • port, 8443 olarak ayarlandı.
      • Anahtar ve sertifika dosyalarını eklemek için bir birim bağlantısı kullanılır.
      • NODE_EXTRA_CA_CERTS değişkeni, özel bir CA eklemek için kullanılır (kendinden imzalı sertifikalarda gerektiği gibi).

    5. TLS yapılandırmasını test etme

    1. Kurulumu test etmek için aşağıdaki cURL komutunu yürütün. Komutun yerine Basepath ve API anahtarınızı girin. Aşağıdaki örnekte, rootca.pem öğesinin bulunduğu dizinde olduğunuz ve oluşturduğunuz proxy'nin temel yoluna (/hello) sahip olduğu varsayılmaktadır:

      curl -v https://localhost:8443/hello --cacert rootca.pem \
      -H "x-api-key: Az82fdnfONVCOOE4NKhajxAboDgA3FAo"
      
    2. Ayrıntılı cURL çıkışı, TLS el sıkışmanın her adımını gösterir. HTTP 200 yanıtı görürseniz yapılandırma başarılı olmuş demektir:

      *   Trying ::1...ey:Az82fdnfONVCOOE4NKhajxAboDgA3FAo"
      * TCP_NODELAY set
      * Connected to localhost (::1) port 8443 (#0)
      * ALPN, offering h2
      * ALPN, offering http/1.1
      * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
      * successfully set certificate verify locations:
      *   CAfile: rootca.pem
        CApath: none
      * TLSv1.2 (OUT), TLS handshake, Client hello (1):
      * TLSv1.2 (IN), TLS handshake, Server hello (2):
      * TLSv1.2 (IN), TLS handshake, Certificate (11):
      * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
      * TLSv1.2 (IN), TLS handshake, Server finished (14):
      * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
      * TLSv1.2 (OUT), TLS change cipher, Client hello (1):
      * TLSv1.2 (OUT), TLS handshake, Finished (20):
      * TLSv1.2 (IN), TLS change cipher, Client hello (1):
      * TLSv1.2 (IN), TLS handshake, Finished (20):
      * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
      * ALPN, server accepted to use http/1.1
      * Server certificate:
      *  subject: C=US; ST=CO; L=Boulder; O=Docs; OU=Docs; CN=localhost; emailAddress=docs@apigee.com
      *  start date: Dec 14 22:35:28 2018 GMT
      *  expire date: Oct  3 22:35:28 2021 GMT
      *  common name: localhost (matched)
      *  issuer: C=US; ST=CO; L=Boulder; O=Docs; OU=Docs; CN=localhost; emailAddress=docs@apigee.com
      *  SSL certificate verify ok.
      > GET /hello HTTP/1.1
      > Host: localhost:8443
      > User-Agent: curl/7.54.0
      > Accept: */*
      > x-api-key:Az82fdnfaONVCOE4NKhajxAboDA3FAo
      >
      < HTTP/1.1 200 OK
      < x-powered-by: Apigee
      < access-control-allow-origin: *
      < x-frame-options: ALLOW-FROM RESOURCE-URL
      < x-xss-protection: 1
      < x-content-type-options: nosniff
      < content-type: text/plain; charset=utf-8
      < etag: W/"d-GHB1ZrJKk/wdVTdB/jgBsw"
      < date: Fri, 14 Dec 2018 22:43:13 GMT
      < via: 1.1 google
      < alt-svc: clear
      < x-response-time: 1325
      < Connection: keep-alive
      < Transfer-Encoding: chunked
      <
      * Connection #0 to host localhost left intact
      Hello, Guest!
      

    Örnek: Güneye giden TLS'yi yapılandırma

    Bu bölümde, Edge Microgateway sunucusu ile bir arka uç hedef uygulaması arasında güneye giden (giden) TLS bağlantısının nasıl oluşturulacağı açıklanmaktadır. Aşağıdaki örnekte kendinden imzalı sertifikalar kullanılmaktadır.

    1. İlk kurulum adımları

    1. Sisteminizde openssl.cnf dosyasını bulun. Örneğin, /etc/ssl/openssl.cnf.
    2. opensssl.cnf dosyasını düzenlemek için açın.
    3. Yapılandırma dosyanızda req_extensions bulunduğundan emin olun. Örneğin, dosyanızda aşağıdakine benzer bilgiler bulunur:

      [ req ]
      ...
      req_extensions          = v3_req
      ...
      
      [ v3_req ]
      extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
      basicConstraints = CA:FALSE
      keyUsage = nonRepudiation, digitalSignature, keyEncipherment
      
    4. Doğru SNI özelliklerini oluşturmak için openssl.cnf öğesine aşağıdaki dizeyi ekleyin:

      [ alt_names ]
      DNS.1 = helloworld
      DNS.2 = localhost
      DNS.3 = localhost.localdomain
      DNS.4 = 127.0.0.1
      DNS.5 = ::1
      DNS.6 = fe80::1
      

      Örnek opensssl.cnf dosyası:

      [ req ]
      distinguished_name      = req_distinguished_name
      attributes              = req_attributes
      req_extensions          = v3_req
      
      [ v3_req ]
      extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
      basicConstraints = CA:FALSE
      keyUsage = nonRepudiation, digitalSignature, keyEncipherment
      
      [ req_distinguished_name ]
      countryName                     = Country Name (2 letter code)
      countryName_min                 = 2
      countryName_max                 = 2
      stateOrProvinceName             = State or Province Name (full name)
      localityName                    = Locality Name (eg, city)
      0.organizationName              = Organization Name (eg, company)
      organizationalUnitName          = Organizational Unit Name (eg, section)
      commonName                      = Common Name (eg, fully qualified host name)
      commonName_max                  = 64
      emailAddress                    = Email Address
      emailAddress_max                = 64
      
      [ req_attributes ]
      challengePassword               = A challenge password
      challengePassword_min           = 4
      challengePassword_max           = 20
      
      [ alt_names ]
      DNS.1 = helloworld
      DNS.2 = localhost
      DNS.3 = localhost.localdomain
      DNS.4 = 127.0.0.1
      DNS.5 = ::1
      DNS.6 = fe80::1
      
    5. edgemicro configure komutunu çalıştırın:

      edgemicro configure -o your_org -e your_env -u your_username

      Yapılandırma hakkında daha fazla bilgi için 1. Bölüm: Edge Mikro Ağ Geçidini Yapılandırma bölümüne bakın.

    6. edgemicro configure aracından döndürülen anahtar ve gizli bilgi kimlik bilgilerini kopyalayın. Kapsayıcıyı çalıştırmak için bu değerlere ihtiyacınız olacak. Örneğin:

      The following credentials are required to start edge micro
        key: d9c34e1aff68ed969273c016699eabf48780e4f652242e72fc88a43e21252cb0
        secret: 3bc95a71c86a3c8ce04537fbcb788158731t51dfc6cdec13b7c05aa0bd969430
      

    2. Node.js hedef uygulaması oluşturma

    1. cd ile .edgemicro dizinine.

    2. Aşağıdaki bash komut dosyasını oluşturun. İstediğiniz adı verebilirsiniz. Örneğin: keygen.sh.

      #!/bin/bash
      # generate ca
      openssl genrsa -out rootca.key 2048
      openssl req -x509 -new -nodes -key rootca.key -sha256 -days 1024 -out rootca.pem
      # generate key
      openssl genrsa -out tls.key 2048
      openssl req -new -key tls.key -out tls.csr
      # sign cert
      openssl x509 -req -in tls.csr -CA rootca.pem -CAkey rootca.key -CAcreateserial -out tls.crt -days 1024 -sha256 -extensions 'v3_req' -extfile path/openssl.cnf
      
    3. Bash dosyasında, openssl.cnf dosyası yolunun doğru olduğundan emin olun.

    4. Bash dosyasını çalıştırın. Sertifika bilgilerini girmeniz istenecektir. Ortak Ad için hellworld kullandığınızdan emin olun.

    5. Aşağıdaki dosyaların oluşturulduğundan emin olun:

      • rootca.key
      • rootca.pem
      • tls.key
      • tls.csr
      • rootca.srl
      • tls.crt
    6. server.js adlı yeni bir dosya oluşturun.

      'use strict';
      
      const express = require('express');
      const https = require('https');
      const fs = require('fs');
      
      const options = {
        key: fs.readFileSync("tls.key"),
        cert: fs.readFileSync("tls.crt")
      };
      
      // Constants
      const PORT = 9443;
      const HOST = '0.0.0.0';
      
      // App
      const app = express();
      app.get('/', (req, res) => {
        res.send('Hello world\n');
      });
      
      https.createServer(options, app).listen(PORT);
      
    7. server.js ile aynı dizinde bir package.json dosyası oluşturun. Örneğin:

      {
        "name": "helloworld",
        "version": "1.0.0",
        "description": "",
        "main": "server.js",
        "scripts": {
          "test": "echo \"Error: no test specified\" && exit 1",
          "start": "node server.js"
        },
        "author": "",
        "license": "ISC",
        "dependencies": {
          "express": "^4.16.4",
          "fs": "0.0.1-security",
          "https": "^1.0.0"
        }
      }
      
    8. Bağımlılıkları almak için npm install komutunu çalıştırın.

    9. server.js ile aynı dizinde yeni bir Dockerfile oluşturun. Burada WORKDIR, Node.js uygulamanızın kökünün yoludur:

      FROM node:8-alpine
      WORKDIR path-to-your-node-app
      COPY package*.json ./
      
      RUN npm install
      COPY . .
      EXPOSE 9443
      CMD [ "npm", "start" ]
      
    10. Docker görüntüsünü oluşturun:

      docker build -t helloworld . 
      
    11. Örnek uygulamayı başlatın:

      docker run -P -p 9443:9443 --name helloworld helloworld
      

    3. Apigee Edge'de varlık oluşturun

    1. Bu ayarlarla Edge Mikro Ağ Geçidi'ne duyarlı bir proxy oluşturun. Daha fazla bilgi için Edge'de Edge Microgateway uyumlu API proxy'si oluşturma bölümüne bakın.

      • Proxy adı: edgemicro_local
      • Düzeltme: 1
      • Temel yol: /local
      • Hedef: https://helloworld:9443
    2. Bir API ürünü oluşturun. Ayrıntılı bilgi için Ürün oluşturma başlıklı makaleyi inceleyin.

    3. Geliştirici oluşturun. Ayrıntılar için Geliştirici oluşturma başlıklı makaleyi inceleyin.

    4. Geliştirici uygulaması oluşturun. Ayrıntılar için Geliştirici uygulaması oluşturma konusuna bakın

    4. Kapsayıcıyı çalıştırın

    1. Edge Micro yapılandırma dosyasını bir düzenleyicide açın. Örneğin:

      vi $HOME/.edgemicro/myorg-test-config.yaml
      
    2. edgemicro kıtasını aşağıdaki gibi düzenleyin. port ve ssl özelliklerinde değişiklik yaptığınıza dikkat edin:

      edge_config:
      ...
      edgemicro:
        port: 8443
        max_connections: 1000
        config_change_poll_interval: 600
        ssl:
          key: /opt/apigee/.edgemicro/tls.key
          cert: /opt/apigee/.edgemicro/tls.crt
          passphrase: admin123
          rejectUnauthorized: true
          requestCert: false
        logging:
      ...
      
    3. $HOME/.edgemicro bölgesinde bulunan Edge Microgateway yapılandırma dosyasını base64 ile şifrelemek için aşağıdaki komutu çalıştırın:

      export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`

      Bu örnekte your_org ve your_env, edgemicro config komutunu çalıştırdığınızda kullandığınız kuruluş ve ortamdır.

      Komutun etrafına vurgu işaretleri (`) yerleştirmeyi unutmayın. Örneğin:

      export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`
    4. Docker container'ında Edge Microgateway'i başlatmak için aşağıdaki komutu çalıştırın.

      chown -R 100:101 ~/.edgemicro/ \
      docker run -P -p 8443:8443 -d --name edgemicro \
      -v path_to_your_edgemicro_dir:/opt/apigee/.edgemicro \
      -v path_to_your_logs_dir:/opt/apigee/logs \
      -e EDGEMICRO_PORT=8443 \
      -e EDGEMICRO_ORG=$EDGEMICRO_ORG \
      -e EDGEMICRO_ENV=$EDGEMICRO_ENV \
      -e EDGEMICRO_KEY=$EDGEMICRO_KEY \
      -e EDGEMICRO_SECRET=$EDGEMICRO_SECRET \
      -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
      --link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro
      

    5. TLS yapılandırmasını test etme

    1. Kurulumu test etmek için aşağıdaki cURL komutunu yürütün. Mikro ağ geçidi duyarlı proxy'de kullandığınız temel yolu ve Apigee Edge'de oluşturduğunuz Developer uygulamasından alınan API anahtarını değiştirin. Örneğin:

      curl https://localhost:8443/local -k -H "x-api-key: xxxx" -v
      

      Şu hatayı görmeniz gerekir:

      ...
      *  subject: C=CA; ST=Ontario; L=Toronto; O=Google Canada; OU=Google Cloud Platform; CN=edgemicro; emailAddress=srinandans@google.com
      *  start date: Dec 10 02:12:22 2018 GMT
      *  expire date: Sep 29 02:12:22 2021 GMT
      *  issuer: C=CA; ST=Ontario; L=Toronto; O=Google Canada; OU=Google Cloud Platform; CN=edgemicro; emailAddress=srinandans@google.com
      *  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
      > GET /local HTTP/1.1
      > Host: localhost:8443
      > User-Agent: curl/7.54.0
      > Accept: */*
      > x-api-key: 9fVC65pFj8LrmlPmVyxFjx4KgAHTxqSd
      >
      < HTTP/1.1 502 Bad Gateway
      < Date: Wed, 12 Dec 2018 05:25:01 GMT
      < Connection: keep-alive
      < Content-Length: 93
      <
      * Connection #0 to host localhost left intact
      {"message":"unable to verify the first certificate","code":"UNABLE_TO_VERIFY_LEAF_SIGNATURE"}
      
    2. Edge Mikro Ağ Geçidi'ni yeniden çalıştırın, ancak bu kez NODE_EXTRA_CA_CERTS değişkenini ekleyin.

      chown -R 100:101 ~/.edgemicro/ \
      docker run -P -p 8443:8443 -d --name edgemicro \
      -v path_to_your_edgemicro_dir:/opt/apigee/.edgemicro \
      -v path_to_your_logs_dir:/opt/apigee/logs \
      -e NODE_EXTRA_CA_CERTS=/opt/apigee/.edgemicro/rootca.pem \
      -e EDGEMICRO_PORT=8443 \
      -e EDGEMICRO_ORG=$EDGEMICRO_ORG \
      -e EDGEMICRO_ENV=$EDGEMICRO_ENV \
      -e EDGEMICRO_KEY=$EDGEMICRO_KEY \
      -e EDGEMICRO_SECRET=$EDGEMICRO_SECRET \
      -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
      --link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro
      
    3. Aşağıdaki cURL komutunu yürütün. Basepath ve API anahtarınızı önceki gibi değiştirin. Örneğin:

      curl https://localhost:8443/local -k -H "x-api-key: xxxx" -v
      
    4. Çıkışı kontrol edin. İşlem başarılı olduğunda HTTP 200 durum yanıtı alırsınız:

      ...
      > GET /local HTTP/1.1
      > Host: localhost:8443
      > User-Agent: curl/7.54.0
      > Accept: */*
      > x-api-key: 9fVC65pFj8LrmlPmVyxFjx4KgAHTxqSd
      >
      < HTTP/1.1 200 OK
      < x-powered-by: Express
      < content-type: text/html; charset=utf-8
      < etag: W/"c-M6tWOb/Y57lesdjQuHeB1P/qTV0"
      < date: Wed, 12 Dec 2018 05:49:28 GMT
      < x-response-time: 421
      < Connection: keep-alive
      < Transfer-Encoding: chunked
      <
      Hello world
      

    Özel eklenti ekleme

    Özel eklentiler yazarak mikro ağ geçidine yeni özellikler ve imkanlar ekleyebilirsiniz. Özel eklentiler, mikro ağ geçidinden geçen istek ve yanıtlarla programlı bir şekilde etkileşim kurmanıza olanak tanır.

    Eklentileri, docker container'ında çalışan bir Edge Microgateway örneğine dağıtmak için iki seçeneğiniz vardır:

    Bu bölümün geri kalanında, standart bir Edge Mikro Geçit kurulumu için eklenti yazma ve yapılandırma hakkında bilgi sahibi olduğunuz varsayılır. Aksi takdirde, Özel eklentiler geliştirme konusuna bakın.

    Seçenek A: Eklenti dizinini bir birime ekleyin

    (v.2.5.27'de eklenmiştir) Birim bağlantısı aracılığıyla eklenti ekleme adımları, Edge Mikro Ağ Geçidi'ne özel eklenti eklemek için gereken adımlara benzer. Docker container'ını çalıştırdığınızda, eklenti dizinini yerel sisteminize (birim), container ekleme noktasına (/opt/apigee/plugins) ekleyebilirsiniz. Ardından, Edge Microgateway yapılandırma dosyasında yerel birim dizinini belirtirsiniz.

    Aşağıdaki adımlarda, özel eklentiler eklemek için Docker ekleme noktasının nasıl kullanılacağı gösterilmektedir.

    1. Edge Mikro Ağ Geçidini Durdur:

      edgemicro stop
      
    2. Özel eklentileriniz için bir dizin oluşturun. Örneğin,

      $HOME/edgemicro/custom/plugins
      
    3. Edge Microgateway yapılandırma dosyasına özel eklenti dizinini ekleyin. Örneğin:

        plugins:
          dir: $HOME/edgemicro/custom/plugins
          sequence:
            - oauth
            - response-uppercase
        ````
      
    4. Eklentinizi Yazma için basit bir eklenti sayfasındaki talimatlara göre yazın ve test edin. Eklenti kodunuzu doğru dizin yapısına yerleştirdiğinizden emin olun. Örneğin:

      custom
        |
        |-- plugins
          |
          |- response-uppercase
          |     |- index.js
          |     |- package.json
          |- request-headers
          |     | - index.js
                | - package.json
      
    5. Docker container'ını aşağıdakine benzer bir komutla çalıştırın. Eklentiler dizinini Docker birimine eklemek için -v seçeneğini kullanın. Aşağıdaki örnek komutta, eklenti dizini $HOME/edgemicro/custom/plugins (özel eklentinin bulunduğu yer) kapsayıcının ekleme noktasına /opt/apigee/plugins eşlenmiştir:

      chown -R 100:101 ~/.edgemicro/ \
      docker run -P -p 8000:8000 -d --name edgemicro \
      -v /var/tmp:/opt/apigee/logs \
      -v $HOME/edgemicro/custom/plugins:/opt/apigee/plugins \
      -e EDGEMICRO_PROCESSES=1 \
      -e EDGEMICRO_ORG=jdoe \
      -e EDGEMICRO_ENV=test \
      -e EDGEMICRO_KEY=39c4b561100cd7f258768d1072f3e1d7c17b5f36a18fe89972bb5c9ce7e58fb \
      -e EDGEMICRO_SECRET=f5f9e239a38b4e6cc99c2aa067716a84aebdcff9580a7925fc500e402b1a5fa \
      -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
      -e SERVICE_NAME=edgemicro \
      --security-opt=no-new-privileges \
      --cap-drop=ALL gcr.io/apigee-microgateway/edgemicro:latest
      
    6. Eklentiyi test etmek için API'nizi çağırın.

    Daha fazla bilgi için VOLUME [paylaşılan dosya sistemleri] bölümüne bakın.

    B Seçeneği: Eklentileri kapsayıcının içine oluşturma

    Bu seçenekte eklentileri kapsayıcınızın içine derlersiniz.

    1. Eklentilerinizi paketleyin

    1. Eklentinizi Yazma için basit bir eklenti sayfasındaki talimatlara göre yazın ve test edin.

    2. Eklenti kodunuzu doğru dizin yapısına yerleştirin. Eklenti dizinleri belirli bir yapıda olmalıdır. Aşağıdaki örnekte izlemeniz gereken yapı gösterilmektedir. Burada response-uppercase ve request-headers, özel eklenti kodu içeren klasörlerin adlarıdır (bu adlar yalnızca örnektir, klasör adlarınız farklı olabilir):

      plugin
        |
        |-- plugins
          |
          |- response-uppercase
          |     |- index.js
          |     |- package.json
          |- request-headers
          |     | - index.js
                | - package.json
      
    3. plugin klasörüne cd.

    4. plugin klasöründeki plugins klasörünün tamamını sıkıştırın:

      zip -r plugins.zip plugins/

    2. Docker görüntüsü oluşturma

    Ardından, eklenti kodunuzu bir Edge Microgateway görüntüsüne eklemek için bir Dockerfile oluşturun.

    1. ZIP dosyasının bulunduğu dizinde Dockerfile adlı yeni bir dosya oluşturun.
    2. Dockerfile içine aşağıdaki kodu ekleyip dosyayı kaydedin:

      USER root
      RUN apk update && \
          apk upgrade && \
          apk add zipapk add zip && \
          mkdir /opt/apigee/customplugins && \
          chown apigee:apigee /opt/apigee/customplugins
      COPY plugins.zip /opt/apigee/customplugins
      RUN su - apigee -c "unzip /opt/apigee/customplugins/plugins.zip -d /opt/apigee/customplugins"
      EXPOSE 8000
      EXPOSE 8443
      USER apigee
      ENTRYPOINT ["entrypoint"]
      
    3. Eklentilerinizle yeni bir Edge Microgateway Docker görüntüsü oluşturun:

      docker build -t image-name .
      

      Örneğin:

      docker build -t edgemicroplugins .
      

    3. Edge Mikro Ağ Geçidi yapılandırmasını güncelleme

    Eklentiler paketlendiğine göre artık Edge Microgateway yapılandırma dosyasına eklemeniz gerekir.

    1. Edge Microgateway yapılandırma dosyasını bir düzenleyicide açın:

      $HOME/.edgemicro/org-env-config.yaml
      

      Örneğin:

      vi $HOME/.edgemicro/myorg-test-config.yaml
    2. Eklenti dizinini yapılandırma dosyasına ekleyin. Aşağıdaki örnekte dir özelliği, (Dockerfile'da belirttiğiniz) eklenti kodunun konumunu belirtir. Ayrıca, eklenti dizininin adını da belirtmeniz gerekir. Aşağıdaki örnekte bu ad response-uppercase şeklindedir.

      edgemicro:
        ...
        plugins:
          dir: /opt/apigee/plugins
          sequence:
            - oauth
            - response-uppercase
      

    4. Mikro ağ geçidini başlatma

    Son olarak, kapsayıcıdaki mikro ağ geçidini başlatmanız gerekir.

    1. $HOME/.edgemicro bölgesinde bulunan Edge Microgateway yapılandırma dosyasını base64 ile kodlamak için aşağıdaki komutu çalıştırın:

      export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`

      Bu örnekte your_org ve your_env, edgemicro config komutunu çalıştırdığınızda kullandığınız kuruluş ve ortamdır.

      Komutun etrafına vurgu işaretleri (`) yerleştirmeyi unutmayın. Örneğin:

      export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`
    2. Edge Microgateway'i kapsayıcı olarak çalıştırın. Bu komut, Edge Microgateway'i başlatmak için container çalışma zamanı tarafından kullanılan çeşitli ortam değişkenlerini ayarlar:

      docker run -P -p 8000:8000 -d --name edgemicroplugins \
      -e EDGEMICRO_PLUGIN_DIR=/opt/apigee/customplugins/plugins \
      -e EDGEMICRO_ORG=your_org \
      -e EDGEMICRO_ENV=your_env \
      -e EDGEMICRO_KEY=your_key \
      -e EDGEMICRO_SECRET=your_secret \
      -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
      -e SERVICE_NAME=edgemicroplugins image_name

      Örneğin:

      docker run -P -p 8000:8000 -d --name edgemicroplugins \
      -e EDGEMICRO_PLUGIN_DIR=/opt/apigee/customplugins/plugins \
      -e EDGEMICRO_ORG=docs \
      -e EDGEMICRO_ENV=test \
      -e EDGEMICRO_KEY=d9c34e1aff68ed969273b016699eabf48780e4f652242e72fc88a23e21252cb0 \
      -e EDGEMICRO_SECRET=3bc95a71c86a3c8ce04137fbcb788158731t51dfc6cdec13b7c05aa0bd969430 \
      -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
      -e SERVICE_NAME=edgemicroplugins edgemicroplugins
    3. Eklentiyi test etmek için API'nizi çağırın:

      API'nizi çağırarak ve çıkışın beklendiği gibi olduğunu doğrulayarak eklenti kodunun çalışıp çalışmadığını test edin:

      curl -i http://localhost:8000/hello -H "x-api-key:apikey"

      Örneğin, response-uppercase eklentisi aşağıdaki gibi bir yanıt döndürebilir:

      curl -i http://localhost:8000/hello -H "x-api-key:PydUKRDGIXRqF2xh4usn1FLHbhGKVIz"
        HELLO, WORLD!