前提・実現したいこと
SAM-CLIとDynamoDBLocalの環境を構築して、ローカルでServelessの開発を行いたいと考えております。ここを参考にして環境までは構築しました。APIGatewayをローカルで立ち上げてIPアドレスでアクセスできるようにしたいのですが、どの様にすればうまく動かせるかご教示いただけないでしょうか。
色々と試行錯誤してみましたがどうしてもうまく動きません。すいませんがご支援お願いいたします。
発生している問題・エラーメッセージ
APIGateWayを立ち上げて以下のコマンドだとうまく結果が返ってくるのですが
$ curl http://localhost:3000/hello {"message": "hello world"}
127.0.0.1だとMcafeeに引っかかってしまって結果が返ってきません。Mcafeeを無効にしても結果は変わりませんでした。
$ curl http://127.0.0.1:3000/hello
Mcafeeのメッセージ
Cannot Connect
The proxy could not connect to the destination in time.
インストール手順
#PROXY設定 $ sudo vi /etc/profile #---------------------------------------- PROXY="http://proxyaddress:port" # proxyサーバのドメインとポートを指定 export http_proxy=$PROXY export HTTP_PROXY=$PROXY export https_proxy=$PROXY export HTTPS_PROXY=$PROXY export NO_PROXY=localhost export no_proxy=localhost #---------------------------------------- $ source /etc/profile $ vim ~/.curlrc #---------------------------------------- proxy = "http://proxyaddress:port" #---------------------------------------- #パッケージ更新 $ sudo apt-get -y update #https経由のaptリポジトリ許可 $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common #PGP-KEY取得 $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - #DockerCEインストール $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" $ sudo apt-get update $ sudo apt-get -y install docker-ce #sudoなしDockerコマンド実行可能設定 $ docker -v Docker version 18.09.1, build 4c52b90 $ sudo usermod -aG docker $(whoami) $ sudo service docker restart $ docker info #Docker-composeインストール $ export compose='1.23.2' $ sudo curl -L https://github.com/docker/compose/releases/download/${compose}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose $ sudo chmod 0755 /usr/local/bin/docker-compose $ docker-compose -v docker-compose version 1.23.2, build 1110ad01 #Proxy設定 $ sudo mkdir /etc/systemd/system/docker.service.d $ sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf #-------------------- [Service] Environment="HTTP_PROXY=http://proxyaddress:port" "HTTPS_PROXY=http://proxyaddress:port" "NO_PROXY=localhost" #-------------------- $ sudo systemctl daemon-reload $ sudo systemctl restart docker $ sudo systemctl enable docker #AWS-CLIインストール $ sudo apt-get -y install python-pip python3-pip $ pip --version pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7) $ pip3 --version pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6) $ pip install awscli --upgrade --user $ export PATH=~/.local/bin:$PATH $ aws --version aws-cli/1.16.103 Python/2.7.15rc1 Linux/4.15.0-45-generic botocore/1.12.93 $ aws configure AWS Access Key ID [None]:AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: ap-northeast-1 Default output format [None]: json #DynamoDB local $ mkdir docker-dynamodb $ cd docker-dynamodb $ vi docker-compose.yml +-------------------------------------------------------------------- version: '3.3' services: dynamodblocal: image: amazon/dynamodb-local networks: - default ports: - 8000:8000 command: -jar DynamoDBLocal.jar -sharedDb -dbPath ./data volumes: - /home/nishimrm/docker-dynamodb/dynamodb_data:/home/dynamodb/data dynamodbadmin: image: instructure/dynamo-local-admin networks: - default ports: - 8001:8001 environment: DYNAMO_ENDPOINT: http://localhost:8000/ +-------------------------------------------------------------------- $ docker-compose up -d $ docker-compose stop $ docker-compose start #SAM-CLIインストール $ cd $ pip install aws-sam-cli $ pip install boto3 $ sam --version SAM CLI, version 0.11.0 /home/nishimrm/.local #サンプルアプリケーション作成 $ sam init --runtime python3.7 --name testpj $ cd testpj $ tree $ cd hello_world #$ pip install -r requirements.txt -t hello_world/build/ --proxy=http://proxyaddress:port $ vi app.py + from botocore.vendored import requests $ cd ../
試したこと
MCafeeを無効にして127.0.0.1で接続してみたりしましたが、DynamoDBLocalでは接続できるのに
SAM-CLIのAPIGatewayに127.0.0.1で接続しようとするとはねられます。
pingについてはlocalhostでも127.0.0.1でも通る状態です。
ホストのWindows10Proからは該当の仮想マシンのIPアドレスで接続しています。DynamoDB-Localでは
接続できますが、SAM-CLIのAPIGateWayへは接続できない状態です。
ポートを8080に変更してAPIGatewayを起動しましたがそれでもうまくいきませんでした。
curlでのレスポンスです。エラーとなる方です。
$ curl -D - http://localhos127.0.0.1:3000/hello HTTP/1.1 502 cannotconnect Via: 1.1 proxyaddress (McAfee XXXXX) Content-Type: text/html Cache-Control: no-cache Content-Length: 2556 Proxy-Connection: Keep-Alive
正常時のレスポンスです。
$ curl -D - http://localhost:3000/hello HTTP/1.0 200 OK Content-Type: application/json Content-Length: 26 Server: Werkzeug/0.14.1 Python/2.7.15rc1 Date: Wed, 06 Mar 2019 XX:XX:XXX GMT
補足情報(FW/ツールのバージョンなど)
Windows10Pro上に仮想のHyper-Vを立ててその中のLinuxに
SAM-CLIとDynamoDBLocalをインストールしています。DynamoDBLocalの方では
エラーは出ておりません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。