-
Notifications
You must be signed in to change notification settings - Fork 4
/
687.txt
165 lines (114 loc) · 7.95 KB
/
687.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
[11]
- 価格 <https://www.heroku.com/pricing>
- ドキュメント
-- <https://devcenter.heroku.com/articles/how-heroku-works>
-- <https://devcenter.heroku.com/articles/buildpacks>
-- <https://devcenter.heroku.com/articles/buildpack-api>
-- <https://devcenter.heroku.com/articles/ssl-endpoint>
-- <https://devcenter.heroku.com/articles/git-submodules>
-- <https://devcenter.heroku.com/articles/cleardb>
-- <https://devcenter.heroku.com/articles/error-pages#customize-pages>
- Travis CI
-- <http://docs.travis-ci.com/user/deployment/heroku/>
<https://devcenter.heroku.com/articles/custom-domains> によると CNAME を使うので、 https://example.jp/ みたいな最上位のドメインで動かすことができない...
CloudFlare <https://support.cloudflare.com/hc/en-us/articles/200169056-Does-CloudFlare-support-CNAME-APEX-at-the-root-> 使えばいいか?
MySQL を使うにはアカウント確認 (クレジットカード) が必要。試してない。
MySQL バージョンいくつだろうか...
[PRE(code bash)[
$ git init
...
$ ~/dev/heroku/bin/heroku git:clone -a fuga1
$ ~/dev/heroku/bin/heroku config:set BUILDPACK_URL=https://github.com/wakaba/heroku-buildpack-perl-pmbp
$ git push heroku master
$ ~/dev/heroku/bin/heroku auth:token
]PRE]
submodule の submodule も再帰的に展開される。無効化できなそう。
Travis CI の heroku deploy は標準では Git じゃなくて Anvil を使っていて動作がまた少し違う... うまくいかないがなぜうまくいかないか調べる方法もわからんw Git 使うようにしたら動くのでそちらのほうが良いか。
しばらくアクセスがないと止まる。アクセスがあると自動復帰するが少し時間がかかる。
[TIME[2014-10-02]]
[5] [[heroku]] コマンドは tar+gz を拾ってきて展開するだけでも動く状態になっているみたいです。 ([[ruby]] は必要。)
[3] [[Heroku]] 上に配置された状態では [[Gitリポジトリー]]ではなくなっているようです。
[REFS[
- [1] [CITE@en[Resolving Application Dependencies with Git Submodules | Heroku Dev Center]] ([TIME[2014-10-02 06:14:57 +09:00]] 版) <https://devcenter.heroku.com/articles/git-submodules>
]REFS]
[2] [[submodule]] は再帰的に clone されます。ただし [[API]] からの場合は [[submodule]]
は展開されないようです [SRC[>>1]]。そんなんでいいのでしょうか...
[4] サーバープロセスのエラーのログはどこからもみれないようです(?)。動作中のサーバーそのものを調べることはできませんが、 heroku run bash を使えば同じような環境で bash を実行して、その中でサーバーを動作させてみることができます。
[6] Add-ons から Logentries を選んで追加すると、 Heroku の実行ログが Web で見れるようになる。メールも送られる。 heroku コマンドや ssh を使わなくても実行エラーを把握できるようになる。
(Free プランで良い。)
[7] 1日分の無料枠を使い果たすと、 Application Error と表示されるようになります。
(サーバーエラー時と同じです。) 無料枠枯渇エラーだというのは管理画面でわかります。
[FIG(amazon)[
Heroku
]FIG]
[8] [CITE@en[Announcing Heroku Free SSL Beta and Flexible Dyno Hours | Heroku]]
([TIME[2016-08-02 09:50:24 +09:00]])
<https://blog.heroku.com/announcing_heroku_free_ssl_beta_and_flexible_dyno_hours>
[9] [[Heroku]] の[[プロキシ]]は、 [[HTTP keep-alive]] について特別な扱いをせず、
[[アプリケーションサーバー]]が[[接続][HTTP接続]]を閉じると[[プロキシ]]と[[クライアント]]の間の[[接続][HTTP接続]]も閉じるようです。
[TIME[2016-08-22T03:40:31.900Z]]
[10] [[Heroku]] の[[プロクシ]]は [[HTTP/2]] に対応していません。
[TIME[2016-10-31T06:11:12.800Z]]
[12] [[Heroku Button]]
[14]
[[Heroku]]
の
[[git]]
リポジトリーには
[[ssh]]
だけでなく
[[HTTP]]
でもアクセスできます。
[CODE[https://git.heroku.com/[VAR[heroku-app-name]].git]]
のような
[[URL]]
になります。
[[基本認証]]が必要です。名前は任意の[[文字列]] (無視される)、
[[パスワード]]はアカウントの
[[APIキー]]です。
[SRC[>>13]]
[15]
[[Heroku]] に [CODE[git push]]
したら
[PRE(code)[
error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504
]PRE]
... とか
[PRE(code)[
fatal: protocol error: bad line length character: fata
error: error in sideband demultiplexer
]PRE]
... という意味不明なエラーが出ることがあります。
[CITE[How to fix long-running `git push` to Heroku remote responding `504 GATEWAY_TIMEOUT`? - [[Stack Overflow]]]], [TIME[2021-02-08T11:33:35.000Z]] <https://stackoverflow.com/questions/51494103/how-to-fix-long-running-git-push-to-heroku-remote-responding-504-gateway-time/51494104?stw=2#51494104>
によると
[CODE[[[heroku]] repo:reset [VAR[...]]]]
で解消するそうです。
これだけのためにわざわざ [CODE[heroku]] を入れるのは面倒ですが、
実際はただの [[HTTP]] [CODE[DELETE]] 要求を送っているだけです。
[PRE(code)[
curl -X DELETE --user :[VAR[heroku-api-key]] https://git.heroku.com/[VAR[heroku-app-name]].git
]PRE]
... のようなコマンドだけでOK。
すごく時間がかかるかもしれませんが、待ちましょう。
[TIME[2021-02-08T11:37:05.100Z]]
[13] [CITE@ja[Git を使用したデプロイ | Heroku Dev Center]], [TIME[2021-02-01T05:29:10.000Z]] <https://devcenter.heroku.com/ja/articles/git#http-git-authentication>
[16]
定期的に「stack」 (動作環境) が更新されていくのですが、
しばらくするとサポート終了になって、ビルドが失敗するようになります。
[17]
なぜか「常に最新を使う」という指定ができません。サポート終了の連絡メールが来るたびにわざわざ手動で1つずつ Upgrade ボタンを押す苦行を強いられます。ひどいですね。
[18] [CITE@en[Heroku’s Next Chapter | Heroku]], [TIME[2022-08-26T01:11:22.000Z]] <https://blog.heroku.com/next-chapter>
>[SNIP[]] A good example of security innovation is the mutual TLS and private key protection we announced in June.
>[SNIP[]]
>Our product, engineering, and security teams are spending an extraordinary amount of effort to manage fraud and abuse of the Heroku free product plans. In order to focus our resources on delivering mission-critical capabilities for customers, we will be phasing out our free plan for Heroku Dynos, free plan for Heroku Postgres, and free plan for Heroku Data for Redis®, as well as deleting inactive accounts.
>
Starting October 26, 2022, we will begin deleting inactive accounts and associated storage for accounts that have been inactive for over a year. Starting November 28, 2022, we plan to stop offering free product plans and plan to start shutting down free dynos and data services. We will be sending out a series of email communications to affected users.
[19]
経営的理由から無料プランを止めるという判断は、無料プランの利用者としては不満ながらも、理解できなくはないです。
でも自分のところで起こした脆弱性のせいで、セキュリティー対策に注力するから無料はやめますって、その言い訳はないでしょう。
[[セキュリティー]]ってそんな都合よく責任押し付けられるものではないでしょ。
経営陣が無能だからやめたいです、って正直に書きなよ。
体裁整える必要ある? 整ってないし。
[20]
最近無料プランを縮小した [[Slack]] も [[Heroku]] も [[Salesforce]] 傘下とのこと。
やっぱセキュリティーのためって嘘でグループ全体で無料枠縮小やってるだけじゃねーか。