Рекомендуется использовать клиент request
для nodejs
. Однако, если вы слишком сильно инвестируете в использование curl
при обновлении с node 8.x
до node 12.x
, вам нужно будет включить двоичный файл curl
и необходимые библиотеки самостоятельно.
Я создал лямбда-слой arn:aws:lambda:us-east-1:310788757301:layer:curl:15
. Вы можете использовать его бесплатно, однако я использую его для личного использования, поэтому я бы не рекомендовал использовать его в производственной среде. Вместо этого я предоставлю вам руководство по созданию собственного curl
лямбда-слоя.
Я загрузил curl 7.69.1 (x86_64-redhat-linux-gnu)
и использовал ldd /opt/bin/curl
, чтобы выяснить, какие библиотеки отсутствовали. После включения всех необходимых библиотек вывод будет следующим:
START RequestId: c9e7ed3f-f1b7-4e93-98fe-dea302385723 Version: $LATEST
2020-03-29T23:37:19.899Z c9e7ed3f-f1b7-4e93-98fe-dea302385723 INFO linux-vdso.so.1 (0x00007ffdf2f76000)
libcurl.so.4 => /opt/lib/libcurl.so.4 (0x00007faa5f5c8000)
libmetalink.so.3 => /opt/lib/libmetalink.so.3 (0x00007faa5f3b9000)
libssl.so.10 => /lib64/libssl.so.10 (0x00007faa5f14a000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007faa5ecf6000)
libz.so.1 => /lib64/libz.so.1 (0x00007faa5eae1000)
librt.so.1 => /lib64/librt.so.1 (0x00007faa5e8d9000)
libc.so.6 => /lib64/libc.so.6 (0x00007faa5e52e000)
libcares.so.2 => /opt/lib/libcares.so.2 (0x00007faa5e31e000)
libssh2.so.1 => /opt/lib/libssh2.so.1 (0x00007faa5e0f6000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007faa5deaa000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007faa5dbc6000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007faa5d995000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007faa5d791000)
libldap-2.4.so.2 => /opt/lib/libldap-2.4.so.2 (0x00007faa5d540000)
libexpat.so.1 => /opt/lib/libexpat.so.1 (0x00007faa5d318000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007faa5d114000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007faa5cef6000)
/lib64/ld-linux-x86-64.so.2 (0x00007faa5f84d000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007faa5cce7000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007faa5cae3000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007faa5c8cd000)
liblber-2.4.so.2 => /opt/lib/liblber-2.4.so.2 (0x00007faa5c6be000)
libsasl2.so.2 => /opt/lib/libsasl2.so.2 (0x00007faa5c4a4000)
libssl3.so => /opt/lib/libssl3.so (0x00007faa5c251000)
libsmime3.so => /opt/lib/libsmime3.so (0x00007faa5c024000)
libnss3.so => /opt/lib/libnss3.so (0x00007faa5bcdc000)
libnssutil3.so => /lib64/libnssutil3.so (0x00007faa5baad000)
libplds4.so => /lib64/libplds4.so (0x00007faa5b8a9000)
libplc4.so => /lib64/libplc4.so (0x00007faa5b6a4000)
libnspr4.so => /lib64/libnspr4.so (0x00007faa5b468000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007faa5b241000)
libcrypt.so.1 => /opt/lib/libcrypt.so.1 (0x00007faa5b00a000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007faa5ada6000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007faa5aba3000)
END RequestId: c9e7ed3f-f1b7-4e93-98fe-dea302385723
REPORT RequestId: c9e7ed3f-f1b7-4e93-98fe-dea302385723 Duration: 515.09 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 70 MB Init Duration: 115.35 ms
Я скачал смесь библиотек RedHat 6 и Centos 6, и, похоже, это работает. Это список того, что вам нужно.
.
├── bin
│ └── curl
└── lib
├── libcares.so.2 -> libcares.so.2.1.0
├── libcares.so.2.1.0
├── libcrypt-2.12.so
├── libcrypt.so.1 -> libcrypt-2.12.so
├── libcurl.so.4 -> libcurl.so.4.6.0
├── libcurl.so.4.6.0
├── libexpat.so.1 -> libexpat.so.1.5.2
├── libexpat.so.1.5.2
├── liblber-2.4.so.2 -> liblber-2.4.so.2.10.3
├── liblber-2.4.so.2.10.3
├── libldap-2.4.so.2 -> libldap-2.4.so.2.10.3
├── libldap-2.4.so.2.10.3
├── libmetalink.so.3 -> libmetalink.so.3.1.0
├── libmetalink.so.3.1.0
├── libnss3.so
├── libnsspem.so
├── libsasl2.so.2 -> libsasl2.so.2.0.23
├── libsasl2.so.2.0.23
├── libsmime3.so
├── libssh2.so.1 -> libssh2.so.1.0.1
├── libssh2.so.1.0.1
└── libssl3.so
Вы можете просмотреть и скачать копию моего лямбда-слоя здесь: https://github.com/andey/curl-lambda-layer