Newbe on Go - AppEngine - Deploy - go

I'm new using App Engine, and I would appreciate if someone can clarify this doubt:
How can I be sure that AppEngine in the cloud have the correct version of go I need to have in the cloud?
I have read some articles about installing and downloading the SDK for google on my local machine (and of course, I am able to install the version I need on my machine); but once I have generated my app in Go and I want to deploy it to App Engine in the cloud, how can I be sure Google infrastructure has the correct version?
I want to install Iris Web framework as part of the stack but it requires to go vers 1.14 or superior, Google App Engine standard only provides support for Google 1.11 and 1.12+ so I think I would need to go for the Google App Engine Flexible option, if that were the case, how can I be sure it has or support the Go version I need?... Or Is there some procedure to follow to install it ?
Thanks in advance for your support

You can use the standard environment. The documentation for the standard environment says:
The Go 1.12+ runtime supports the following major versions: Go 1.12, Go 1.13, Go 1.14, Go 1.15, and Go 1.16. Your app uses the latest stable release of the version that is specified in your app.yaml file. App Engine automatically updates to new patch revisions, but will not automatically update the major version.
Here's an example version spec in app.yaml:
runtime: go115

With the Flexible environment you have the ability to pin a version rather than using the latest available/supported. In order to do that, you will have to specify in your app.yaml file the exact version you would like it to be:
runtime: go1.14
If you specify only runtime: go it will pull the latest release available for Go language (which seems to be 1.19).
For more information, please refer to this documentation: https://cloud.google.com/appengine/docs/flexible/go/reference/app-yaml#general

Related

How do I update golang standard library in my go application?

I have an application that was built with go 1.16.4, which uses (imports) the archive/zip component of the Go std lib. I took a look at the golang Release Notes and see that a security vulnerability has been fixed in archive/zip in golang 1.16.5. How do I ensure that my application is no longer vulnerable? Must I upgrade my version of go itself, and then rebuild with that new version of go? Or could I vendor the newer version of the fixed component then rebuild? Must the files in the build machine's $GOROOT be updated?
Must I upgrade my version of go itself, and then rebuild with that new version of go?
Yes...
Upgrade Go.
Rebuild.
Or could I vendor the newer version of the fixed component then rebuild?
No, you can't vendor the Go standard library.
Must the files in the build machine's $GOROOT be updated?
GOROOT is the root folder of the Go SDK installation. It is updated when you upgrade Go on the machine (or container) that invokes go build/go install.

Download offline ElasticSearch documentation for older versions

How can I download the user docs/documentation/manual for older ElasticSearch for offline usage?
Recently, the online documentation for older versions of ElasticSearch (for example, ElasticSearch 1.3.2) started to show this message:
WARNING: Version 1.3 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
What worries me most is the may be removed part. Right now, we don't have the resources to upgrade our software to support the latest ElasticSearch version, so we will need to keep working with the older versions for a while. How I will be able to give maintenance to our software if the Elastic company decides to remove the documentation for older versions of ElasticSearch? There is any way to download it from https://www.elastic.co/ or build it from some repository?
Thank you very much for your help!
You can clone the official elasticsearch repository to a local machine, change to branch to the version you want, in your cause branch 1.3, then you will have the documentation in the directory docs.
The documentation is in the .asciidoc format, you can try build it following the official instructions, or using other asciidoc to pdf/html converters.

Building a custom terraform provider errors out

I am hitting this error while i try to compile GO code
[root#scsor0014444001 Netapp]# go build -o terraform-provider-xxxx
# github.com/hashicorp/terraform/config
../go/src/github.com/hashicorp/terraform/config/testing.go:9: t.Helper undefined (type *testing.T has no field or method Helper)
[root#scsor0014444001 Netapp]# go version
go version go1.8.3 linux/amd64
Can someone help me in understanding whats wrong here ?
Thanks in advance!
As of the 0.10.3 release, Terraform core now requires Go 1.9 due to the use of the new "test helper" feature.
Since providers depend on some packages from the core system as libraries, this dependency is unfortunately then inherited by the providers too. If you're using vendoring to make Terraform core available to the provider (recommended!) then you can potentially wind back the vendored version to the final commit before this change in order to build with 1.8, though over time this strategy will of course cause the vendored package to fall behind the latest changes.
Upgrading Go to 1.9 should address this in a more permanent way.

Integrating AWS PHP SDK with Codeigniter

What's the best way to integrate Amazon's AWS SDK for PHP with Codeigniter 3.x? Installing via Composer and then creating a library? If so, what is the process for doing that?
I've found libraries on Github for integrating just S3 with Codeigniter, but I need to use some of AWS's other services as well (SQS, Route53, etc.), so an approach that integrates the full SDK is needed.
I would recommend using composer to install AWS SDK for PHP. It will be a lot easier for you to pick up the latest version directly without code changes since the SDK keeps on releasing new features/services/bug fixed frequently.
Also you can access new services directly when they launch by depending on latest version of SDK.

Chat Application on Xamarin Cross Platform using Firebase Cloud Messaging

I want to develop Chat Application on Xamarin Cross Platform using Firebase Cloud Messaging. But Xamarin.Forms 2.3.3.180 has dependency to Xamarin.Android.Support.v4 23.3.0 and Xamarin.GooglePlayServices.Basement 32.961 has a dependency to Xamarin.Android.Support.v4 24.2.1.
How can this be resolved?
Or
Is there another way to do it?
This can be resolved in a couple of ways
Use a version of Firebase that has the same Android Support dependency
Go to Xamarin.Forms github, check out the repository and upgrade this dependency. Then build your own version or make a Pull Request and wait for it to be released
Don't use Firebase directly in your App, but use your own backend, which in turn talks to Firebase.
Wait for the Xamarin.Forms team to fix this dependency
Which one you pick is entirely up to you. It is your task to weigh the pros and cons about these approaches. Some take more time than others.
I personally think, either 1. or 2. might be your best options. Xamarin.Forms is open source and you can do whatever you want with the source. Including upgrading dependencies etc. Of course Pull Requests for the project are welcome and I encourage you to make one if you have a fix that benefits all others. Make sure to talk to the Xamarin.Forms team before you start a big task, so you don't waste your time doing something that they don't want or is not on the roadmap.
The options from Cheesebaron are a good summary. I'm assuming you're using Xamarin.Firebase.Messaging.
If you want to go with option #1, the Xamarin.Firebase.Messaging component version 32.940.0-beta3 is the most recent one whose dependencies still allow the various Xamarin.Android.Support 23.3.0 libraries that Xamarin.Forms needs. In order to see the 32.940.0-beta3 version, you'll have to enable "Prerelease" versions.
While it is marked as a beta release, it has worked for me, and hopefully Forms will allow upgrading the Android support libraries soon...

Resources