Edge Microgateway için Docker'ı Kullanma

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Bu konu, bir Docker container'ında Edge Microgateway'in nasıl çalıştırılacağını açıklamaktadır. Adımlar Docker, Docker komutları ve Edge Microgateway ile ilgili temel bilgilere sahip olduğunuz varsayılır kurulum ve yapılandırma. Örneğin, Daha fazla bilgi için Docker dokümanlarına bakın ve Edge Microgateway'den daha fazlası için kullanılabilir.

Ön koşullar

Bir Docker container'ında Edge Microgateway'i çalıştırmadan önce aşağıdakileri yapmanız gerekir görevler:

  • Apigee kuruluşunuz/ortamınız için Edge Microgateway'i yapılandırın:

    edgemicro configure -o your_org -e your_env -u your_username

    Yapılandırma hakkında daha fazla bilgi edinmek 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ı gerçekleştirdikten sonra yapılandırmayı bulun. dosyası olarak kaydedebilirsiniz. Varsayılan konum şu şekildedir:

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

    burada your_org ve your_env kuruluştur ve edgemicro config komutunu çalıştırdığınızda kullandığınız ortam hakkında daha fazla bilgi edinin. Şunlar gerekir: bu dosyayı

  • edgemicro config komutudur. Örneğin:

    The following credentials are required to start edge micro
      key: d9c34e1aff68ed969273c016699eabf48780e4f652242e72fc88a43e21252cb0
      secret: 3bc95a71c86a3c8ce04537fbcb788158731t51dfc6cdec13b7c05aa0bd969430
    
  • Bir Docker container'ında Edge Microgateway'i başlatmadan önce için gerekli Apigee Edge varlıklarını (veya bunları oluşturmuş) kimliği doğrulanmış API proxy çağrıları yapmak için kullanılır. Bu varlıklar, Edge Mikro Ağ Geçidi Uyumlu proxy, API Ürünü, Geliştirici ve Geliştirici Uygulaması olur. Talimatların tamamı için bkz. Apigee Edge'de varlıklar oluşturun.

Edge Micro'yı Docker container'ı olarak çalıştırın

  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 Ön koşullar bölümüne gidin.

  3. Edge Microgateway yapılandırma dosyasını base64 olarak kodlamak için aşağıdaki komutu çalıştırın $HOME/.edgemicro konumunda bulunuyor:

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

    Burada your_org ve your_env, edgemicro config komutunu çalıştırdı.

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

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

    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ı aralığı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 bağlantısını belirtir. Edge Mikro Ağ Geçidi'ni yapılandırırsanız Docker container'ında TLS'yi kullanmak istiyorsanız aşağıdaki bağlantı noktası 8443'ü açığa çıkarmanız gerekir: günlük dosyası dizinini ekleyin. Ayrıca VOLUME [paylaşılan dosya sistemleri] bölümüne de göz atın. Ayrıca bkz. Docker kapsayıcıda TLS kullanma.
    -w, -- workdir (İsteğe bağlı) edgemicro.sock ve edgemicro.pid dosyaları olmalı oluşturuldu. edgemicro dosya adı kökünü değiştiremezsiniz. Varsayılan olarak mevcut çalışma dizini yolu kullanılır.

    Örnek:

    docker run -P -p 8000:8000 -d -w /tmp --name edgemicro 
    ...
    EDGEMICRO_ORG Edge Microgateway'i yapılandırmak için kullandığınız Apigee kuruluşunun adı.
    EDGEMICRO_ENV Edge Microgateway'i 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 Microgateway'i yapılandırdığınızda döndürülen anahtar.
    EDGEMICRO_SECRET Edge Microgateway'i yapılandırdığınızda döndürülen gizli anahtar.
    EDGEMICRO_CONFIG Base64 kodlu Edge Microgateway yapılandırma dosyasını içeren bir değişken.
    LOG_CONSOLE_OUTPUT_TO_FILE (Boole) Günlük çıkışı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. Container'ı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 belirleme

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

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

    Aşağıdaki tabloda, LOG_CONSOLE_OUTPUT_TO_FILE ürününü to_console ile kullandığınızda 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önderilmez.
    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önderilir.
    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önderilir.

    API çağrısı test etme

    Container'da Edge Microgateway'i başlattıktan sonra, container'a 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örüyorsanız Edge Mikro Ağ Geçidi başarıyla işlenmiştir. API çağrısı. Bununla birlikte, Edge Microgateway, kimlik doğrulama için varsayılan olarak bir API anahtarı gerektirir. Sonraki bölümde, API'yi geçerli bir API anahtarıyla test edeceksiniz.

    Geçerli bir API anahtarıyla API'yi test etme

    Edge kullanıcı arayüzünde, daha önce oluşturduğunuz Geliştirici Uygulaması'na gidin. Geliştirici Uygulama sayfasında Tüketici Anahtarı'nı gösterip kopyalayın. Bu değer API anahtarıdır. Şunu kullanacağınız: kimlik doğrulaması yapılmış API çağrıları yapmak için bu anahtarı kullanır.

    x-api-key başlığıyla aşağıdaki gibi API'yi çağırın. Tüketici Anahtarı değeri API anahtarıdır. Varsayılan olarak Edge Mikro Ağ Geçidi anahtarı 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"

    Edge Microgateway üzerinden kimliği doğrulanmış API çağrıları yapma hakkında daha fazla bilgi edinmek istiyorsanız 4. Bölüm: Güvenli Uç Mikro Ağ Geçidi'ne göz atın.

    Edge Mikro Ağ Geçidi Durduruluyor

    Edge Microgateway'i durdurmak için aşağıdaki Docker komutunu kullanın:

    docker stop edgemicro
    

    Edge Mikro Ağ Geçidi Yeniden Başlatılıyor

    Edge Microgateway'i durdurduktan sonra şu Docker komutuyla yeniden başlatabilirsiniz:

    docker start edgemicro
    

    Docker container'ında TLS kullanma

    Bu bölümde, çalışan Edge Mikro Ağ Geçidi için TLS'nin nasıl yapılandırılacağı açıklanmaktadır inceleyebilirsiniz. Edge Mikro Ağ Geçidi sunucusunu TLS kullanacak şekilde yapılandırabilirsiniz tıklayın (kuzey yönlü yön) tıklayın ve Edge'i yapılandırabilirsiniz. Uç noktalara giden istekler için TLS istemcisi olacak mikro ağ geçidi (güneye doğru).

    Sertifika dosyaları nereye yerleştirilir?

    Edge Microgateway'i çalıştıran Docker container'ının /opt/apigee/.edgemicro üzerinde ekleme noktası var. TLS sertifikalarını kullanacak şekilde Edge Microgateway'i yapılandırdığınızda bağlantı noktasında mevcut sertifika dosyalarını da kullanabilir ve Edge Microgateway yapılandırma dosyasıdır. Bu yapılandırma dosyası genellikle $HOME/.edgemicro konumunda bulunur olup 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

    Proje yöneticisi tarafından varsayılan olarak güvenilmeyen bir Sertifika Yetkilisi (CA) Node.js (kendinden imzalı bir sertifikada olduğu gibi) Kapsayıcıyı çalıştırdığınızda NODE_EXTRA_CA_CERTS parametresini kullanın.

    Bu parametreyi, bir veya daha fazla öğe içeren bir dosyanın yolu olarak belirleyin Güvenilir sertifikaları PEM biçiminde sunar. Bu parametrenin nasıl kullanıldığını görmek için örnekler Kuzeye giden TLS'yi yapılandırma ve Güneye giden TLS'yi yapılandırma.

    Ö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'yı Docker container'ı olarak çalıştırma.

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

    Önerilmese de, bazı durumlarda TLS doğrulamasını devre dışı bırakmak isteyebilirsiniz bir container'da çalışan Edge Microgateway'dir. TLS'yi devre dışı bırakma özelliği varsayılan olarak Edge Microgateway Docker container'ına dahil edilmemiştir. Şu hedeflere ulaşmak için: Edge Microgateway için özelleştirilmiş bir Docker görüntüsü oluşturmanız gerekir. Şunun altında: özel görüntü oluşturmaya ve TLS doğrulamasını devre dışı bırakmaya ilişkin genel talimatlardır.

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

    2. Kaynak kodu dizinindeki microgateway/kubernetes/docker/edgemicro dizinine cd.

      Örneğin:

      cd $HOME/git/microgateway/kubernetes/docker/edgemicro
      
    3. entrypoint.sh dosyasını açın ve kodu, NODE_TLS_REJECT_UNAUTHORIZED koşullarını kabul edecek şekilde değiştirin. ortam değişkeni Daha sonra, kapsayıcıyı çalıştırdığınızda bu kapsayıcı için bir değer değişkenine eklenmelidir.

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

      docker build -t edgemicro .
      
    5. Kapsayıcıyı çalıştırırken -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 nasıl yapılandırılır?

    Bu bölümde, Edge Mikro Ağ Geçidi üzerinde kuzeye giden (gelen) bir TLS bağlantısının nasıl kurulacağı açıklanmaktadır sunucu. Northbound 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. Başlangıçta kurulum adımları

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

      [ 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 şu 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. İlk kullanıma hazırlamanızı ve kullanmaya başlamak için Ön koşullar bölümünde verilen adımları Henüz yapmadıysanız Edge Microgateway'i yapılandırın. İşlem tamamlandığında bir API ürünü, geliştirici veya bir API ürünü oluşturmuş olması gerekir. ve Geliştirici Uygulaması. Ayrıca, edgemicro configure komutunu çalıştırmanız gerekir. bir anahtar ile gizli bilgi aldı.

    2. Kendinden imzalı sertifikalar oluşturma

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

    1. $HOME/.edgemicro dizinine cd.
    2. Aşağıdaki bash komut dosyasını oluşturun. Onu istediğiniz gibi adlandırabilirsiniz. Örnek: 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ının yolunun doğru olduğundan emin olun.

    4. Bash dosyasını yürütün. Sertifika bilgileri girmeniz istenecektir. Şunu kullandığınıza emin olun: Ortak Ad için localhost.

    5. Aşağıdaki dosyaların oluşturulup oluşturulmadığını kontrol edin:

      • 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 dizeyi aşağıdaki gibi düzenleyin. Değişiklik yapmakta olduğunuzu unutmayın port ve ssl özelliklerine:

      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. Edge Microgateway yapılandırma dosyasını base64 olarak kodlamak için aşağıdaki komutu yürütün $HOME/.edgemicro konumunda bulunuyor:

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

      Burada your_org ve your_env, edgemicro config komutunu çalıştırdı.

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

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

    Ayrıca bkz. Edge Micro'yı 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 parametreleri not edin: temel ilkelerden farklıdırlar komutuna eklemek için Edge Micro'yı Docker container'ı olarak çalıştırma başlıklı makaleye bakın.

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

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

    1. Kurulumu test etmek için aşağıdaki cURL komutunu yürütün. İkame Basepath ve API anahtarınızı komuta ekleyin. Aşağıdaki örnekte, aşağıdaki örnekte gösterildiği dizinde olduğunuz varsayılmaktadır: rootca.pem bulundu ve oluşturduğunuz proxy /hello temel yoluna sahip:

      curl -v https://localhost:8443/hello --cacert rootca.pem \
      -H "x-api-key: Az82fdnfONVCOOE4NKhajxAboDgA3FAo"
      
    2. Ayrıntılı cURL çıkışı, TLS el sıkışma. HTTP 200 yanıtı görüyorsanız 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 nasıl yapılandırılır?

    Bu bölümde, Edge Microgateway sunucusu ve arka uç hedef uygulamasıdır. Aşağıdaki örnekte kendinden imzalı sertifikalar.

    1. İlk kurulum adımları

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

      [ 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 şu 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 edinmek için 1. Bölüm: Edge Mikro Ağ Geçidini Yapılandırma bölümüne bakın.

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

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

    2. Node.js hedef uygulaması oluşturma

    1. .edgemicro dizinine cd.

    2. Aşağıdaki bash komut dosyasını oluşturun. Onu istediğiniz gibi adlandırabilirsiniz. Örnek: 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ının yolunun doğru olduğundan emin olun.

    4. Bash dosyasını yürütün. Sertifika bilgileri girmeniz istenecektir. Şunu kullandığınıza emin olun: Ortak Ad için hellworld.

    5. Aşağıdaki dosyaların oluşturulup oluşturulmadığını kontrol edin:

      • 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 (WORKDIR) yeni bir Dockerfile oluşturun. Node.js uygulamanızın köküdür:

      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 duyarlı bir proxy oluşturun. Daha fazla bilgi için Edge'de Edge Mikro Ağ Geçidi Uyumlu API proxy'si oluşturma başlıklı makaleyi inceleyin.

      • Proxy adı: edgemicro_local
      • Düzeltme: 1
      • Temel yol: /local
      • Hedef: https://helloworld:9443
    2. Bir API ürünü oluşturun. Ayrıntılar 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 konusuna bakın.

    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 dizeyi aşağıdaki gibi düzenleyin. Değişiklik yapmakta olduğunuzu unutmayın port ve ssl özelliklerine:

      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ın base64 kodlamasını yapmak için aşağıdaki komutu yürütün:

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

      Burada your_org ve your_env, edgemicro config komutunu çalıştırdı.

      Komutun etrafına vurgu işareti (`) 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. İkame mikro ağ geçidine duyarlı proxy'de kullandığınız temel yolunuz ve Apigee Edge'de oluşturduğunuz geliştirici uygulamasından alınan API anahtarı. Örneğin:

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

      Şu hatayı görürsünüz:

      ...
      *  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 Microgateway'i 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. İkame temel yolunuz ve API anahtarınız eskisi gibi. Örneğin:

      curl https://localhost:8443/local -k -H "x-api-key: xxxx" -v
      
    4. Çıkışı kontrol edin. İşlem başarılı olursa 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 etiketler yazarak mikro ağ geçidine yeni özellikler ve yetenekler ekleyebilirsiniz: ekleyebilirsiniz. Özel eklentiler, isteklerle programlı bir şekilde etkileşimde bulunmanıza olanak tanır. ve yanıtları mikro ağ geçidinden aktarmak da yararlı olur.

    Eklentileri Edge Mikro Ağ Geçidi'ne dağıtmak için iki seçeneğiniz vardır Docker container'ında çalışan bir örnektir:

    Bu bölümün geri kalanında, bildiğinizden emin olmanız gerekir eklentilerine sahip olması gerekir. Yoksa Özel eklentiler geliştirme başlıklı makaleye bakın.

    Seçenek A: Eklenti dizinini bir birime ekleme

    (Sürüm 2.5.27'de eklendi) Birim bağlantısı aracılığıyla eklenti ekleme adımları şunlardır: herhangi bir özel eklentiyi Edge Microgateway'e eklemek için gereken adımlara benzer. Zaman Docker container'ı çalıştırdığınızda, eklenti dizinini yerel tarayıcınıza ekleyebilirsiniz /opt/apigee/plugins olan container ekleme noktasında sistem (hacim) değerini alır. Ardından Edge Microgateway yapılandırma dosyasında yerel birim dizinini belirtirsiniz.

    Aşağıdaki adımlar, özel boyut eklemek için Docker ekleme noktasının nasıl kullanılacağını ekleyebilirsiniz.

    1. Edge Mikro Ağ Geçidi'ni durdurun:

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

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

        plugins:
          dir: $HOME/edgemicro/custom/plugins
          sequence:
            - oauth
            - response-uppercase
        ````
      
    4. Eklentinizi Basit bir eklenti yazma başlıklı makaledeki talimatlara göre yazın ve test edin. Şunları yaptığınızdan emin olun: eklenti kodunuzu doğru dizin yapısına yerleştirin. Örneğin:

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

      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.

    Seçenek B: Eklentileri kapsayıcıda derleme

    Bu seçenekte, eklentileri kapsayıcınızda oluşturursunuz.

    1. Eklentilerinizi paketleyin

    1. Eklentinizi Basit bir eklenti yazma başlıklı makaledeki talimatlara göre yazın ve test edin.

    2. Eklenti kodunuzu doğru dizin yapısına yerleştirin. Eklenti dizinleri belirli bir yapıya uygun olmalıdır. Aşağıdaki örnekte takip etmeniz gereken yapı gösterilmektedir. Burada response-uppercase ve request-headers, izlemeniz gereken yapıyı ifade etmektedir özel eklenti kodu içeren klasörlerin adları (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ünde 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 Edge Microgateway görüntüsüne eklemek için bir Dockerfile oluşturun.

    1. ZIP dosyasının bulunduğu dizinde, Dockerfile adında yeni bir dosya oluşturun.
    2. Şu kodu Dockerfile içine ekleyin ve 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 Microgateway yapılandırmasını güncelleme

    Eklentiler paketlendiğine göre şimdi Edge Mikro Ağ Geçidi'ne eklemeniz gerekiyor. yapılandırma dosyası.

    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, eklenti kodunun ( inceleyebilirsiniz. Ayrıca, eklenti dizininin adını da belirtmelisiniz. Bu ad, aşağıdaki örnekte response-uppercase geçerlidir.

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

    4. Mikro ağ geçidini başlatma

    Son olarak, container'da mikro ağ geçidini başlatmanız gerekir.

    1. Edge Microgateway yapılandırma dosyasını base64 olarak kodlamak için aşağıdaki komutu çalıştırın $HOME/.edgemicro konumunda bulunuyor:

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

      Burada your_org ve your_env, edgemicro config komutunu çalıştırdı.

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

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

      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 çıktısı aşağıdaki gibidir:

      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!