Both things have been introduced recently, and let you access even private ec2 instances
- Without VPN
- No open SSH port
- Authentication / Authorization is fully delegated to IAM
# Assumes valid AWS Credentials in ENV
Both things have been introduced recently, and let you access even private ec2 instances
# Assumes valid AWS Credentials in ENV
Confirm you have Docker and Docker compose installed
Create a environment var for you Kong License, KONG_LICENSE_DATA
Create a file with your json license
Create your environment variable KONG_LICENSE_DATA from the above file
Both things have been introduced recently, and let you access even private ec2 instances
# Assumes valid AWS Credentials in ENV
const https = require('https'); | |
async function httpsGet(hostname, path, headers) { | |
return new Promise(async (resolve, reject) => { | |
const options = { | |
hostname: hostname, | |
path: path, | |
port: 443, | |
method: 'GET', |
#!/bin/bash | |
# A bash script to update a Cloudflare DNS A record with the external IP of the source machine | |
# Used to provide DDNS service for my home | |
# Needs the DNS record pre-creating on Cloudflare | |
# Proxy - uncomment and provide details if using a proxy | |
#export https_proxy=http://<proxyuser>:<proxypassword>@<proxyip>:<proxyport> | |
# Cloudflare zone is the zone which holds the record |
addEventListener('fetch', event => { | |
event.respondWith(fetchAndCheckOrigin(event.request)) | |
}) | |
async function fetchAndCheckOrigin(req) { | |
try { | |
const body = await req.body; | |
const ip = req.headers.get('cf-connecting-ip'); | |
const apilityio = await fetch('https://api.apility.net/badip/' + ip + '?token=APILITY_IO_API_KEY'); |
Feel free to contact me at [email protected] or tweet at me @statisticsftw
This is a rough outline of how we utilize next.js and S3/Cloudfront. Hope it helps!
It assumes some knowledge of AWS.
import sys | |
from awsglue.transforms import * | |
from awsglue.utils import getResolvedOptions | |
from pyspark.context import SparkContext | |
from awsglue.context import GlueContext | |
from awsglue.dynamicframe import DynamicFrame | |
from awsglue.job import Job | |
args = getResolvedOptions(sys.argv, ['JOB_NAME']) |
#!/usr/bin/env python | |
from http.server import BaseHTTPRequestHandler, HTTPServer | |
# HTTPRequestHandler class | |
class testHTTPServer_RequestHandler(BaseHTTPRequestHandler): | |
# GET | |
def do_GET(self): | |
# Send response status code |
""" | |
Sometimes you want to make several different replacements. Search by tag with | |
optional attributes. Replace with tag with optional attributes. | |
Thank you to Dan @ University of Exeter for bug fix | |
""" | |
from bs4 import BeautifulSoup | |
REPLACEMENTS = [('b', {}, 'strong', {}), |