質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1665閲覧

AWS cloud9で単純なFlaskアプリを起動させたがアクセス出来ない

nokonoko_1203

総合スコア17

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/04/17 22:17

編集2018/04/18 12:41

いつも大変お世話になっております。

表記の件につきまして、cloud9にてFlaskを利用して簡単なアプリケーションを書き、起動させたのですがアクセス出来なくて困っております。

書いたコードは以下の通りです。

python

1#!/bin/env python 2# coding: utf-8 3 4from flask import Flask 5app = Flask(__name__) 6 7@app.route("/") 8def hello(): 9 return "Hello World!" 10 11if __name__ == "__main__": 12 app.run(host='0.0.0.0', port=8080)

アプリの実行時には

の記載があり、サーバーは起動しているように見受けられます。

pythonのversionは[バッドノウハウ]webプログラミング初学者がAWS Cloud9でPython3を使うを参考にし、python3.6.2となっております。

解決方法をご教示願います。

**追記:**ご指摘ありがとうございます。
アプリ実行時に表示されている「http://0.0.0.0:8080/」をgoogle chromeでアクセスした結果、

ページを表示できません

サーバーに接続できません。
サーバーが存在しないか、接続拒否している可能性があります。

と、表示されてしまいます。

また、別の話になってしまうのですが、旧cloud9(AWS版では無いもの)で別のFlaskアプリ(以下に記載)を起動させ、同様にアクセスすると

No application seems to be running here!
Cloud9 can't get you to your requested workspace. Here are some suggestions on how to figure out what's going on:

Check that the workspace name (stockpile) and username (nokonoko123) are typed correctly.
Check that the server is successfully running on Cloud9:
If the server hit an error, the output window will have a message telling you what it is
If you're in the middle of debugging code, your server might be paused right now
The server might be running on a different port; make sure it's on port $PORT with $IP as the IP address

と表示されてアクセスできませんでした。

アプリのコードは以下のようになります。

python

1#!/usr/bin/env python 2# coding: utf-8 3 4# Flask などの必要なライブラリをインポートする 5from flask import Flask, render_template, request, redirect, url_for 6import random 7 8# 自身の名称を app という名前でインスタンス化する 9app = Flask(__name__) 10 11# メッセージをランダムに表示するメソッド 12def picked_up(): 13 messages = [ 14 "こんにちは、あなたの名前を入力してください", 15 "やあ!お名前は何ですか?", 16 "あなたの名前を教えてね" 17 ] 18 # random.choice で配列からランダムに取り出し 19 return random.choice(messages) 20 21# ここからウェブアプリケーション用のルーティングを記述 22# index にアクセスしたときの処理 23@app.route('/') 24def index(): 25 title = "ようこそ" 26 message = picked_up() 27 # index.html をレンダリングする 28 return render_template('index.html', 29 message=message, title=title) 30 31# /post にアクセスしたときの処理 32@app.route('/post', methods=['GET', 'POST']) 33def post(): 34 title = "こんにちは" 35 if request.method == 'POST': 36 # リクエストフォームから「名前」を取得して 37 name = request.form['name'] 38 # index.html をレンダリングする 39 return render_template('index.html', 40 name=name, title=title) 41 else: 42 # エラーなどでリダイレクトしたい場合はこんな感じで 43 return redirect(url_for('index')) 44 45if __name__ == '__main__': 46 app.debug = True # デバッグモード有効化 47 app.run(host='0.0.0.0') # どこからでもアクセス可能に

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2018/04/17 22:31

どのようにアクセスして、どのようなメッセージが表示されているのでしょうか?
nokonoko_1203

2018/04/17 23:33

ご指摘ありがとうございます。追記いたしました。
guest

回答1

0

ベストアンサー

Cloud9 で、Flaskアプリは、動かしていないので、一般的なWebアクセス方法の記載です。(いちおう Rails はこれで動きました。)

AWS Cloud9 の場合、http://0.0.0.0:8080/http://127.0.0.1:8080/ では、アクセスできません。
Web ブラウザでアクセスする方法は、下記のどちらかになります。

1.AWS Cloud9 で作成したアプリをインターネット公開したいということであれば、下記のマニュアルの手順になります。

マニュアル Share a Running Application over the Internet に書かれている「Share a Running Application over the Internet(アプリケーションをインターネット上で共有する)」方法を参照して設定してください。
内容を1行でまとめると「Cloud9 を動かしている AWS EC2 のインスタンスに パブリックIPアドレスを割り当てて、パブリックIPアドレスにアクセスする」ということになります。
独自ドメインを割り当てる場合は、パブリックIPアドレスに対して割り当ててください。

2.AWS Cloud9 にログインしている自分だけが確認できればよいのであれば、下記の方法が簡単です。

マニュアル Preview a Running Application に記載されている 「Preview」メニューの「Preview Running Application」を実行して、「プレビューウィンドウ」を開く方法でしょうか。 ( https://<ENVIRONMENT_ID>.vfs.cloud9.<REGION_ID>.amazonaws.com/ のような URL になります。)

投稿2018/04/19 00:33

編集2018/04/19 00:40
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nokonoko_1203

2018/04/19 13:23

丁寧なご回答有難うございます。 2の方法で確認できました! いずれはインターネットに公開したいので1の方法も参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問