mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 21:35:42 +00:00
Refresh again (#2317)
* refresh and push zip * push refresh name layers script * don't git-add the scm * grr Former-commit-id: 397cdfd243810e8c17575a77f712417414c3ca76
This commit is contained in:
@@ -29,3 +29,5 @@ buildWin.sh
|
||||
.vscode/
|
||||
.lldbinit
|
||||
__pycache__/
|
||||
scripts/refresh_name_layers/vendor/
|
||||
scripts/refresh_name_layers/refresh_name_layers.zip
|
||||
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
OLDPATH=$(pwd)
|
||||
cd scripts/refresh_name_layers
|
||||
bundle install
|
||||
rm refresh_name_layers.zip
|
||||
zip -r refresh_name_layers.zip refresh_name_layers.rb vendor
|
||||
aws lambda update-function-code \
|
||||
--function-name NameRefresher \
|
||||
--zip-file fileb://refresh_name_layers.zip
|
||||
cd $OLDPATH
|
||||
@@ -0,0 +1,2 @@
|
||||
---
|
||||
BUNDLE_PATH: "vendor/bundle"
|
||||
@@ -0,0 +1,3 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "rubyzip"
|
||||
@@ -0,0 +1,14 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
rubyzip (2.3.2)
|
||||
|
||||
PLATFORMS
|
||||
arm64-darwin-21
|
||||
x86_64-darwin-21
|
||||
|
||||
DEPENDENCIES
|
||||
rubyzip
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.7
|
||||
Binary file not shown.
+74
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
require 'net/http'
|
||||
require 'uri'
|
||||
require 'aws-sdk-s3'
|
||||
require 'aws-sdk-lambda'
|
||||
require 'zip'
|
||||
|
||||
def fetch(uri_str, limit = 10)
|
||||
# You should choose a better exception.
|
||||
raise ArgumentError, 'too many HTTP redirects' if limit == 0
|
||||
|
||||
response = Net::HTTP.get_response(URI(uri_str))
|
||||
|
||||
case response
|
||||
when Net::HTTPSuccess then
|
||||
response
|
||||
when Net::HTTPRedirection then
|
||||
location = response['location']
|
||||
warn "redirected to #{location}"
|
||||
fetch(location, limit - 1)
|
||||
else
|
||||
response.value
|
||||
end
|
||||
end
|
||||
|
||||
def lambda_handler(event:, context:)
|
||||
response = fetch("https://docs.google.com/spreadsheets/d/1DHEsiv4cY4gE6AX3sVH82K__mpBD1aznIYCQwQxA_F0/export?gid=0&format=tsv")
|
||||
|
||||
stringio = Zip::OutputStream.write_buffer do |zio|
|
||||
zip_entry = Zip::Entry.new(zio, 'names.tsv', nil, nil, nil, nil, nil, nil, Zip::DOSTime.at(0))
|
||||
zio.put_next_entry(zip_entry)
|
||||
zio.write(response.body)
|
||||
end
|
||||
stringio.rewind
|
||||
new_contents = stringio.string.bytes
|
||||
|
||||
s3 = Aws::S3::Client.new
|
||||
original_resp = s3.get_object(bucket:'eagle0', key:'names.tsv.zip')
|
||||
original_contents = original_resp.body.string.bytes
|
||||
|
||||
if original_contents != new_contents then
|
||||
puts "Different contents"
|
||||
resp = s3.put_object(body: stringio.sysread, bucket:'eagle0', key:'names.tsv.zip')
|
||||
puts "successfully uploaded zip"
|
||||
puts resp
|
||||
|
||||
client = Aws::Lambda::Client.new
|
||||
lambda_response = client.publish_layer_version({
|
||||
layer_name: "namesLayer",
|
||||
content: {
|
||||
s3_bucket: 'eagle0',
|
||||
s3_key: 'names.tsv.zip'
|
||||
}
|
||||
})
|
||||
new_version_arn = lambda_response.layer_version_arn
|
||||
puts "successfully updated layer"
|
||||
puts lambda_response
|
||||
|
||||
lambda_response = client.update_function_configuration({
|
||||
function_name: "Name_Generator",
|
||||
layers: [new_version_arn, "arn:aws:lambda:us-east-1:339296677100:layer:nameConstructionLayer:2"]
|
||||
})
|
||||
puts "successfully updated config"
|
||||
puts lambda_response
|
||||
|
||||
{ statusCode: 200, headers: { "Content-Type": "text/html; charset=UTF-8" }, body: lambda_response }
|
||||
else
|
||||
puts "Contents are identical, not uploading"
|
||||
{ statusCode: 200, headers: { "Content-Type": "text/html; charset=UTF-8" }, body: "No change" }
|
||||
end
|
||||
end
|
||||
|
||||
lambda_handler(event: nil, context: nil)
|
||||
Reference in New Issue
Block a user