Próbuję skonfigurować moje funkcje Backend Nodejs, aby korzystać z auth0 dla usług IAM.

Mogę z powodzeniem wdrażać funkcje na moim koncie Cloud IBM, które nie używa biblioteki auth0, ale jeśli spróbuję przesłać funkcję, która korzysta z biblioteki auth0, otrzymuję następujący błąd:

Błąd: Nie można utworzyć akcji "Function_name": Treść żądania była zniekształcona: nieoczekiwane końcowe wejście w indeksie wejściowym 1394034 (linia 1, pozycja 1394035), oczekiwano "" ":

Próbowałem użyć zewnętrznych plików webpack.config.js:

// webpack.config.js
externals: {
    auth0: "commonjs auth0"
}

// mycode.js
const ManagementClient = require('auth0').ManagementClient;

I mogę z powodzeniem wdrażać funkcję, ale kiedy zadzwonię do punktu końcowego, otrzymuję ten błąd:

(0, r (...). ManagementClient) nie jest konstruktorem

2
Riccardo Bonesi 16 październik 2020, 18:33

1 odpowiedź

Najlepsza odpowiedź

Znalazłem ten artykuł: Dodawanie dodatkowych modułów NPM do funkcji Cloud IBM z Docker

Zasadniczo jeśli rozumiem twoje pytanie, potrzebujesz dodatkowego pakietu, który nie jest zawarty w obrazie Cloud Funkcje IBM. Pakiety dołączone domyślnie są wymienione Tutaj . Ale auth0 nie jest częścią listy.

Tak więc śledzenie postu na blogu możesz utworzyć dockerfile.

FROM ibmfunctions/action-nodejs-v10 
RUN npm install auth0

Zbuduj obraz (zakładając, że masz środowisko budowy dokera i konta roboczego Docker) i popchnij go do Dockerhuba:

docker build -t your_docker_username/action-nodejs-v10-auth0 .
docker tag your_docker_username/action-nodejs-v10-auth0:latest your_docker_username/action-nodejs-v10-auth0:0.0.1
docker push your_docker_username/action-nodejs-v10-auth0:0.0.1

Teraz możesz utworzyć plik source.js zawierający

var ManagementClient = require('auth0').ManagementClient;

I reszta twojego kodu.

ibmcloud fn action update myAuth0Function --docker your_docker_username/action-nodejs-v10-auth0:0.0.1 source.js

Mam nadzieję, że to działa dla ciebie. Poprawiłem niektóre literówki w tym poście i przetestowałem go. Działał do tej pory, że udało mi się użyć modułu Auth0 w kodzie akcji.

1
habercde 18 październik 2020, 19:34