Edge Microgateway için Docker'ı Kullanma

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

Bu konuda, Edge Microgateway'in Docker kapsayıcısında nasıl çalıştırılacağı açıklanmaktadır. Bu konuda ele alınan adımlarda Docker, Docker komutları ve Edge Microgateway kurulumu ile yapılandırması hakkında temel düzeyde bilgi sahibi olduğunuz varsayılır. Daha fazla bilgi için Docker ve Edge Microgateway dokümanlarına bakın.

Ön koşullar

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

  • 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 için 1. Bölüm: Edge Microgateway'i yapılandırma başlıklı makaleyi inceleyin.

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

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

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

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

    The following credentials are required to start edge micro
      key: d9c34e1aff68ed969273c016699eabf48780e4f652242e72fc88a43e21252cb0
      secret: 3bc95a71c86a3c8ce04537fbcb788158731t51dfc6cdec13b7c05aa0bd969430
    
  • Edge Microgateway'i bir Docker kapsayıcısında başlatmadan önce, kimliği doğrulanmış API proxy'si çağrıları yapmak için gereken Apigee Edge öğelerini oluşturmanız (veya oluşturmuş olmanız) gerekir. Bu öğeler arasında Edge Microgateway'in farkında olan bir proxy, bir API ürünü, bir geliştirici ve bir geliştirici uygulaması bulunur. Talimatların tamamı için Apigee Edge'de öğe oluşturma başlıklı makaleyi inceleyin.

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 Ön koşullar bölümündeki tüm adımları uyguladığınızdan emin olun.

  3. $HOME/.edgemicro konumundaki 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`

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

    Komutun etrafına ters tırnak (`) 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ırma Komut, Edge Microgateway'i başlatmak için kapsayıcı çalışma zamanı tarafından kullanılan çeşitli ortam değişkenlerini ayarlar:

    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 SERVICE_NAME=edgemicro \
    --security-opt=no-new-privileges \
    --cap-drop=ALL \
    gcr.io/apigee-microgateway/edgemicro:latest

    Parametreler

    Parametre Açıklama
    -P Tüm kullanıma sunulan bağlantı noktalarını ana makinede yayınlayın. Ayrıca Docker run referansı başlıklı makaleyi de inceleyin.
    -p Tek bir bağlantı noktasını veya bir bağlantı noktası aralığını açıkça eşleyin. Ayrıca Docker run referansı başlıklı makaleyi de inceleyin.
    -d Ayrılmış modda çalıştırın. Ayrıca Docker run referansı başlıklı makaleyi de inceleyin.
    -v, --volume Bir birim bağlama noktası belirtir. Edge Microgateway'i Docker container'ında TLS kullanacak şekilde yapılandırırsanız günlük dosyası dizinini bağladığınızda 8443 numaralı bağlantı noktasını kullanıma açmanız gerektiğini unutmayın. Ayrıca VOLUME [shared filesystems] başlıklı makaleyi de inceleyin. Docker container'da TLS kullanma başlıklı makaleyi de inceleyin.
    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.
    SERVICE_NAME Kubernetes kullanıyorsanız bu parametre otomatik olarak doldurulur. Aksi takdirde, istediğiniz herhangi bir değere ayarlayabilirsiniz. Hiçbir şey belirtmezseniz hizmet adı default olarak ayarlanır.
    DEBUG Hata ayıklamayı etkinleştirmek için * olarak ayarlayın.
    HTTP_PROXY HTTPS_PROXY Edge Microgateway bir güvenlik duvarının arkasında çalışırken ve ağ geçidi Apigee Edge ile iletişim kuramazken kullanın. Daha fazla bilgi için Edge Microgateway'i şirket güvenlik duvarının arkasında ayarlama başlıklı makaleyi inceleyin.

    Örneğin: HTTP_PROXY=http://10.203.0.1:5187/

    NO_PROXY Edge Microgateway'in proxy'sini kullanmaması gereken alanların virgülle ayrılmış listesi. Daha fazla bilgi için Edge Microgateway'i şirket güvenlik duvarının arkasında ayarlama başlıklı makaleyi inceleyin.

    Örneğin: localhost,127.0.0.1,localaddress,.localdomain.com

    NODE_EXTRA_CA_CERTS (İsteğe bağlı) Node.js tarafından varsayılan olarak güvenilmeyen bir CA kullanıyorsanız bu parametreyi kullanın. Bu parametrenin değerini, PEM biçiminde bir veya daha fazla güvenilen sertifika içeren bir dosyanın yolu olarak ayarlayın. Ayrıntılı bilgi için TLS sertifikaları başlıklı makaleyi inceleyin.
    --security-opt (İsteğe bağlı) İstenen Docker güvenlik seçeneklerini ayarlar. Docker belgelerindeki Güvenlik yapılandırması bölümüne bakın.
    --cap-drop (İsteğe bağlı) Kapsayıcıda izin verilen Linux özelliklerine sınırlar koyar. Docker belgelerindeki Runtime privilege and Linux capabilities (Çalışma zamanı ayrıcalığı ve Linux özellikleri) başlıklı makaleyi inceleyin.

    Örneğin:

    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
  5. Container'ın çalıştığı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
    

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

Edge Microgateway'i kapsayıcıda başlattıktan sonra API çağrıları yapabilirsiniz. Örneğin, API'nizin temel yolu /hello ise:

http://localhost:8000/hello

Örnek çıkış:

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

Bu yanıtı görürseniz Edge Microgateway, API çağrısını başarıyla işlemiş demektir. Ancak Edge Microgateway, varsayılan olarak kimlik doğrulama için API anahtarı gerektirir. Bir 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 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ı kullanırsınız.

API'yi aşağıdaki gibi x-api-key üstbilgisiyle çağırın. Geliştirici uygulamasından kopyaladığınız Tüketici Anahtarı değeri, API anahtarıdır. Edge Microgateway, varsayılan olarak anahtarı x-api-key adlı bir üstbilgide iletmenizi bekler. Örneğin:

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ıyla Edge Microgateway üzerinden kimliği doğrulanmış API çağrıları yapma hakkında daha fazla bilgi edinmek istiyorsanız Bölüm 4: Edge Microgateway'i güvenli hale getirme başlıklı makaleyi inceleyin.

Edge Microgateway'i durdurma

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

docker stop edgemicro

Edge Microgateway'i yeniden başlatma

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

docker start edgemicro

Docker container'da TLS kullanma

Bu bölümde, bir Docker kapsayıcısında çalışan Edge Microgateway için TLS'nin nasıl yapılandırılacağı açıklanmaktadır. Edge Microgateway sunucusunu gelen istekler (kuzeye doğru) için TLS kullanacak şekilde yapılandırabilir ve Edge Microgateway'i hedef uç noktalara giden istekler (güneye doğru) için TLS istemcisi olacak şekilde yapılandırabilirsiniz.

Sertifika dosyalarını nereye koymalısınız?

Edge Microgateway'i çalıştıran Docker container'da /opt/apigee/.edgemicro üzerinde bir ekleme noktası vardır. Edge Microgateway'i TLS sertifikalarını kullanacak şekilde yapılandırdığınızda, sertifika dosyalarını bu ekleme noktasında kullanılabilir hale getirebilir 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 bir sertifika yetkilisi (CA) kullanıyorsanız (ör. kendinden imzalı sertifika) kapsayıcıyı çalıştırırken NODE_EXTRA_CA_CERTS parametresini kullanabilirsiniz.

Bu parametreyi, PEM biçiminde bir veya daha fazla güvenilen sertifika içeren bir dosyanın yolu olarak 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:

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 Edge Micro'yu Docker kapsayıcısı olarak çalıştırma başlıklı makaleyi de inceleyin.

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

Önerilmese de bazı durumlarda kapsayıcıda çalışan Edge Microgateway için TLS doğrulamasını devre dışı bırakmak isteyebilirsiniz. TLS'yi devre dışı bırakma özelliği, Edge Microgateway Docker kapsayıcısına varsayılan olarak dahil edilmez. Bu görevi tamamlamak için Edge Microgateway'e yönelik özelleştirilmiş bir Docker görüntüsü oluşturmanız gerekir. Özel görüntüyü oluşturma ve TLS doğrulamasını devre dışı bırakmaya ilişkin genel talimatları aşağıda bulabilirsiniz.

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

  2. cd microgateway/kubernetes/docker/edgemicro dizinine gidin.

    Örneğin:

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

  4. Docker container'ı oluşturun:

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

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 bakan TLS nasıl yapılandırılır?

Bu bölümde, Edge Microgateway sunucusunda kuzeye giden (gelen) bir TLS bağlantısının nasıl ayarlanacağı 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. İ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 karakterlerinin bulunduğundan emin olun. Örneğin, dosyanızda aşağıdaki gibi bilgiler olmalı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 bölümüne aşağıdaki kıtayı 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 Microgateway'i başlatmak ve yapılandırmak için Ön koşullar bölümünde verilen adımları uygulayın. Tamamlandığında, Edge Microgateway'in farkında olan bir proxy, bir API ürünü, bir geliştirici ve bir geliştirici uygulaması oluşturmuş olmanız gerekir. Ayrıca, edgemicro configure komutunu çalıştırmış ve bir anahtar ile gizli bilgi almış olmanız gerekir.

2. Kendinden imzalı sertifikalar oluşturma

Ardından, TLS oluşturmak için ihtiyacınız olan sertifikaları ve anahtarları oluşturun:

  1. cd $HOME/.edgemicro dizinine gidin.
  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ının yolunun doğru olduğundan emin olun.

  4. Bash dosyasını yürütün. Sertifika bilgileri istenir. Ortak ad için localhost kullandığınızdan emin olun.

  5. Aşağıdaki dosyaların oluşturulduğunu kontrol edin:

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

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

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

    vi $HOME/.edgemicro/myorg-test-config.yaml
    
  2. edgemicro bölümünü aşağıdaki gibi düzenleyin. port ve ssl özelliklerinde değişiklik yaptığınızı unutmayın:

    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 ile kodlamak için aşağıdaki komutu çalıştırı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ığınızda kullandığınız kuruluş ve ortamdır.

    Komutun etrafına ters tırnak (`) yerleştirmeyi unutmayın. Örneğin:

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

Ayrıca Edge Micro'yu Docker kapsayıcısı olarak çalıştırma başlıklı makaleyi de inceleyin.

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

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

    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 parametrelerin, Edge Micro'yu Docker kapsayıcısı olarak çalıştırma bölümünde açıklanan temel komuttan farklı olduğunu unutmayın.

    • port, 8443 olarak ayarlanmıştır.
    • Anahtar ve sertifika dosyalarını bağlamak için bir birim bağlama işlemi kullanılır.
    • NODE_EXTRA_CA_CERTS değişkeni, gerektiğinde özel bir CA (kendinden imzalı sertifikalar söz konusu olduğunda) eklemek için kullanılır.

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

  1. Kurulumu test etmek için aşağıdaki cURL komutunu yürütün. Temel yolunuzu ve API anahtarınızı komuta girin. Aşağıdaki örnekte, rootca.pem öğesinin bulunduğu dizinde olduğunuz ve oluşturduğunuz proxy'nin /hello temel yoluna 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 çıktısı, TLS el sıkışmasının her adımını gösterir. HTTP 200 yanıtı görürseniz yapılandırma başarılı olmuştur:

    *   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üney yönlü TLS nasıl yapılandırılır?

Bu bölümde, Edge Microgateway sunucusu ile bir arka uç hedef uygulaması arasında güneye giden (giden) bir TLS bağlantısının nasıl ayarlanacağı 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. Düzenlemek için opensssl.cnf dosyasını açın.
  3. Yapılandırma dosyanızda req_extensions karakterlerinin bulunduğundan emin olun. Örneğin, dosyanızda aşağıdaki gibi bilgiler olmalı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 bölümüne aşağıdaki kıtayı 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 Microgateway'i yapılandırma başlıklı makaleyi inceleyin.

  6. edgemicro configure tarafından döndürülen anahtar ve gizli 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 .edgemicro dizinine gidin.

  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ının yolunun doğru olduğundan emin olun.

  4. Bash dosyasını yürütün. Sertifika bilgileri istenir. Ortak ad için hellworld kullandığınızdan emin olun.

  5. Aşağıdaki dosyaların oluşturulduğunu 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ı öğeleri 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şturma

  1. Bu ayarlarla Edge Microgateway'e duyarlı bir proxy oluşturun. Daha fazla bilgi için Edge'de Edge Microgateway'e duyarlı bir API proxy'si oluşturma başlıklı makaleyi inceleyin.

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

  3. Geliştirici oluşturma 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 başlıklı makaleyi inceleyin.

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 bölümünü aşağıdaki gibi düzenleyin. port ve ssl özelliklerinde değişiklik yaptığınızı unutmayın:

    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 konumundaki 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`

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

    Komutun etrafına ters tırnak (`) yerleştirmeyi unutmayın. Örneğin:

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

    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 uyumlu proxy'de kullandığınız temel yolu ve Apigee Edge'de oluşturduğunuz geliştirici uygulamasından alınan API anahtarını yerine koyun. Ö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.

    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 çalıştırın. Temel yolunuzu ve API anahtarınızı daha önce olduğu gibi değiştirin. Örneğin:

    curl https://localhost:8443/local -k -H "x-api-key: xxxx" -v
    
  4. Çıkışı kontrol edin. 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 işlevler ekleyebilirsiniz. Özel eklentiler, mikro ağ geçidinden geçen istekler ve yanıtlarla programatik olarak etkileşim kurmanıza olanak tanır.

Eklentileri bir Docker kapsayıcısında çalışan 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 Microgateway kurulumu için eklentiler yazma ve yapılandırma konusunda bilgi sahibi olduğunuz varsayılır. Değilse Özel eklentiler geliştirme başlıklı makaleyi inceleyin.

A seçeneği: Eklentiler dizinini bir birime bağlama

(v.2.5.27'de eklendi) Birim bağlama yoluyla eklenti ekleme adımları, Edge Microgateway'e özel bir eklenti eklemek için gereken adımlara benzer. Docker kapsayıcısını çalıştırdığınızda, eklentiler dizinini yerel sisteminizdeki (birim) kapsayıcı 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 eklentileri dahil etmek için Docker ekleme noktasının nasıl kullanılacağı gösterilmektedir.

  1. Edge Microgateway'i durdurma:

    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. Basit bir eklenti yazma bölümündeki talimatlara göre eklentinizi 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. Aşağıdakine benzer bir komutla Docker container'ını çalıştırın. Bu komutta, eklentiler dizinini Docker birimine bağlamak için -v seçeneğini kullanırsınız. Aşağıdaki örnek komutta, eklentiler dizini $HOME/edgemicro/custom/plugins (özel eklentinin bulunduğu yer), kapsayıcının ekleme noktası /opt/apigee/plugins ile eşlenir:

    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 [shared filesystems] başlıklı makaleyi inceleyin.

B seçeneği: Eklentileri kapsayıcıya yerleştirme

Bu seçenekte, eklentileri kapsayıcınıza yerleştirirsiniz.

1. Eklentilerinizi paketleme

  1. Basit bir eklenti yazma bölümündeki talimatlara göre eklentinizi yazın ve test edin.

  2. Eklenti kodunuzu uygun dizin yapısına yerleştirin. Eklenti dizinleri belirli bir yapıya uymalı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. cd, plugin klasörüne taşındı.

  4. plugin klasöründe, plugins klasörünün tamamını zipleyin:

    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 dosyasına aşağıdaki kodu 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 bunları 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, eklenti kodunun konumunu (Dockerfile'da belirttiğiniz) belirtir. Ayrıca, eklenti dizininin adını da belirtmeniz gerekir. Aşağıdaki örnekte bu ad response-uppercase'dır.

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

4. Mikro ağ geçidini başlatma

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

  1. $HOME/.edgemicro konumundaki 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`

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

    Komutun etrafına ters tırnak (`) 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ırma Komut, Edge Microgateway'i başlatmak için kapsayıcı ç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ğırıp çıkışın beklendiği gibi olduğunu doğrulayarak eklenti kodunun çalıştığını test edin:

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

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

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