Self host runner in github action - python-3.x

The hosts on github action are in US only and I need to run my tests from EU region. I created AWS ec2 with eu region and connect my github workflow to the instance. I installed python3.10 on my ec2 :
enter image description here
but when I try to run the test I get this error:
Version 3.10.0 was not found in the local cache
Error: Version 3.10.0 with arch x64 not found
The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json
Do any one know what should I do ?
try to change version , without any version reinstall python. didn't work for me...

Related

Using NodeJS 18 in AWS Amplify on Amazon Linux 2 fails

Trying to upgrade an existing React app running on AWS Amplify from node v16 to v18
The image used is the provided Amazon Linux 2
Expected it to install node 18 on the machine it spun up and build the application, since this is the LTS version
Here is the error I get in the build process:
2022-11-15T19:19:02.924Z [WARNING]: node: /lib64/libm.so.6: version GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version GLIBC_2.28' not found (required by node)
The same problem happened to me, I fixed it by adding a custom image in the build config.
You can see the steps to add a custom image in the following link
The image that worked for me was the following:
public.ecr.aws/t7o4u3y2/node-18.2.0:latest
Amazon Linux 2 includes Glibc 2.26 or under. To use a higher glibc version, you need to consider other AMI, for example Amazon Linux 2022 (al2022-ami) as it includes glibc 2.34.
You can also revert back to Node.js 16 as it uses a lower version of Glibc.
Thanks for opening this issue. Amazon Linux 2 doesn't support the right GLIBC version at the moment, we're coordinating internally to get that updated. As #saharl-neosec mentions, you can provide a custom docker image until we fully support it:
https://github.com/aws-amplify/amplify-hosting/issues/3109

How to upgrade to latest terraform version in GCP Cloud Shell

A colleague developed a terraform script that used version 0.14.x of Terraform. He uses a local Cloud Shell while I use the Cloud Shell in the GCP console.
The GCP console reports the terraform version as being 0.12.x.
How do you update the version to the latest? I tried following the Debian instructions from the Hashicorp web site and now, if I try to follow them again, I am told I have version 0.14.x installed but if I type terraform --version I still see 0.12.x.
What am I missing?
You can switch between versions of TF by typing the command tfswitch on your terminal.
or else what you can is to remove the old version from path
you can get the current version path from which terraform
you can remove the old release from the old path and add the binary to same place in GCP Cloud CLI.
You can directly download the zip into GCP cloud CLI using :
wget https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip
unzip and set the binary at the same path

EB CLI "eb create" ERROR: InvalidParameterValueError - Platform ARN is invalid

I'm trying to create an Elastic Beanstalk node.js environment via the EB CLI. I've ran eb init in my code repo, and this doesn't give me any issues.
Next, when I run eb create to create the environment, I receive the error ERROR: InvalidParameterValueError - Platform ARN is invalid: Not an IAM ARN: 64bit Amazon Linux 2018.03 v4.15.2 running Node.js.
I've searched for this error, it seems like I need to update the platform version, but I can't figure out how to do that.
I also downgraded my node version from v12.18.4 to v12.18.3 because the EB docs didn't say that v12.18.4 was supported.
You can just run:
eb platform select
to select new default platform. Nevertheless, your platform seems fine as it is current one as listed here. Thus there maybe something else causing this error. But still maybe worth changing or re-selecting the platform version.
I ran into a very similar issue with a Python project containing a Dockerfile.
Inside the project I ran eb create --database (version EB CLI 3.19.3).
It prompted me to pick an environment name and DNS CNAME prefix, which was fine.
It then asked to Select a load balancer type.
I picked the default, which is 2 (application).
As soon as I hit enter, I got the following error:
ERROR: InvalidParameterValueError - Platform ARN is invalid: Not an IAM ARN: 64bit Amazon Linux 2 v3.2.4 running Docker.
Following Marcin's hint I ran eb platform select.
It prompted me about Docker:
It appears you are using Docker. Is this correct?
(Y/n): y
It then prompted me to select a platform:
Select a platform branch.
1) Docker running on 64bit Amazon Linux 2
2) Multi-container Docker running on 64bit Amazon Linux
3) Docker running on 64bit Amazon Linux
(default is 1): 1
This solved the problem.
Even though this is (seemingly) the same setup that was picked by default, eb create --database worked without the error afterwards, and even eb status show
Platform: arn:aws:elasticbeanstalk:eu-west-2::platform/Docker running on 64bit Amazon Linux 2/3.2.4
eb platform select - overrides the default platform. In cases, where you want to create an environment that uses a different platform than default one, we can simply provide -p or --provide then the platform.
I was able to successfully do it by running the following command using nodev16 platform
eb create --platform "Node.js 16 running on 64bit Amazon Linux 2"
I ended up creating the environment in the EB console instead of the CLI. The environment was created successfully from here.

Getting the following error when doing an NPM install (NJS-054)

While trying npm install I get NJS-054 error which is related to the oracledb client. However, the code works just fine when on the local machine. Could anyone help me with the error?
It seems that your machine can't find GitHub host.
Map GitHub IP to github.com at the hosts file:
hosts file location on Windows: C:\Windows\System32\drivers\etc\hosts
140.82.118.4 github.com
Installing node-oracledb 4 no longer needs GitHub access so installing will be easier.
Regardless of the install problems, version 2.3 is very old so you should consider upgrading. You may need a new Node.js release: 8.16, 10.6, 12 or later.

Upgrading AWS EB Platform version from 2.0.1 to 3.1.0

My current platform version is: Node.js running on 64bit Amazon Linux/2.0.1
Which support following NodeJS versions: 0.12.6, 0.10.39, 0.10.38, 0.10.31, 0.8.28
I am looking a way to upgrade the NodeJS version: 4.x.x which seems to be available in platform version: Node.js running on 64bit Amazon Linux/3.1.0
but when I am upgrading it. it's says
How can I select the allowed version as it's not available.
Any Help,
Thanks,
P.S
1. Already tried via save / load configurations. Unable to find any option there.
2. Don't want to do setup it from the scratch for now.
First, ensure that you have tested the changes adequately before deploying to production. After that, you can:
Note the name of the Platform ARN/Solution Stack you want to upgrade to.
Perform eb init --region REGION_NAME and pick the application and environment you are working on
Perform eb config. This opens your environment's configuration in an editor. Change the value of the PlatformArn to the one you noted above in step 1.
Also in the editor, find the option setting aws:elasticbeanstalk:container:nodejs. Change the NodeVersion to 6.9.1 or one that the error message above suggests.
Save and quit.
After the configuration is complete:
Perform eb status to verify that your environment is using the upgraded Solution Stack.
You can clone the existing environment to a new one, using a different platform version.
In the Actions menu, select "Clone with the latest platform".
That opens a new page where you can select from available OS/nodejs versions.
Once you are satisfied with the new environment, you can swap URLs with the old one in order to replace it. After that, you can remove the older env.
This has happened a few times before when Amazon releases new Environments and they do not include versions in common between the environments. The solution is to set value for nodejs version to an empty string which means to use the latest version. It could break your app, but you can make a clone with latest platform and switch to desired version of nodejs later. So run this command to do that:
aws elasticbeanstalk update-environment --region "your region" --application-name "your app" --environment-name "your env" --option-settings "OptionName=NodeVersion,Namespace=aws:elasticbeanstalk:container:nodejs,Value=''"

Resources