doc: Upgrade the crashpad-home App Engine app to the go121 flex runtime

Change-Id: I0a30b816e2550e7df6d7777c6d27e6104fc2f9fa
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5206711
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
This commit is contained in:
Mark Mentovai 2024-01-17 12:19:52 -05:00 committed by Crashpad LUCI CQ
parent 5183bef5f3
commit 305b648e71
5 changed files with 75 additions and 16 deletions

View File

@ -9,26 +9,37 @@ To work on this app, obtain the following packages:
instructions were tested with Go 1.14 locally but a Go 1.11 runtime when instructions were tested with Go 1.14 locally but a Go 1.11 runtime when
deployed), but if problems are encountered, it would be wise to use the same deployed), but if problems are encountered, it would be wise to use the same
version for both local development and AppEngine deployment. version for both local development and AppEngine deployment.
- The Google Cloud SDK from, https://cloud.google.com/sdk/docs. This is - The Google Cloud SDK (gcloud CLI) from
necessary for both local development and for AppEngine deployment. Unpacking https://cloud.google.com/sdk/docs/install-sdk. This is necessary for both
this package produces a google-cloud-sdk directory, whose bin child directory local development and for AppEngine deployment. Unpacking this package
may be added to $PATH for convenience, although this is not strictly produces a google-cloud-sdk directory, whose bin child directory may be
necessary. added to $PATH for convenience, although this is not strictly necessary.
The commands in this README are expected to be run from the directory containing The commands in this README are expected to be run from the directory containing
it. $GOPATH must also be set to include this directory: it.
% export GOPATH="$(go env GOPATH):$(pwd)"
To test locally: To test locally:
% go get -d crashpad-home % go get -d ./src/crashpad-home
% …/google-cloud-sdk/bin/dev_appserver.py src/crashpad-home % python3 …/google-cloud-sdk/bin/dev_appserver.py src/crashpad-home
dev_appserver.py must be invoked using Python 3, but internally will use Python
2, and a Python 2 interpreter must be available in the PATH as python2.
Look for the “Starting module "default" running at: http://localhost:8080” line, Look for the “Starting module "default" running at: http://localhost:8080” line,
which tells you the URL of the local running instance of the app. Test which tells you the URL of the local running instance of the app. Test
http://localhost:8080/ and http://localhost:8080/doxygen to ensure that they http://localhost:8080/ to ensure that it works.
work.
It would be good to test http://localhost:8080/doxygen as well, but it may fail
with HTTP status 500 and the following error returned as the HTTP response body
because memcache seems to not be available in the local dev_appserver
environment:
service bridge HTTP failed: Post "http://appengine.googleapis.internal:10001/rpc_http": dial tcp: lookup appengine.googleapis.internal: no such host
The /doxygen URL can be tested in a verison of the app thats been deployed
before traffic has been migrated to it by visiting the staged deployed version
from the App Engine console.
To deploy: To deploy:

10
doc/appengine/go.mod Normal file
View File

@ -0,0 +1,10 @@
module src/crashpad-home
go 1.21.6
require google.golang.org/appengine/v2 v2.0.5
require (
github.com/golang/protobuf v1.5.2 // indirect
google.golang.org/protobuf v1.30.0 // indirect
)

37
doc/appengine/go.sum Normal file
View File

@ -0,0 +1,37 @@
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/appengine/v2 v2.0.5 h1:4C+F3Cd3L2nWEfSmFEZDPjQvDwL8T0YCeZBysZifP3k=
google.golang.org/appengine/v2 v2.0.5/go.mod h1:WoEXGoXNfa0mLvaH5sV3ZSGXwVmy8yf7Z1JKf3J3wLI=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=

View File

@ -12,7 +12,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
runtime: go111 runtime: go121
app_engine_apis: true
handlers: handlers:
- url: /.* - url: /.*

View File

@ -25,9 +25,9 @@ import (
"strings" "strings"
"time" "time"
"google.golang.org/appengine" "google.golang.org/appengine/v2"
"google.golang.org/appengine/memcache" "google.golang.org/appengine/v2/memcache"
"google.golang.org/appengine/urlfetch" "google.golang.org/appengine/v2/urlfetch"
) )
func main() { func main() {